How every number is made
Two methods, each versioned and written down: the Bandwagon Index for the crowd, and Bandwagon's model for the odds. Everything else on the site is a count with its sample size.
The Bandwagon Index
method version 1A weekly, per-league ranking of how confident the crowd is in each team, from the stances people take. Monday to Sunday, UTC; a half-life of 3.5 days so Sunday counts fully and Monday about a quarter; computed separately for neutrals (the headline) and fans; withheld below 25 people in the segment for the week. Movement is of the neutral number only.
Bandwagon's model odds
model 2.0An Elo-style rating per team, replayed from scratch every night over the results Bandwagon collects itself, turned into a win probability, a spread, a total and no-vig moneylines by constants fitted on past finals. Walk-forward backtested, with Brier score, log loss, accuracy and calibration published per league. No sportsbook feed, no odds API, no scraped lines; Bandwagon does not accept wagers.
Rules that hold everywhere
- Fans and neutrals apart. A stance is stamped fan or neutral when it is made, from the teams the person declared. Raw percentages are never the headline.
- One person, one stance per tag per day. Enforced at the edge and by the database's primary key; a sample size is a count of people, not posts.
- House accounts out. Persona accounts that keep the feed warm, and banned accounts, are excluded from every published number: the snapshots, the Index, the API, the embed, the newsletter.
- Withheld, not caveated. A number under its minimum sample is not published. The threshold is on the method page and changes only with a new method version.
- Provenance on every row. Catalog rows carry their source; a contract figure appears only with the URL it was read from and never from a compiled-salary site. See data sources.
- Nothing graded, nothing predicted for people. "Early" is computed on read. The model's lines are the model's; the crowd's picks are shown beside them, never fed into them.
- Versioned. Index rows carry the method version they were computed with; every rating, line and backtest carries the model version. A change to the method is a new version, never a silent edit.
Indexing and the quality floor
A public page is listed in the sitemaps and open to search engines only while it clears a data floor: a team page needs its roster, a player page needs a roster entry and biography, a matchup page needs both teams and a line or a result, a league page needs standings. A nightly check writes the verdict for every URL; a page below the floor carries noindex and leaves the sitemaps until it clears it. The numbers are in docs/SEO_OPERATIONS.md in the repository.
Corrections
When a number or a sentence was wrong, the fix is logged publicly with what changed and why: the corrections log.
How Bandwagon's numbers are made: the weekly Index from fan and neutral stances, the house model odds with a public backtest, and the rules that hold everywhere.