← Help

Weekly recaps

Once a week the app writes down what just happened in your league — who played, who won, who moved up the table — and keeps it. Not a notification you scroll past: a dated entry that is still there next season, when nobody remembers who was top in week three.

You read them under the league table on the Standings tab, one week at a time, with arrows to walk back through the season. There is no Recap tab, on purpose: a recap explains the table it sits under.

The organizer's Recap tab: the week being generated, the facts the app collected for it, and the prose written from them.
Organize → a season → Recap, where an organizer generates and checks a week.

A recap is a record, not a view

This is the part worth understanding, because everything else follows from it. When a week closes the app works out every number in it — the results, the table, the streaks, who climbed and who slid — and freezes them. The page you read later is showing you those stored facts. It is not re-deriving them from today's data.

So a score corrected in March cannot quietly rewrite what January's recap said. A player who leaves the league doesn't vanish from the weeks they played in. A recap stays a description of the week it describes, which is the only thing that makes it worth keeping at all.

The same rule is why a recap the app has already posted to Discord is frozen hardest of all. That message is what your channel saw. Nothing regenerates it.

Where a week starts and ends

A week runs from one boundary to the next, and the boundary is your league's digest day — Sunday unless you change it, on the Discord tab. Move that day and the whole week moves with it; there is no second "week starts on" setting to keep in step.

Only games that were settled inside the window belong to that week. A game played on Tuesday and confirmed the following Monday lands in the week it was confirmed in, because that is the week the league found out about it.

What's in one

The games

Every result that settled this week, with the score and both players. Plus the shape of the week around them: how far through the season you are, and how long is left.

The storylines

The things a table doesn't say out loud — who took the lead, who won their first game, who is on a run, who climbed the most places. Worked out from the week's real results.

Grudges

When the week's pairings happen to land two old enemies opposite each other, the recap says so. That comes from a rivalry table shipped with the app, matched against the factions actually played — so it needs no AI at all and never changes afterwards.

Sportsmanship ratings are never in a recap. They are organizer-only everywhere in the app, and the recap is built without ever being handed them — see Sportsmanship.

Letting an AI write it

On by default for a new season. With Have Claude write the weekly lede ticked on Organize → Recap, the recap gains a few sentences of actual prose at the top — the week told as a story instead of listed as rows. The scheduled run writes that lede whenever the switch is on, including for a league with no channel connected.

The rule that makes that safe: the model is never asked to work anything out. It receives the facts the app already froze and turns them into sentences. It does not add up victory points, decide who is on a streak, or infer a result. A model doing arithmetic will eventually get a number wrong and post it to your channel as fact, so it is never given the chance.

You can give it something to work with. The season's scene (on the Recap tab) sets the tone for the whole league, and each player's Team Lore tells it who their warband is. That is flavour, not facts — it colours how the week is told and never becomes something the recap claims happened.

A recap can also arrive with no AI sentence at all, and still be complete. That happens when the league has used up its share of the day's AI budget, or when what came back tripped the app's language screen. The facts, the scores and the table go out either way; only the flourish is missing. There is more on the ceilings in Season dates & AI limits.

Filling in a week you missed

Organizers can generate any week on demand from Organize → Recap — which is how a league that started mid-season, or one that turned recaps on late, fills in its back catalogue. The scheduled run never goes hunting for missing weeks on its own.

A week written late still says what it would have said at the time. The app rebuilds that week as it stood at its own boundary: games settled after it are put back to unplayed for that week's purposes, so the standings, the streaks and the movement are the ones that week actually had — not today's, with the benefit of hindsight.

Sharing them

Everyone in the league can always read their own league's recaps. Publishing them to people with no account is a separate decision, because a recap names players and narrates their losses, which is a different thing to put on the open web than a results table.

It is also a second consent rather than an alternative one: publishing recaps only does anything while the season is listed. Unlist a season and its recaps go private with it, automatically. See Sharing your league for the whole public surface, and Privacy for who can see what.