Receipts
Paste a Sleeper league id. For any settled week: the minute the matchup flipped, bench points left, wire cost, and which open source called it.
Two URLs
| URL | Shows | Needs |
|---|---|---|
| /r/:leagueId | Each matchup of the current week on one line, with a week picker | Nothing |
| /r/:leagueId/:week/:rosterId | One team’s receipt, with an image card for the chat | Nothing |
:leagueId is a raw Sleeper id. Private leagues work, since Sleeper’s API serves them by id. A username in the finder lists that person’s leagues. When a team name is the manager’s username, it renders as Roster N.
A league on your own league box (an
lg_ id) has receipts too, behind the same seat check and with no public card. The public box hosts no leagues.What is on one
| Line | Says | Computed from |
|---|---|---|
| The flip | The minute the lead last changed, the play, and the win probability a half-hour earlier | nflverse play-by-play under the league’s book |
| The bench | Points left on the bench, and who sat behind whom | Best lineup on the box score against the lineup set |
| The sources | What each open source would have called before kickoff | Sleeper projection · last three weeks · season average, under the same book |
| The wire | Bids as a share of budget, results, and what the player cleared for elsewhere | League transactions plus wire clearing prices in percent of budget, once a second league has one |
| The season ledger | Which open source would have set a better lineup than you, week by week | Each source’s pre-kickoff lineup scored on the box score |
| The agent’s line | Which lineup moves a token made, by name and time | agent_action |
a real one · SDIFFL 2025 · week 14 · NateBot 129.0 · Roster 14 85.3
Took the lead for good at 3:41pm ET on a Trevor Lawrence completion, 78.8–78.6 · 78% to win at 3:11pm. 6.5 left on the bench — Omarion Hampton (13.7) started over Saquon Barkley (20.2). Sleeper projection, Last 3 weeks, and Season average all said start Barkley. Wire: bid $26 on Stefon Diggs — 13% of a $200 budget — lost.
Paid sources do not appear on a receipt.
The card
Each receipt page sets og:image to a PNG at /api/og/r/:leagueId/:week/:rosterId, so a pasted link unfurls the receipt in iMessage or Discord. The card draws only what is on the receipt.
Receipts show team names, not people. To have a league’s receipts taken down, open an issue on the repo with the league id.
How the flip is found
- Each season’s nflverse play-by-play is streamed once into a per-game timeline of scoring deltas: who gained what, on which play, at which second.
- Both lineups are replayed under the league’s scoring book, so a half-PPR flip and a full-PPR flip can land on different plays.
- The flip is the last moment the lead changed. “How likely you were” is a win-probability snapshot from thirty minutes earlier.
- Kick times are Eastern. If the season’s play-by-play is not published yet (the current week, most Sundays), the receipt says so.
- Where nflverse and Sleeper’s weekly stats disagree, the difference is booked as one event at the final whistle. Each final matches Sleeper to the cent (84 of 84 team-weeks checked). If a correction decided the week, the receipt says “on the final box score”.