Methodology
v1.2How IP Ranking translates observed public demand signals into consistent CVS, franchise, and trending views.
Overview
ipranking.io tracks demand for 278 entertainment IPs (anime, gaming, western media, character brands) across 86 markets. The Cultural Velocity Score (CVS) measures observable demand signals, while the Trending view shows momentum (daily score changes). This page documents CVS v1.2, including the Search Intensity & Geographic Spread formula, franchise-level scoring, trending delta, source eligibility, a historical worked example, and known limitations.
Source Coverage is calculated against the target six-source framework and reported at the IP level, not only against currently enabled sources. Only fresh, currently eligible source rows count toward the numerator, so coverage may remain below 100% when a target source is gated, stale, disabled, or missing.
CVS scores are normalized against an 86-market scoring framework. Country pages cover a broader set of markets for context; each page shows its own observed coverage and source freshness.
Two Scoring Models
Overall
CVS (v1.2)
Composite market presence across search intensity, geographic spread, and source breadth. Range: 0-100. Computed daily.
Trending
Daily Delta
Change in CVS between the current and previous daily snapshot. Ranks franchises by momentum, not absolute strength.
Franchise
Franchise CVS
MAX(IP scores) + breadth bonus (up to +10). Groups related IPs under a single franchise ranking.
CVS v1.2 Formula
CVS = round(
searchIntensitySpread × 0.30
+ searchDemand × 0.25
+ observedMarketCoverage × 0.25
+ sourceCoverage × 0.20
)
Public labels: Search Intensity & Geographic Spread, Search Demand, Observed Market Coverage, and Source Coverage. Some database field names retain legacy aliases for continuity.
Dimension Definitions
Search Intensity & Geographic Spread currently uses Google Trends only. Social/community sources are not active in current production CVS.
Search Intensity & Geographic Spread
30%avg(scores) × log(countries+1) / log(87)
Google Trends only in current production CVS
Search Demand
25%avg(top_5_scores)
Google Trends top-5 country average
Observed Market Coverage
25%round(fresh_eligible_countries / 86 × 100)
Google Trends countries + fresh eligible Netflix rows if active; currently primarily Google Trends
Source Coverage
20%round(eligible_sources / 6 × 100)
Fresh eligible rows observed against the target six-source framework
Why spread scaling? (v1.2)
In v1.0, Search Intensity & Geographic Spread was a simple average of Google Trends scores across all countries with data. This inflated scores for IPs popular in only one or two countries (e.g., Code Geass scoring 100 from a single high-scoring country). v1.2 multiplies the average by a logarithmic spread factor: log(country_count + 1) / log(87). An IP present in 1 country gets a factor of ~0.16, while an IP in 60 countries gets ~0.92. This rewards both intensity and geographic breadth.
Search Demand change (v1.1)
v1.0 used max(scores), which saturated at 100 for any IP with a single high-scoring country. v1.1 replaced this with the average of the top-5 country scores, providing a more stable measure of sustained demand across multiple markets.
Worked Example: One Piece historical CVS calculation (v1.2 launch snapshot)
Historical reproducibility example using the 2026-04-26 v1.2 launch snapshot. This calculation shows how CVS 74 was produced for that snapshot; it is not the current live score.
Do not compare this example number with today's dashboard rank or score; it is a historical formula walkthrough, not a live ranking claim.
Input Data
- Google Trends: 66 country-level scores. Average = 35.74, Top-5 avg = 100.
- Netflix: Top 10 in 29 countries.
- AniList + MAL + Wikipedia: Trend score data present.
- YouTube: No matching data (0 rows).
- Merged countries: 75 unique (Netflix 29 + Google Trends 66, with overlap).
- Distinct sources: 5 (anilist, mal, wikipedia, netflix, google).
Step-by-Step Calculation
| Dimension | Calculation | Score | Weighted |
|---|---|---|---|
| Search Intensity & Geographic Spread | 35.74 × log(76)/log(87) = 35.74 × 0.97 | 35 | 35 × 0.30 = 10.5 |
| Search Demand | avg(top 5 scores) = 100 | 100 | 100 × 0.25 = 25.0 |
| Observed Market Coverage | round(75/86 × 100) | 87 | 87 × 0.25 = 21.75 |
| Source Coverage | round(5/6 × 100) | 83 | 83 × 0.20 = 16.6 |
| CVS = round(10.5 + 25.0 + 21.75 + 16.6) | = 74 | ||
Note: One Piece has 75 countries, so the spread factor is high (0.97). For a localized IP with 1 country, the factor would be 0.16, dramatically reducing Search Intensity & Geographic Spread.
Data Sources
We deliberately run a small set of verified sources and expand one source at a time after quality review.
Active = currently eligible or collected as noted. Paused = collection is suspended and history is retained for audit context. Limited = partial coverage. Coverage expansion in progress means coverage is being widened carefully, not that historical rows count as current evidence.
| Source | Frequency | Countries | CVS Dimension | Status |
|---|---|---|---|---|
| Google Trends / SerpAPI | Active — weekly, selected IPs | 86 markets | Search Intensity & Geographic Spread, Search Demand | Active Coverage expansion in progress via tiered coverage rollout. |
| AniList | Active — scheduled observation | Global | Trend Score | Active Community signal used when fresh and eligible. |
| Netflix Tudum | Paused — historical data only | Provider-specific coverage | Observed Market Coverage | Paused Historical rows are retained for audit context and do not count as current source coverage. |
| MyAnimeList | Active — guarded manual snapshot, selected IPs (80) | Global | Trend Score / Source Coverage | Active MAL uses reviewed direct MAL ID matches. Fresh guarded rows may count as source coverage; the weekly schedule remains disabled until separately approved. |
| Wikipedia Pageviews | Active — weekly snapshot, mapped IPs (16) | GLOBAL / mapped English pages | Source Coverage | Active Wikipedia pageview evidence uses reviewed source-page mappings and raw 7-day pageview counts as durable source evidence. Any normalized Wikipedia score is a derived representation and must use a stable normalization policy before it is treated as broader CVS evidence. |
| YouTube Data API | Limited historical coverage | Limited-market coverage | Search Demand | Limited Partial historical coverage; not broad current CVS coverage. |
Formula version: CVS v1.2, with current source freshness and missing-data eligibility policy.
CVS source eligibility uses freshness and source-state rules. Fresh observed rows count toward source coverage, and a fresh observation showing zero interest also counts as evidence. Missing, stale, and paused source rows do not count as current source coverage. Historical rows may remain in source tables for auditability, but they should not be read as current source health.
Source Coverage measures observed eligible coverage against IP Ranking's target six-source framework. It does not mean every source is currently active for every IP or country, and it is not a percentage of only currently enabled sources.
Current ranking tables show only franchises with eligible data in the latest snapshot batch. Franchises without current eligible data are temporarily withheld from current rankings rather than shown with outdated scores.
Data access and reports provide IP Ranking scores, rankings, summaries, and methodology fields derived from public and third-party signals. Unless a separate written agreement explicitly states otherwise, IP Ranking does not redistribute raw third-party source responses, raw provider payloads, proprietary platform data, or original copyrighted media assets as standalone data products.
Franchise-Level CVS
Individual IPs are scored using the CVS formula above. The franchise score takes the highest-scoring IP as its base, then adds a breadth bonus for having multiple active titles. The bonus is capped at +10 to avoid over-rewarding long-running series.
Example: My Hero Academia
- 4 active titles: series (CVS 63), movie (CVS 45), character Deku (CVS 38), spinoff (CVS 22)
- Best IP: series at 63
- Breadth bonus: min(10, 4 × 2) = +8
- Franchise CVS: 63 + 8 = 71
Franchise snapshots are stored daily in franchise_score_snapshots with all four component scores, enabling historical charts and trending analysis.
Trending (Momentum Ranking)
The Trending view ranks franchises by how much their CVS changed since the previous daily snapshot. A franchise with a delta of +12 is gaining demand faster than one with +2, regardless of their absolute scores.
Behavior
- Positive delta: franchise is gaining demand (sorted highest first)
- Negative delta: franchise demand is declining
- Zero: stable between snapshots
- New: franchise appeared for the first time (no previous snapshot)
Trending requires at least two daily snapshots to compute. With 7+ days of history, the signal becomes stable enough for reliable trend detection.
Known Limitations
- YouTube coverage is limited. The YouTube pipeline matches videos by category ID and channel whitelist, capturing ~2 IPs per run. Search Demand relies primarily on Google Trends top-5 average.
- Reddit community signals are paused. Reddit's commercial API terms require a paid agreement. When reactivated, Search Intensity & Geographic Spread may blend Google Trends with Reddit discussion volume.
- CVS weights are static. The 30/25/25/20 weights are fixed across all categories. Category-specific weights (e.g., gaming IPs may weight YouTube higher) are planned for v2.0.
- Source coverage varies by provider. IP Ranking normalizes CVS across 86 markets, but provider availability differs across Google Trends, YouTube, and community or reference sources. Source coverage and normalized CVS market coverage should not be conflated.
- No Signal Yet is not a verdict. No Signal Yet means an IP has not accumulated enough visible cross-source demand signals in the latest available snapshot. It does not mean the IP has no audience, revenue, or cultural value.
- Scores are derived demand signals. Source names, IP names, images, trademarks, and related materials remain the property of their respective owners. IP Ranking scores and rankings are not sales, revenue, valuation, investment advice, legal advice, licensing advice, or official audience measurements.
- Trending requires history. The Trending view needs at least 2 daily snapshots. With only 1 snapshot, all franchises show as “New”.
How We Compare
| Feature | ipranking.io | Parrot Analytics | AniTrendz |
|---|---|---|---|
| Scope | Character/franchise IPs | TV/movie titles | Anime titles |
| Countries | 86 | 200+ | Global (unspecified) |
| Sources | 6 public-source-family framework; current eligibility varies | Proprietary | Community polls |
| Methodology | Fully disclosed | Proprietary | Vote-based |
| Access | Free dashboard + request access | $10,000+/mo | Free |
| Categories | Anime, Gaming, Characters | All TV/film | Anime only |
Parrot Analytics pricing is publicly reported / estimated and should be verified directly with the vendor before procurement or competitive analysis.
Frequently Asked Questions
What is CVS?
CVS (Cultural Velocity Score) is ipranking.io's proprietary 0-100 index that quantifies observable entertainment IP demand. Version 1.2 combines Search Intensity & Geographic Spread (30%, spread-adjusted), Search Demand (25%, top-5 average), Observed Market Coverage (25%), and Source Coverage (20%) within a target six-source framework, with current active coverage shown per IP.
How often is CVS updated?
CVS is computed daily when eligible source evidence is available. Source signals refresh on different schedules, and current ranking tables show franchises with eligible data in the latest snapshot batch.
What changed in v1.2?
v1.1 replaced the max-based Search Demand with a top-5 country average to reduce single-country saturation. v1.2 added geographic spread scaling to Search Intensity & Geographic Spread: the raw average is multiplied by log(country_count+1)/log(87), penalizing IPs that are intense in only a few countries.
What data sources does IP Ranking use?
IP Ranking is built around a target six-source framework, but only currently collected, fresh, and eligible rows count toward the Source Coverage numerator. The denominator remains six; it is not recalculated from currently active sources. Some historical source rows are retained for audit context and do not indicate current source coverage.
How does CVS differ from Parrot Analytics?
Parrot Analytics measures demand at the content title level (TV shows, movies). ipranking.io measures demand at the character/franchise IP level: tracking how brands like Pokemon, Hello Kitty, or Demon Slayer resonate across global markets regardless of any single title.
Can I reproduce a CVS score?
Yes. CVS v1.2 formula: CVS = round(searchIntensitySpread x 0.30 + searchDemand x 0.25 + observedMarketCoverage x 0.25 + sourceCoverage x 0.20), where searchIntensitySpread = avg(scores) x log(country_count+1)/log(87) and searchDemand = avg(top-5 scores). Each dimension is normalized to 0-100.
How is franchise CVS calculated?
Franchise CVS = MAX(ip_cvs across all titles) + MIN(10, active_title_count x 2). The breadth bonus (up to +10) rewards franchises with multiple active titles. Franchise scores are recomputed daily and stored in franchise_score_snapshots.
What does Trending mean?
Trending ranks franchises by momentum: the change in CVS between the current and previous daily snapshot. A positive delta means the franchise is gaining demand. Trending becomes available after two or more daily snapshots exist.
Is IP Ranking free?
Yes, the public dashboard is free. Enterprise workflows, data exports, and API access are handled through private beta or custom research inquiries. See ipranking.io/enterprise for current access details.
Version History
| Version | Date | Changes |
|---|---|---|
| v1.0 | April 17, 2026 | Initial release. 4 dimensions, fixed weights (30/25/25/20). 6 data sources. Social Buzz = avg(scores). Search Demand = max(scores). |
| v1.1 | April 26, 2026 | Search Demand changed from max to top-5 average. Fixes single-country saturation bias. |
| v1.2 | April 26, 2026 | Search Intensity & Geographic Spread spread scaling: avg × log(countries+1)/log(87). Penalizes IPs strong in few countries only. Franchise daily snapshots enabled. Trending view added. |
| v2.0 | Planned | Category-specific weights. Economic Value dimension (from marketplace prices). Adaptive normalization. |
Revenue Estimates
Select IPs display estimated lifetime revenue with confidence levels (L1–L4).
Estimated lifetime revenue entries, where shown, are editorial research annotations compiled from cited public sources. They are not CVS inputs, are not used in rankings, and are not forecasts, valuations, investment advice, licensing advice, or official revenue figures.
Full revenue estimation methodology →ipranking.io Methodology v1.2. Weights and source eligibility rules are subject to refinement. Questions? hello@ipranking.io