Methodology
How Power Flux works
In plain language
Power Flux is a weekly, hand-made ranking of all 32 NFL teams, shown beside measured unit ranks, live scores, Kalshi market prices and a separate model projection of the following week. Each of those is a different kind of information, and every page says which one you are looking at.
- Editor's rankingsThe 1–32 order, tiers, headlines and analysis. One person’s judgement.
- Calculated from box scoresThe four unit ranks and their rates. Arithmetic, the same for every team.
- ReportedScores, schedules and records from the sports-data provider.
- VegasWin chances taken from a sportsbook’s line (DraftKings), with the bookmaker’s margin removed. The first choice for any pregame expectation.
- Kalshi quoteWin probabilities that belong to a betting-exchange market, not to this site. Used for games in progress, and before kickoff only when there is no Vegas line.
- Model estimateThe next-week projection and its explanations — deterministic rules, not a language model.
Official rankings
The ranking is editorial: ordered by hand, published weekly. A result does not reorder it and neither does a market price.
It can be revised. A published week is edited in place, and edits go live when they are saved — typo fixes, a changed headline, occasionally a moved team. Every change is recorded with who made it and when, and the rankings page shows when the editor last changed that week. An archived week shows what it says now, which is usually but not always what it said on the day it was published.
Preparing the next week. The Tuesday after a football week ends, the next week is prepared as a private draft, pre-ordered by the projection. Readers cannot see it. It becomes the official week only when the editor makes it so.
Tiers are editorial groupings, not calculated playoff odds:
- Super Bowl Contenders
- Playoff Threats
- In the Mix
- Long Shots
- Rebuilding
Movement compares a team’s rank against the previous published week. “Big riser” and “Big faller” mark the week’s two largest moves relative to where a team started, since climbing from 11th to 3rd passes stronger teams than 32nd to 22nd. Movement is about the ranking, not results: a team can fall after a win.
Unit ranks
The passing and rushing ranks on each card are calculated from the box score and play log of every completed game, up to and including the week of the edition you are viewing. One team’s offense in a box score is its opponent’s defense, so every game fills in all four units for both teams. Each card prints the rate behind each rank and says which week it runs through.
It is an opponent-adjusted efficiency rating of our own design. It is not ANY/A (there is no touchdown bonus, because the box score has no team passing-touchdown count) and it is not EPA. The run game is measured by success rate rather than yards per carry, because a single 60-yard run moves a yards-per-carry average more than a quarter of a team’s ordinary carries.
The formula
- Per game, per team: passing rate = (net passing yards − 45 × interceptions) ÷ (pass attempts + sacks). Net passing yards are already net of sack yardage, and a sack counts as a dropback, so holding the ball is not rewarded. Rushing rate = the share of carries that were a success: at least 40% of the distance on first down, 60% on second, or all of it on third and fourth. It is counted on competitive snaps only, so carries after the result was decided are left out. A game without a play log adds nothing to the run game.
- Turnovers: interceptions are charged 45 yards each against the passing rate. Lost fumbles are not charged to either unit, because the box score does not say whether a fumble came on a run or a pass.
- Opponent adjustment: each game’s rate is credited or discounted by how far the opposing unit’s own rating sits from the league average, weighted by plays. Offenses and defenses are solved against each other over 25 passes, each moving 60% of the way to the new estimate, until the table settles.
- Sample size: every rating is pulled toward the league average with the weight of 140 dropbacks (passing) or 100 carries (rushing) — about four games. After one game a team is roughly a fifth its own numbers; by Week 4 about half. There is no minimum sample: early ranks are shown, and move cautiously by design.
- Ranking and ties: 1st is the best offense (highest rate) and the best defense (lowest rate allowed), for success rate as for yards. Exact ties are broken by team abbreviation so the same data always gives the same table; there are no shared ranks in the calculation.
- Missing games: a team with no completed games in scope shows “Not available”, never 32nd. A team on a bye simply has one fewer game in its sample.
Editor overrides. An editor can override any single unit rank. The card then marks it “Editor” and shows the calculated rank beside it. Overrides survive every automatic recalculation until the editor resets them to the calculated value. (Before 23 September they did not: the recalculation replaced them.) Weeks published before calculation began show “As published by the editor”.
Key statistics
Points/game, points allowed/game and point differential come from the completed games in the same scope as the unit ranks, so an archived week shows the numbers it had rather than today’s. League ranks beside them appear only when every team has played a comparable number of games. Form shows the last five results, oldest on the left and newest on the right.
What is not shown, and why
Turnover differential: the provider’s standings do not carry it. EPA: it needs play-by-play data with field position, which the box score does not provide.
Which week is which
A weekly edition is named for the week it leads into. The Week 2 rankings were written after Week 1 and published before Week 2 kicked off, so their analysis is about Week 1. Three weeks can therefore be in play on one card, and each is named:
- Official rankings · Week 2 — the week the ranking is for.
- Written after Week 1 — what the editor’s words are about, with that game’s result beside them.
- Stats through Week 2 — the last completed week the numbers include. A result marked “after this edition was published” came in after the words were written.
Fixtures always name their week — “Week 2 result”, “Week 3 matchup” — rather than “this week”, which meant different things on different days. Weeks come from the provider’s own season and week numbers, never from dividing the calendar into seven-day blocks.
Scores and schedules
Scores, status, schedules and records come from espn. We show when data was last refreshed and say when it is delayed. A failed refresh keeps the last good data with its original timestamp. Target refresh rates:
- Live games: about every 20 seconds.
- Near kickoff: about every 2 minutes.
- Otherwise: about every 15 minutes.
- Market quotes: about every 60 seconds.
A game’s count on the homepage and on the Games page comes from the same definition — every game in that week — so the two always agree.
Vegas lines
Before kickoff, a game’s win chances come from the Vegas line: the point spread, moneyline and total a sportsbook (DraftKings, as published by ESPN) sets for it. The betting market is the best-tested pregame estimate there is, so it comes first. When a game has no line, the site falls back to a Kalshi quote, and then to its own estimate, and each number says which one it is.
How a line becomes a win chance
- Each moneyline is converted to the probability it implies: a favourite at −218 implies 218 ÷ 318 = 68.6%, an underdog at +180 implies 100 ÷ 280 = 35.7%.
- Those add to more than 100% (here 104.3%). The extra is the bookmaker’s margin, and it is removed by dividing each side by the total, which gives 65.7% and 34.3%. That is the standard way to strip the margin, and the result is why these two numbers add to 100% when Kalshi’s do not.
- With no moneyline, the spread is used instead: NFL results land around the spread with a standard deviation of about 13.45 points, so a 3.5-point favourite wins about 60% of the time.
- Lines are fetched while they can still move and stored only if fetched before kickoff. After the game the closing line, the last price before kickoff, replaces them and is never replaced by anything else. A pregame expectation is never read off a price set after the game started.
- The opening line is kept too, so a big move before kickoff (usually injury news) can be seen and mentioned.
Once a game starts, the pregame line says nothing about the score, so the live win chance on a game in progress is Kalshi’s, which keeps trading. After the game the card shows the closing line and how the result went against it.
Lines are shown as information about expectations. Nothing on this site is betting advice. If gambling is causing you problems, call 1-800-GAMBLER.
Kalshi probabilities
Win probabilities are Kalshi market prices: what traders will currently pay, as a percentage. They are not forecasts from this site and not advice. The site displays market information only.
How a quote becomes a percentage
- Only single-game winner markets are used — never spreads, totals or futures.
- A market is matched to a game only when both teams, the event and the close time agree. Ambiguous matches are shown as unavailable and queued for an editor.
- The number is the midpoint of the best bid and ask, at $1 = 100%. With no two-sided quote the last trade may be used, and it is labelled.
- A quote fetched more than 15 minutes ago is not shown as current.
- Two times are kept apart: when we fetched the quote, and Kalshi’s own timestamp for when the price last changed. A quiet market’s timestamp can be weeks old while the quote is seconds old.
Each team’s probability is its own contract’s price. The two sides of a game are not forced to add up to 100%, and we do not normalise them.
Next-week projections
The Next Week page estimates where each team belongs going into the following week, recalculated while games are played. It never changes the official rankings.
The method
- A frozen baseline from before the week: 55% the official rank, 35% the unit ranks, 10% the record — with record and unit ranks rebuilt from games before the week, so the result being scored is not counted twice.
- Each result against what was expected of it. The expectation is the Vegas closing line, with the bookmaker’s margin removed. Failing that, a Kalshi quote recorded before kickoff; failing both, the model’s own estimate (a logistic on the two baselines with four points of home edge), and the card says “model estimate”. A win nobody expected moves a team most.
- Turnovers discounted. A result built on takeaways earns up to 44% less, because turnover margin rarely repeats.
- Blended and bounded. At the default setting the week’s evidence carries 30% and the baseline 70%. Editor context notes (injuries and the like) are capped at 6 rating points each and scaled by how certain they are.
- Unfinished games are carried as both outcomes weighted by the live market price, never as a guess at one.
The weights are stated assumptions, not fitted to history. Once the editor publishes a week, the final projection for it is graded against the published order, and against simply carrying the previous week’s order forward, on the Next Week page. Current model: pre-rank-1.4.0.
When every game is final the week is marked complete. A recalculation that changes nothing publishes nothing; a late data correction or a method change publishes a new snapshot that says why. Every snapshot is kept through the following week, and each week’s final snapshot is kept for good.
AI and evidence
Four things that are easy to blur, kept separate:
- Tools used to build the site. The code was developed with AI coding assistance (Anthropic’s Claude). That is a credit for how it was built, not a claim about what runs.
- Models running when you read it. None. No language model is called when a page is served or when a projection is computed.
- Deterministic calculations. Unit ranks, projections and the projection explanations are produced by fixed rules from the game data. Every score, margin and name in a generated explanation is checked against the results before it is published, and a sentence that fails is withheld.
- Human decisions. The ranking, tiers, headlines, analysis and any context notes are the editor’s.
Evidence. No news or weather source is connected, so nothing is researched automatically. ESPN’s official injury reports are shown on game and team pages, attributed and timestamped, but they do not move the projection on their own, because the Vegas line it relies on has usually priced them in. A development reaches the projection only through a note an editor enters, which is shown on the card as an editor note with its confidence (confirmed, reported or unclear) and its source link where one was given. An injury is never presented as a finding.
Corrections and history
Every change to a published week is logged with its author and time, and can be undone. Automated recalculations are logged too, but are not counted as editorial changes: “Edited” on the rankings page means a person changed it. In the editor, headlines and analysis that mention a score or margin are checked against the results; a claim that matches no game is flagged for review, never rewritten.
Records captured when a week is published are frozen with it. Projection snapshots are kept whole and never edited after the fact.
Spotted a mistake? Send feedback.
Independence
Power Flux is an independent publication, not affiliated with, endorsed by or sponsored by the National Football League or any of its clubs. Team names, logos and uniform designs belong to their owners and are used for identification and editorial reference only. Favourite teams and your theme preference stay in your browser; the site sets no advertising or tracking cookies.