Inside the composing room / Engineering case study
How the
paper is made
The score chooses the story. The streak ages the paper. Every effect starts with a fact in the archive.
Built by Garo Vartabedian. An independent fan project with its workings left open to inspection.
- 01 / Sourcenflverse play-by-play
- 02 / CheckReal snaps, reconciled scores
- 03 / RankSecond-half probability
- 04 / PrintLead, headline, paper
The season leaves a mark
Compare the five paper conditions. This sample changes only the sheet below; it does not change the archive or the current streak.
A sample from the composing room · stock 0/4
The feeling
has a texture.
A win resets the paper. Losses progress through one–two, three–four, five–six, and seven or more games. A tie uses the first worn condition. Text describes every state, so the meaning survives without the color or texture.
The headline is a calculation
Heartbreak ranks losses by the highest Jets win probability reached in the second half. Miracle ranks wins by the lowest probability reached in the second half. Overtime is included.
The most recent result chooses the mood: after a loss, the lead comes from heartbreak; after a win, it comes from miracles. The story itself may be an older extreme in the archive. Headline size grows with distance from a 50–50 game.
These are model estimates at particular moments, not a measurement of how every fan felt. The archive covers the 1999–2025 seasons; this is not a live scoreboard.
Inspect the rankings and game curves →The useful finding was a bad number
A quarter-ending administrative row in the 2000 Oakland game carried a 99.4% win probability while nearby real snaps were around 4%. Checking only for a non-null possession team did not remove it: the row contained an empty string.
The extraction now requires a possession team that is neither null nor empty, plus a play type, before reading probability. Selecting the decisive play also excludes no-plays, kneels, and spikes. The source query keeps those rules beside the calculation.
Read the extraction and integrity checks →Keep the exception visible
The current dataset contains 449 games; 448 qualify for the two rankings. 1 game is flagged because the running play-by-play score does not reconcile with the recorded final score.
2002_04_NYJ_JAX2002-09-29 · at JAX · Jets 3, opponent 28
Flagged records remain in the dataset for inspection but cannot win a ranking or supply the lead. No replacement probability is invented.
A small system with a visible chain of decisions
DuckDB reads the source Parquet files during data preparation and writes static JSON. Next.js renders the front page from that snapshot. Small React controls handle comparison and archive interaction; CSS carries the paper, typography, and print texture.
There is no runtime language-model call deciding the headline. The source data, rules, and output can be inspected independently.