How recommendations take shape
The short version
Seed artists
|
cached similarity lists
|
case-insensitive candidate merge
|
weighted average x seed coverage
|
exclusions, tags, ranked resultsFrom seeds to candidates
The score formula
Strong individual similarity matters. Agreement across several explicit seeds matters too.
weighted average =
(explicit score sum + followed score sum x 0.25)
/ (explicit match count + followed match count x 0.25)
coverage = ln(1 + explicit match count)
/ ln(1 + explicit seed count)
TrackMoose score = weighted average x coverage x 100
The final value is rounded to one decimal place. It is a search-specific ranking score, not a percentile, popularity measure, or probability that someone will like the artist.
Worked example: support beats one isolated match
Candidate A
average = (0.8 + 0.6) / 2 = 0.7
coverage = ln(3) / ln(3) = 1
score = 0.7 x 1 x 100 = 70.0%
Candidate B
average = 0.9
coverage = ln(2) / ln(3) = 0.631
score = 0.9 x 0.631 x 100 = 56.8%
Tags and exclusions
Sparse data behavior
Automation and review
Known limitations and biases
- 01
- 02
- 03
- 04
Test the method yourself
Try the same seed list twice, change one artist, and compare which recommendations move.