The Taste Index is the pricing engine behind every market on Taste Markets. It converts real-world social signals into a single tradeable number. This page documents the exact formulas used.
Every raw metric is passed through a log transform before weighting. This stabilizes variance so that a viral video with 10M views doesn't dominate a score the same way raw counts would.
Social metrics (Reddit, YouTube, TikTok) are also normalized by dividing by 96 (the number of 15-minute intervals in 24 hours) before the log transform to account for data collection frequency.
Search interest over time, measured relative to a set of stable control terms. Already normalized by Google, so no division by 96.
Post volume, comments, and upvotes from relevant subreddits.
| Metric | Weight |
|---|---|
| Posts | 0.50 |
| Comments | 0.30 |
| Upvotes | 0.20 |
Search result count, comments, likes, and views from recent videos.
| Metric | Weight |
|---|---|
| Search results | 0.50 |
| Comments | 0.30 |
| Likes | 0.15 |
| Views | 0.05 |
Video count, comments, shares, likes, and views.
| Metric | Weight |
|---|---|
| Videos | 0.35 |
| Comments | 0.25 |
| Shares | 0.20 |
| Likes | 0.10 |
| Views | 0.10 |
Post volume, replies, likes, retweets, and impressions. Coming soon for select markets.
Card sale data aggregated across TCGPlayer and eBay via the Poketrace API. Tracked across a basket of cards from popular sets.
| Metric | Weight |
|---|---|
| avg7d (7-day average sale price) | 0.30 |
| saleCount (completed transactions) | 0.30 |
| avg1d (24h average sale price) | 0.20 |
| high (highest recent sale) | 0.10 |
| low (lowest recent sale) | 0.10 |
Metrics are averaged across all tracked cards in the basket, weighted by rarity. Prices are in USD. Sale count is normalized by 96 (collection intervals per day) like other volume metrics.
Cumulative worldwide box office gross in USD. Updated daily during theatrical run.
Critic and audience review scores, normalized to a 0-100 scale.
| Metric | Weight |
|---|---|
| Critic score | 0.55 |
| Audience score | 0.45 |
Number of theaters showing a film, sourced from Box Office Mojo.
Source scores are blended into a single raw index. Social sources are first combined, then mixed with Google Trends.
If a source is unavailable, its weight is excluded and the remaining weights are re-normalized so they sum to 1.
| Source | Weight |
|---|---|
| YouTube | 0.40 |
| 0.30 | |
| TikTok | 0.30 |
If only Google Trends or only social sources are available, the available component is used alone (still scaled by 10).
Some markets go beyond pure social attention by blending in domain-specific data. Each composite market defines its own extra data sources and weights. The general formula is:
Where the domain components and their weights vary per market. Below are the composite markets currently available or coming soon.
Blends social attention with competitive performance data. Currently covers League of Legends players.
Sourced from live tournament stats (gol.gg). Uses 17 metrics including win rate, KDA, CS/min, gold/min, damage/min, kill participation, solo kills, and early-game differentials. Each metric is log-transformed and weighted.
| Metric | Weight |
|---|---|
| Win rate % | 0.12 |
| KDA ratio | 0.10 |
| Kill participation % | 0.08 |
| Damage / min | 0.08 |
| CS diff @ 15 | 0.08 |
| CS / min | 0.06 |
| Gold / min | 0.06 |
| Damage share % | 0.06 |
| Ahead in CS @ 15 % | 0.06 |
| KA / min | 0.05 |
| Solo kills | 0.05 |
| Gold diff @ 15 | 0.05 |
| XP diff @ 15 | 0.05 |
| Gold share % | 0.04 |
| Pentakills | 0.02 |
| First blood participation % | 0.02 |
| First blood victim % | 0.02 |
Differential stats (CS diff, gold diff, XP diff) are offset before the log transform to handle negative values. First blood victim % is inverted (lower is better).
Sourced from ranked match data via the Riot Games API.
| Metric | Weight |
|---|---|
| Win rate % | 0.45 |
| KDA | 0.55 |
| Component | Weight |
|---|---|
| Social attention | 0.20 |
| Tournament performance | 0.65 |
| Soloqueue performance | 0.15 |
Blends social attention with collectible card market activity from TCGPlayer and eBay. Unlike esports composites where competitive performance dominates, POKEMON gives social attention a larger share because cultural hype is the primary price driver for collectibles.
Uses the same base metrics from TCGPlayer & eBay (via Poketrace) described in the Data Sources section above. See that section for the full scoring formula (Scards).
| Component | Weight |
|---|---|
| Social attention | 0.40 |
| Card market data | 0.60 |
Blends social attention with entertainment industry data. For a movie like Dune 3, social hype drives most of the pre-release index, while box office revenue becomes the dominant signal after release.
Cumulative worldwide gross in USD from Box Office Mojo and The Numbers. Updated daily during theatrical run.
Normalized 0-100 aggregate from Rotten Tomatoes (Tomatometer), Metacritic, and Letterboxd.
Normalized 0-100 aggregate from Rotten Tomatoes (Audience Score), IMDb user ratings, and Letterboxd.
Number of theaters showing the film, sourced from Box Office Mojo.
Before theatrical release, box office and screen count are unavailable. The entertainment component falls back to trailer engagement (views, likes, comments) as a proxy.
| Metric | Weight |
|---|---|
| Box office revenue | 0.40 |
| Critic score | 0.25 |
| Audience score | 0.20 |
| Screen count | 0.15 |
| Component | Weight |
|---|---|
| Social attention | 0.40 |
| Entertainment data | 0.60 |
The raw index is smoothed with an exponential moving average to prevent manipulation and reduce noise. The half-life is 12 hours, meaning after 12 hours the EMA has moved 50% toward a new sustained value.
Where dt is the time elapsed in hours since the last update. On the first data point, the EMA is seeded with the raw value.
| Time elapsed | α | Effect |
|---|---|---|
| 30 min | ~0.028 | Almost entirely previous EMA |
| 12 hours | 0.50 | Equal weight old / new |
| 24 hours | ~0.75 | Mostly new value |