How FanVoice works

Rules pick the moments and check the votes. AI only writes the words. People own the rulebook. This page describes rulebook rb-builtin-v1.

How polls are chosen

  1. Detect. Rules, not AI, find the coaching decisions in each game from the official play-by-play.
  2. Categorize. Every moment gets a decision type and an owner from the rulebook's category table. When the owner is unclear it becomes the unit, never a guess.
  3. Rank. Score = stakes × how far the coach sat from the model × rarity, with at most 5 post-game polls per team per game and at least one per half.
  4. Write. Claude fills an approved template from structured facts: 25 words or fewer, one issue, two balanced choices or a grade, no loaded adjectives, the same question for both fanbases.
  5. Check. Plain code confirms every number and team against the source play, blocks banned topics (injury, injured, concussion, health, illness, surgery and more), never names an official, enforces length and reading level, and runs a mirror test. Anything that fails is dropped, never fixed.
  6. Publish. Each poll records its source plays, the model's recommendation (hidden until the vote), the template and rulebook versions, and carries the AI-written label.

Never asked: injuries, health, personal life, off-field conduct, betting. Officials are never named.

How votes are checked

Three separate checks, none of which ever sees which answer you picked: a real, unique person (device check, phone, account age, one account per device, vote speed, data-center lists), which fan you are for this game (declared team with a switching cooldown, tenure, engagement, a side picked before the game, frozen when the poll opens), and coordinated manipulation (bursts, outside referrers, waves of new accounts, shared devices and networks).

Votes land in four tiers with no hidden weights: Official, All fans only, Held and Excluded. A confirmed cluster collapses to one vote, never deleted. Nothing headline-level is published below 400 valid answers. If held votes could change a verdict it is marked under review and a person looks. Every fan can see their own vote's tier and reason and appeal in one tap.

Before any rule ships, the answers are relabeled at random and every vote re-scored; one tier change fails the build. Every published poll has a public Invalid Vote Report. Full disclosure: How we check votes.

Ties, voids and withdrawn polls

An exact split publishes as "Fans were split" with both numbers and no leader, on the web, in the app, on share cards and in pushes. In a friends league, a head-to-head round with equal Reps is a tie worth half a win to each. Division promotion and relegation on an equal round break on the league's IQ, then fewer toss-up calls, then longer tenure, then the earlier account.

A Call Sheet item whose situation never came up is voided: it grades as no call, earns and costs no Reps, and counts toward neither a streak round nor the twenty graded calls the IQ needs. A poll withdrawn for good keeps its votes on record, grades nothing, shows its reason to every voter and is listed in that round's Invalid Vote Report.

Editorial independence

Sponsors and partners never see or shape a question before it is published, never see results before fans do, and never touch how a vote counts. A "presented by" slot is a label on a page, nothing more. The rulebook is edited only by FanVoice staff, every edit is a new numbered version, and this page always names the version in force. Grades and the IQ are computed from the model's numbers at decision time, never from outcomes, and never influence whether a vote counts.

Invalid Vote Reports

Withdrawn in the last seven days

No poll was withdrawn in the last seven days.

For every published poll: gross votes, exclusions by category (automated, data center or VPN, duplicate, failed device check), held and collapsed counts, net counts by tier, exclusions by answer option, the verdict with and without held votes, the model and rulebook versions, and any restatements. Each verdict page links to its report at /methodology/reports/<poll>. Detection thresholds stay private and are opened to an independent auditor.

Team and league names are plain text. Not affiliated with any league or team.