Estimation Flow
How the estimation lifecycle works in TwoWeeks.
Session State Machine
Section titled “Session State Machine”After finalizing, the host either selects the next pending ticket (back to estimating) or, when none remain, the session rests in the lobby.
States
Section titled “States”The host is building the ticket list. No developers can join. All changes are persisted to SQLite. The host can close and reopen the browser — everything is saved.
The session is live and developers can join. Users see who else is in the room. The host selects the first ticket.
Estimating
Section titled “Estimating”A ticket is displayed to all users. Developers click tiles to submit estimates. The host can start the timer. Anonymized vote count is broadcast (e.g. “3 of 5 have voted”).
Locked
Section titled “Locked”Estimates are frozen. A brief lock animation plays on all clients. This state lasts 800ms — just enough for dramatic effect.
Revealed
Section titled “Revealed”All estimates are shown with confetti. The low, median, and high values are highlighted. Individual votes are listed per developer. The host can finalize, re-estimate, or move to the next ticket.
Roles During Estimation
Section titled “Roles During Estimation”- Selects tickets
- Starts/stops timer
- Locks estimates
- Views revealed results
- Finalizes or re-estimates
- Manages ticket queue
- Reads and writes ticket comments, and can delete any comment
- With async voting on, reveals and finalizes tickets people voted on ahead of time
Developer
Section titled “Developer”Views current ticket Clicks tiles to estimate Sees timer countdown Sees reveal with confetti Waits for host’s next action Opens the ticket details panel to read and write comments With async voting on, votes on pending tickets ahead of time from the Tickets to vote on list
The host also sees a dimmed “tile preview” at the bottom of the screen to know what developers are seeing.
Everyone in the session can discuss a ticket in its Comments tab at any point, before, during, or after a round. See the Ticket Comments section of Hosting Sessions.
If the host turns on async voting, people can also vote on pending tickets without being in the live round, and the host reveals and finalizes by hand. When the host picks a ticket you already voted on for a live round, your vote is already in it and your pick is selected; choose another estimate to change it. See the Async Voting section of Hosting Sessions.
Calculation
Section titled “Calculation”When estimates are revealed:
- Low — the smallest value submitted
- High — the largest value submitted
- Median — the middle value when sorted (if even count, the lower-middle value)
Values are sorted numerically when possible (for Story Points), or alphabetically (for T-Shirt sizes like XS, S, M, L, XL).
Round Numbers
Section titled “Round Numbers”Each time the host clicks Re-estimate, a new round begins:
- The round counter increments
- Previous estimates for this ticket are preserved in history
- The new round starts fresh — all developers must re-submit
The system admin can view all round results in the admin dashboard session detail view.