IFPA Health

Methodology

Last revised

How the score is built

The IFPA Health score is the equal-weighted average of two year-over-year measures — player growth and tournament growth — each mapped onto a 0–100 sub-score. The result lands in one of five bands: Thriving, Healthy, Stable, Concerning, or Critical.

The pillars

Two pillars, equal weight. Each pillar is a year-over-year percent change mapped onto a 0–100 sub-score, then averaged.

PillarSourceWeight
Player growthUnique players YoY %50%
Tournament growthTournament count YoY %50%

Each pillar uses the same breakpoints to convert raw YoY% into a sub-score: −10% maps to 0, 0% (flat) maps to 50, and +15% maps to 100. Values outside that range clamp to the endpoints; everything in between is linearly interpolated.

Worked example

Using the latest complete year (2025 vs 2024):

PillarRaw YoYSub-score
Players+12.4%91.4
Tournaments+10.5%85.0
Average88.2

88.2 lands in the 80–100 band → Thriving.

Bands

The composite 0–100 score is then labeled:

  • 80–100Thriving
  • 65–79Healthy
  • 50–64Stable
  • 35–49Concerning
  • 0–34Critical

What’s not in the score

Player retention — the share of one year’s competitors who also showed up the year before — would be a natural third signal, but it isn’t something the IFPA public API exposes well enough to score on. The API reports it only as an aggregate count, and without per-player participation data we can’t verify what the overlap actually measures.

The values we do see also move in directions that don’t line up with other scene-health indicators: their highest readings come from the COVID years, when the active base was shrinking. Until per-player participation history is exposed, we don’t include it.

Forecast and confidence intervals

The current-year forecast is a seasonal-ratio projection: take the share of tournaments that historically fell in the months we’ve already observed, divide this year’s actual count by that share, and you get a full-year estimate. The 68% confidence interval reflects how much that ratio has historically varied year to year — roughly, “in two out of three past years, the actual full-year total fell inside this range.”

IFPA tournament submissions lag the actual event date — a March tournament can be reported in early-to-mid April. We compensate by upscaling the most recently ended month based on how long ago it ended: a small bump in week one, tighter through week three, no adjustment past three weeks. The active month is excluded entirely since its data is partial-by-definition.

The forecast is informational, not part of the health score. Early-year estimates have wide ranges; later-year estimates tighten.

Data sources and freshness

Annual totals come from the IFPA /stats/events_by_year and /stats/players_by_year endpoints. Country breakdowns come from /stats/country_players. Monthly tournament counts come from /tournament/search with month-by-month windows; for the active month, the window is clipped to today so year-over-year comparisons stay month-to-date vs month-to-date.

Data is collected daily (08:00 UTC) and weekly (Mondays, 09:00 UTC). The freshness badge on the dashboard reads the latest run’s completion time; anything older than 48 hours flips the badge to stale.

Verifying a number

Every number on the dashboard traces back to an IFPA API call. The annual and monthly counts are downloadable directly from the footer of the home page (annual.csv and monthly.csv) if you want to reproduce a calculation by hand. Spot something off, or have a better methodology? Reach out via Kineticist.

← Back to dashboard