Skip to content

Hosting Sessions

As a host, you create and manage estimation sessions.


  1. Open TwoWeeks and log in (see Accounts & Login)
  2. Click the Host a session tab
  3. Configure your session:
SettingDescriptionDefault
Estimation styleStory Points or TimeStory Points
ValuesComma-separated estimate options1, 2, 3, 5, 8, 13, 20, 40, 100
TimerCountdown in seconds (0 = disabled)60
  1. Choose a preset (Fibonacci, T-Shirt sizes, Hours) or enter custom values
  2. Click Start session

You’ll get a session code — share this with your team.

Sessions start in draft mode. In draft:

  • The session is not joinable by developers
  • You can add tickets manually or import from Jira
  • Everything is saved to the database — you can close your browser and come back later
  • Your draft sessions appear under the My drafts tab on the home page

Use draft mode to build your ticket list ahead of time — hours or even days before the estimation session.

Click + Add ticket in the sidebar. Enter a title and optional description. The ticket appears in your queue.

Click Import from Jira to open the importer. See Jira Integration for details.

Click Import from GitLab to open the importer. See GitLab Integration for details.

Hover a ticket in the sidebar and click the × button to remove it. This works at any point in the session — draft, lobby, mid-estimation, or after reveal — and only the host can do it. Removing the ticket currently being estimated returns the session to draft so you can select a new one.

Double-click any ticket to open its details panel. It has up to four tabs:

  • Details — title, description, Jira key, and labels.
  • Votes — shown when async voting is on (see Async Voting below). It shows who has voted, and lets you reveal and finalize.
  • Comments — the team’s discussion about the ticket (see Ticket Comments below). The tab shows how many comments there are, for example Comments (3).
  • History — earlier estimation rounds for the ticket.

Drag the panel’s right edge to resize it, or use the Narrow and Widen buttons in its header.

During a locked relative-estimating review (see below), the host can click Broadcast to participants in the details panel to push that ticket’s details to every connected participant’s screen — useful for walking through a ticket together before finalizing. Participants can still open their own ticket details independently while locked, unless the host is actively broadcasting, in which case everyone sees the broadcast ticket until the host stops it.

Use comments to share context that helps the team estimate: a risk, an assumption, a question, or a link. Open a ticket’s details panel and choose the Comments tab.

  • Which ticket — the top of the tab names the ticket the thread belongs to (“Comments on …”). Check it before you post: a ticket you opened stays open while the host moves the round on to another one.
  • Who can see them — everyone in the session, host and developers alike. New comments appear live for everyone who is connected, and the host’s ticket sidebar shows a comment count on each ticket that has any.
  • Posting — type in Add a comment and click Add comment (or press Ctrl or Cmd + Enter). Comments are plain text, up to 2000 characters. You can post 10 comments a minute, and a ticket holds up to 200.
  • Editing — you can edit your own comments. Edited comments are marked as edited. Nobody, including the host, can edit someone else’s comment.
  • Deleting — you can delete your own comments. As host you can delete any comment, for example one that is off topic. You are asked to confirm first.
  • Removing a ticket — deletes its comments too. The confirmation tells you how many comments will go.
  • Where they live — comments belong to the session. They are deleted with the ticket or the session, and they are never sent to Jira or GitLab: only the final estimate is pushed there.
  • After the session closes — the comments stay readable, but no one can add, edit, or delete them.

If a comment is refused (for example, you are commenting too quickly), the reason appears under the box and your text stays in it so you can try again.

Async voting lets people estimate without being in the live round: someone who cannot attend, or a team in different time zones, votes ahead of time on any pending ticket. You can mix it with live rounds in the same session. It is available for story-point and time estimation, not the relative board.

Turn it on. When you create a session, under Voting outside the live round, choose Live and async. You can set an optional voting deadline and choose whether it is a Reminder only or Stop voting at the deadline.

What participants see. A Tickets to vote on list, showing each ticket’s status, how many people have voted, their own vote and the deadline. Vote opens the ticket’s Votes tab, where they pick a value. They can change or withdraw their vote until you reveal.

What you see. Each pending ticket in the sidebar shows how many have voted, with a Votes button that opens the tab. (Clicking the ticket itself selects it for a live round, so use Votes for async.) The tab lists who has voted so you can chase the rest, but not what they voted. Values stay hidden from everyone, you included, until you reveal.

Reveal and finalize. Click Reveal votes to show every value, plus the low, median and high, to everyone. Revealing closes voting on that ticket. Then pick the final estimate and click Finalize. You can choose any value, not only the median. If the ticket came from Jira or GitLab, only the final value is sent there.

Nothing happens by itself. The app never reveals or finalizes for you, and a deadline never does either:

  • A reminder deadline is only shown, as “Due in 2 days” or “Overdue”. Voting stays open until you reveal.
  • A hard deadline shows “Voting closed” and refuses new votes and changes. You can still reveal and finalize. To reopen voting, move the deadline on the Votes tab.
  • A deadline does not stop live voting or comments.

Votes cast ahead of time in a live round. When you select a ticket that people have already voted on, those votes go straight into the live round:

  • They count in N of M have voted, including people who are not in the room. Someone who is in the room sees their earlier pick selected, with a note that they voted ahead of time. If they pick a different estimate, that live vote replaces it.
  • The values stay hidden until you reveal the round. If you had already revealed that ticket’s async votes, they are hidden again, so they cannot anchor the room. You can reveal them first on the Votes tab if you want to discuss them.
  • When you reveal the round, the earlier votes appear with the live ones, marked Voted ahead, and the round’s history includes them.
  • The app still never reveals or finalizes for you. If you click Re-estimate, everyone votes live again and the earlier votes no longer count.
  • While a ticket is in a live round, people vote in the round, not on the Votes tab. A ticket that is being estimated live also cannot be finalized from its async votes: finish the live round instead.

When you’re ready for developers to join:

  1. Make sure you have at least one ticket in the queue
  2. Click the Go Live button
  3. The session transitions to lobby state
  4. Share the session code with your team

Click a ticket in the sidebar to broadcast it to all connected developers. The state changes to estimating.

Click Start timer to begin the countdown. Developers see the timer bar. The timer turns yellow at 30 seconds and red at 10 seconds. When it expires, estimates are auto-locked.

You can cancel the timer at any time.

Click Lock estimates when you’re ready to reveal. You’ll see how many developers have voted (e.g. 5/8). After locking:

  1. A brief locked animation plays
  2. Estimates are revealed — low, median, high, and per-developer votes
  3. The median value is pre-filled in the finalize input

Choose the final estimate:

  • Accept the median (pre-filled)
  • Enter a custom value
  • Click Confirm & update

The ticket is marked as estimated and stored in the database.

If the team disagrees or wants another round:

  • Click Re-estimate to start a new round for the same ticket
  • Previous estimates are cleared
  • Each re-estimate is a new round — previous round results are still visible in the admin dashboard

Click Next ticket to move to the next pending ticket. The current ticket is skipped if not finalized.

  • All finalized tickets stay in the session with their final values
  • The session persists — you can return to draft mode and add more tickets
  • Use the admin dashboard to review past sessions

You can add co-facilitators (co-hosts) who can help run the session — select tickets, manage the timer, lock estimates, and finalize. See Co-Facilitators for details on adding and managing co-hosts.

Share the session code via Slack, Teams, or any chat tool. Developers enter the code on the home page. You can also share the full URL — the code appears in the browser URL and can be copied via the Copy invite link button in the top bar.

Hosts can manage their account from the dashboard. Open the hamburger menu and select Account to:

  • Change username or display name
  • Change password — set a secure password (8+ characters, must include a lowercase letter and a number or special character)
  • Deactivate account — temporarily disable your account; an admin can reactivate it later
  • Session defaults — configure default estimation settings for new sessions
  • Jira defaults — pre-fill Jira connection details for all new sessions
  • GitLab defaults — pre-fill GitLab connection details for all new sessions

See Accounts & Login for full details on account management.