Sprints, points and burndown
A sprint is a list with dates. Its cards stay in their backlog; effort points, the burndown and the velocity are read from the workspace's journal and from what each sprint holds.
A sprint is a list with dates
A collection with a startsOn and an endsOn is a sprint — both dates or
neither, days in UTC. Cards are born in their backlog, which gives them their key
(BACK-12), and are attached to the sprint as a secondary list: moving to
the next sprint never renumbers anything.
Complete sprint (POST …/collections/{collectionId}/complete-sprint, in the
web app on the sprint's banner) moves what is not done — by status category,
never by name — to the list you choose, and leaves what is done where it was
delivered. One transaction, one journal event per card.
Effort points
The workspace designates one number property as its effort points
(Workspace settings → General → Effort points, or
PATCH /workspaces/{workspaceId} with pointsFieldId). It is a workspace
setting, not a list setting: a sprint mixes cards from several backlogs, and a
card weighs the same in every sprint you look at it from.
Once designated:
- its value shows as a badge on cards — table cells, board cards, list rows, the card page;
- each board column shows the sum of its points, over the whole column and not
only the cards loaded (
sumFieldIdonPOST …/grouped-query, returned inItemGroup.sum); - the sprint banner shows done / total, and how many cards are not estimated.
A card without points weighs 0 — it is not counted as “one card”, which would mix two units in one sum. Without a designated property, everything counts in cards, each worth 1. Deleting the property switches the workspace back to cards.
Burndown
GET …/collections/{collectionId}/sprint-report returns, for each day of the
sprint, the scope, what was done and what remained at the end of that day,
plus an ideal line from the scope committed on the first day down to zero.
It is read back from the journal, newest event first: status changes into or
out of the done category (a card reopened on Thursday stops counting on
Thursday), attachments and detachments, re-estimations, archiving. A card
detached by Complete sprint is a carry-over, not a scope cut: it keeps counting
as not done until the end. Future days are null — the line stops at today.
The journal is purged by month
When an instance applies its retention, whole months of journal disappear. For a
sprint older than what is left, the report says so (burndown.historyFrom) and
the days before it are null: they are unknown, not zero.
A deleted card leaves the whole curve, past days included: nothing remains to say what it weighed.
Velocity
The same report lists what each of the last six sprints of the same sidebar group finished (sprints outside any group form their own series), and the average of those already over — the figure to plan the next one with.
Velocity reads the present state of each sprint's cards, not the journal: it survives the purge. The price: a card reopened or re-estimated later rewrites the velocity of the sprint that delivered it. A card carried over and finished in a later sprint counts once, in the later one.