Touchdown Theory

Data status.

Every number on this site is a snapshot taken at a moment, so this page says when each moment was. Feeds are run rather than scheduled at present, which means a stamp here is the last time someone pulled, not a promise about how often.

Feeds

FeedLast runStatusSeenChangedRuns
odds_api_linesFri Oct 30, 8:30 PM ET10 min agook66015519 ok
odds_api_anytime_tdFri Oct 30, 8:00 PM ET40 min agook1664287203 ok
odds_api_yardageFri Oct 30, 8:00 PM ET40 min agook213278649 ok
shadow_generationFri Oct 30, 12:20 PM ET8 hours agook0015 ok, 1 failed
scorecardFri Oct 30, 12:20 PM ET8 hours agook0027 ok
live_generationFri Oct 30, 12:19 PM ET8 hours agook0040 ok, 33 failed
weatherFri Oct 30, 12:17 PM ET8 hours agook10977 ok
injuriesFri Oct 30, 12:17 PM ET8 hours agook2780109 ok, 6 failed
depth_chartsFri Oct 30, 12:17 PM ET8 hours agook23050109 ok, 3 failed
rostersFri Oct 30, 12:17 PM ET8 hours agook225716115 ok, 5 failed
snap_countsFri Oct 30, 12:17 PM ET8 hours agook10073054 ok, 2 failed
playersFri Oct 30, 12:16 PM ET8 hours agook226983457 ok
pbpFri Oct 30, 12:15 PM ET8 hours agook2358061 ok
scheduleFri Oct 30, 12:15 PM ET8 hours agook2723117 ok, 3 failed
feed_d_deadmanFri Oct 30, 11:29 AM ET9 hours agofail000 ok, 2 failed
odds_api_propsMon Oct 5, 12:24 PM ET25 days agook3583582 ok

Seen is how many records the feed found on its last run. Changed is how many differed from what was already stored, so a run that sees many and changes none means nothing moved, not that nothing happened.

Tables

TableReadableRows
live_scheduleyes1992
live_weatheryes514
live_injuriesyes4137
live_rostersyes36169
live_depth_chartsyes6028
live_player_game_statsyes10073
live_game_predictionsyes14
live_team_box_projectionsyes28
live_player_projectionsyes390
stadiayes51
team_ratingsyes352
feed_pull_logyes2509

Every table behind this site is readable. Row counts are database estimates, so they lag a little behind an exact count.

Read from the database catalog rather than from the tables themselves, so this page keeps working precisely when something behind it has stopped.

Board runs

The newest live_generation rows the back end has written. Each line is one Render run; the back end names the outcome, so a stop at build time reads "blocked" with the stage it stopped at, and a successful run reads "published" with the params version it shipped.

TimeOutcomeStageParams versionFreshnessGates
Fri Oct 30, 12:19 PM ETpublished—live-20261030T161828ZdegradedG1:PASS,G2:PASS,G4:PASS,G3:REVIEW,G5:OFF,internal:PASS
Fri Oct 30, 7:19 AM ETpublished—live-20261030T111838ZdegradedG1:PASS,G2:PASS,G4:PASS,G3:REVIEW,G5:OFF,internal:PASS
Thu Oct 29, 12:20 PM ETpublished—live-20261029T161846ZdegradedG1:PASS,G2:PASS,G4:PASS,G3:REVIEW,G5:OFF,internal:PASS
Thu Oct 29, 7:20 AM ETpublished—live-20261029T111929ZdegradedG1:PASS,G2:PASS,G4:PASS,G3:REVIEW,G5:OFF,internal:PASS
Wed Oct 28, 12:20 PM ETpublished—live-20261028T161911ZdegradedG1:PASS,G2:PASS,G4:PASS,G3:REVIEW,G5:OFF,internal:PASS
Wed Oct 28, 7:20 AM ETpublished—live-20261028T111848ZdegradedG1:PASS,G2:PASS,G4:PASS,G3:REVIEW,G5:OFF,internal:PASS
Tue Oct 27, 10:03 AM ETblockedfeeds---
Tue Oct 27, 10:03 AM ETblockedfeeds———
Mon Oct 26, 7:07 PM ETpublished—live-20261026T230511ZfreshG1:n/a,G2:n/a,G4:PASS,G3:PASS,G5:PASS,internal:PASS
Mon Oct 26, 4:28 PM ETpublished—live-20261026T202632ZfreshG1:n/a,G2:n/a,G4:PASS,G3:PASS,G5:PASS,internal:PASS

Spread contradictions

Games where the book-consensus spread and the schedule-side spread_line favor opposite teams by 3 or more points. The Market spread cell is suppressed on these cards until the two sides agree.

No contradictions this week.

Unknown pending reasons

degraded_reason strings on this week's games that aren't in the UI's taxonomy. Any row here is rendering a generic "Inputs updating" tag today and should get a dedicated label.

  • 1 gamelive_injuries missing team SEA