We Show Our Work

A public trust signal is only useful when its source and thresholds are visible. This page documents the score and badge source contract used by FranchiseHQ.

The source contract does not by itself prove a specific production result. Production deployment and data freshness must be verified separately on the affected league or service.

Telemetry onlyNothing self-reported can move a score. Every input below comes from what the Coach Lefty bot recorded inside the league.
No pay-to-rankRanking is never for sale. "Featured" is a curated, clearly labeled slot — it is not, and will never be, a purchase.
New ≠ badLeagues and players without history show "New," never a punishing score. Scores appear when there's real data behind them.
Explained, alwaysNo bare numbers. Every score comes with its drivers, and this page is the single public reference for the formulas.

✓ Verified League  badge

A league is Verified when the Coach Lefty bot is installed and the league completed an advance within the last 30 days. That can't be typed into a form — it only happens when a real league actually plays. Listings without a connected bot simply show no badge (we never fake one).

League Health Score

A 0–100 composite recomputed after every completed advance, from five telemetry inputs:

InputWeight
Advance consistency (low variance vs. your own cadence)25
Game completion rate (played, not simmed — force-wins don't count)25
Owner activity rate (trailing window, normalized to league size)20
Advance success rate (clean runs)15
Roster stability (inverse reassignment churn)15

Bands: 85–100 Thriving 70–84 Healthy 50–69 At Risk <50 Critical

Public surfaces show the band, its top drivers (the strongest and weakest of the five inputs from the latest snapshot), and the recent trend; the full numeric input breakdown belongs to the league's own dashboard. Drivers only appear when a real snapshot exists — never synthesized. Brand-new leagues show "New" instead of a number — a score for lack of history would be a lie in both directions.

Cross-league percentile: a league page may also show "healthier than X% of leagues on FranchiseHQ" — the percent-rank of the league's latest health snapshot among the latest snapshots of all published directory leagues (leagues that didn't opt into the directory are never compared). This activates only once 50+ published leagues have health snapshots; below that the comparison would be statistical noise, so only the band is shown.

Commissioner Score

A 0–100 competence composite, measured — not reviewed — from five inputs:

InputWeight
Advance timeliness vs. a healthy 48h cadence35
Automation usage (EA-export-driven advances)20
Claim response time (average hours to decide team claims)20
Activity enforcement (share of advance weeks with an active check or inactivity warning run)15
League survival (age, capped at 24 months)10

Tiers: Gold 85+ Silver 70+ Bronze 50+ — below Bronze no tier is shown. An unearned badge is withheld, never faked.

Public surfaces (the commissioner profile and league pages) show the tier only; the full input breakdown stays on the league's own authed dashboard. A commissioner profile may also show a cross-league percentile — percent-rank of the latest Commissioner Score snapshot among published directory guilds, under the same 50+ published leagues activation gate as the League Health percentile.

Owner Reliability Score

A 0–100 credential computed from an owner's actual behavior: check-in responses (30%), games played vs. force-wins taken against them (30%), Discord activity (25%), and on-time scheduling (15%) — weights renormalize when an input has no data yet.

Player & League Reviews

The live reputation surface is available on the Reviews board. User-submitted records remain distinct from permissioned marketing testimonials or customer transformation stories.

✓ Verified member / opponent

A review is relationship-verified when the bot's roster records prove the reviewer actually shared a league with the person (or was a member of the league) they're reviewing. It's a badge, not a gate — honest reviews from unverified reviewers are allowed, they just carry less weight.

How displayed ratings are computed

Reports & moderation

Any signed-in user can report a review. When 3 different people have open reports on the same review, it's automatically hidden from all public surfaces pending human review — dismissed reports un-hide it, upheld reports keep it hidden. One reporter alone can never censor a review.

Low-reputation alerts

When a player joins an opted-in league, that server's owner may receive a private DM — but only if the player has 2 or more relationship-verified negative reviews. Anonymous drive-by reviews can never put anyone on a wall of shame. Member-level alerts are never posted to a public or cross-league community channel; restricted FranchiseHQ operations also receives the trust signal for incident follow-up and delivery monitoring.

What "Featured" means

Featured is a curated slot, clearly labeled on the card. The current product does not sell ranking placement; any future placement-model change would need an explicit disclosure here and on the listing.

Trade values

The public trade calculator and the Discord bot compute from one generated model. The core tables and model boundaries are published below. A value quoted on the site is the value the bot will produce for the same player, and a test fails the build if the two ever disagree on any of the ~2,300 published players.

The formula

OVR base × position × age × development × Physicality × contract

OVR base

A step table, not a curve. Anchors:

OVR999590858075706660
Base32002300153068030010028156

Below 60 the floor is 5. The table runs all the way down rather than stopping at 70, so a 69 OVR is worth more than a 60 — for a long time both sat on the same floor and OVR carried no information down there.

Position

PositionMultiplier
QB1.50
EDGE / DE1.25
WR, CB1.20
OT1.15
iOL, TE1.10
DT, RB, S1.05
LB1.00
FB0.85
K, P0.70

Age

Age202122232425262728293031+
Raw2.202.001.751.501.251.000.820.680.520.400.300.20

Both directions are compressed by OVR, on separate curves. The youth bonus shrinks as OVR rises because a 99 has little rating headroom left — surviving fraction 0.12 at 97+, 0.20 at 93–96, 0.50 at 89–92, 0.75 at 85–88, full below 85. The age penalty is softened instead, because an elite player needs less XP progression — reduced 50% at 97+, 30% at 93–96, 15% at 89–92, and not at all below 89.

28 is a real Madden progression wall and steps harder than its neighbours, but the decline from 27 on is a steady 20–25% a year. It was once a single 38% drop against ~15% either side, which rewarded buying at 27 and dumping at 28 rather than valuing the player.

Development trait

Split in two, because the two halves behave differently. Ability is flat — it is on-field value that does not decay: X-Factor +0.40, Superstar +0.25, Star / Normal / Hidden 0. Development is an XP discount and compresses on the same OVR curve as the youth bonus: X-Factor +0.50, Superstar +0.25, Star +0.25, Hidden +0.10, Normal 0.

Hidden is worth more than Normal, deliberately. EA does not publish development traits, so a placeholder roster shows every player as Hidden. Pricing that as Normal would assert something we do not know; the small premium prices the optionality instead.

Physicality V2.1

M27-2026.08.1 compares each position-specific trait with the pinned Madden 27 launch roster instead of using universal rating thresholds. Awareness supports every position profile. Speed and acceleration lead skill positions, throw power leads quarterbacks, strength leads offensive and defensive linemen, and acceleration receives extra weight for edge rushers and defensive tackles.

The broad profile uses a smooth percentile curve and can add up to 20 percentage points before weighting. Traits above the 95th percentile can earn a nonlinear rarity premium; an exact 99 earns an additional capstone, and only the two strongest rare traits count. Elite OVR compresses the broad profile but not scarcity. The final adjustment is bounded at −18% and +65%. Missing imported data must cover at least 85% of the position profile; manual entries must be complete, so users cannot enter only elite traits.

Draft picks

A modified Jimmy Johnson scale, interpolated linearly from pick 1 to pick 32 within each round:

Round1234567
Pick 13000750380190954824
Pick 32810413209104522613

Future picks are discounted 25% by default. A pick position outside 1–32 is clamped: an unknown position (a league with no draft order yet) is valued as mid-round rather than extrapolated, which previously priced it above the genuine first overall pick.

Contracts

Years remaining and cap hit adjust value by up to ±15% at standard strength: one year left −15%, two −7.5%, three is neutral, four or more +7.5%, and a cap hit above $30M a further −5%. Leagues created before this became a default price contracts at zero weight until a commissioner opts in.

What a commissioner can change

Every league can retune six knobs — pick scale, QB premium, age-curve strength, development weight, future-pick discount and contract weight — or pick one of three presets (Balanced, Win-Now, Rebuild) that set all six. The tables above are the Balanced defaults. A league that has changed anything shows its own values in its own settings; this page documents the shipped defaults, not any one league's configuration.

These numbers are the production tables. They are read directly from the same module the bot imports, and a test compares this page against it — if a weight here ever stopped matching the code, the build would fail rather than the page quietly lying.

Similar leagues

A league page may show a "Similar Leagues" rail. Matching uses declared listing data — platform (40), tag overlap (25), league-size proximity (20) — plus one activity signal: both leagues advanced within the last 30 days (15). The rail hides entirely below 3 comparable leagues — it is never padded with weak matches. Badges inside the rail are the same telemetry-only trust badges as everywhere else, and placement in the rail is never sold.

Questions about a score on your league or profile? Email us or ask in Discord. This page documents the intended formula; support can help verify the deployed version and current evidence for a specific result.