CHIPSCollaborative Heuristic for Iterative Planning and Story-pointing · documentation for version 1.7.0

User guide

This guide is the same as CHIPS's built-in Help (the ? button).

Getting started

For: Everyone

CHIPS — Collaborative Heuristic for Iterative Planning and Story-pointing — is a web application for estimating user stories together, in real time, from any browser. Nothing needs installing on anyone's device.

There are three kinds of people:

Role Needs an account? Can…
Team member No — joins with a link vote, add notes, sort stories on an affinity board, choose display settings
Scrum master Yes everything a team member can, plus create projects and rooms, add and import stories, run the voting, record sessions, download results, see history, use Jira
Administrator Yes everything, in every project, plus users, sign-in providers, access tokens, site settings and the activity log

If you are a team member: open the link your scrum master sent, type your name and press Join room. That's it — see For team members.

If you are a scrum master:

  1. Sign in on the welcome page (your administrator gives you an account, or you Create account if self-registration is on). The very first time, the administrator sets CHIPS up — see Setting up CHIPS.
  2. On Projects, press New project, then type a room name and press Create room.
  3. Press Copy link and send the link to your team.
  4. Add user stories at the bottom of the room (or Import them).
  5. Press Start on a story — everyone picks a card — press Reveal cards — Save estimate.
How CHIPS operates, from sign-in to results
flowchart TD
    A([Scrum master signs in]) --> B[Create or open a project]
    B --> C[Create a room and choose its rules]
    C --> F[Add user stories: type them, upload a CSV file or import from Jira]
    F --> D[Share the room link]
    D --> E([Team members open the link and type their name])
    E --> G{How to estimate?}
    G -->|one story at a time| H[Pick a technique: planning poker, Fibonacci, t-shirt or three-point]
    H --> J[Everyone votes in secret]
    J --> K[Scrum master reveals the cards]
    K --> L{Agreement?}
    L -->|no: discuss| J
    L -->|yes| M[Record the final estimate]
    G -->|many stories at once| I[Affinity board: the team sorts stories into size columns]
    I --> M
    M --> N{More stories?}
    N -->|yes| G
    N -->|no| O[End the session]
    O --> P[History, CSV download and recording playback]
    M -.->|optional| Q[Update Jira: story points, assignee, priority, versions, labels]

Every button describes what it does when you hold the mouse over it.

Setting up CHIPS

For: Administrators

After CHIPS is installed, the welcome page shows Set up CHIPS. Setting up is done once, by the person who installed it, in six steps:

  1. Setup code. So that nobody else can take over a new installation, the wizard asks for a one-time code. The installer prints it; it is also in the server log (sudo journalctl -u scrum-poker, docker compose logs app, on Windows C:\ProgramData\CHIPS\logs\chips.log). On the server, python -m scrumpoker.manage setup-code makes a new one (Linux: sudo /opt/scrum-poker/deploy/setup-code.sh; Windows: deploy\windows\setup-code.ps1 in an elevated PowerShell). A code is valid for 24 hours and stops working after 10 wrong tries. The step then shows checks of the server: the database, the site secret, HTTPS, secure cookies and the integrity of the installation.
  2. License agreement. Read and accept it for your organisation.
  3. Administrator. Username, display name, email and password (long, not a common password, not containing the username).
  4. Installation options. Organisation name, the public address people use (for share links), the default time zone, the language (American or British English spelling), whether administrators must use two-factor sign-in, whether anyone may create an account, password length, how long a sign-in lasts, people per room, the default technique, how long the activity log is kept, and whether the REST API and Jira are available.
  5. License key (optional). Without one, CHIPS runs as the Community edition.
  6. Review and install. Nothing is saved before this step; then everything is saved at once and you are signed in as the administrator.

Everything can be changed later under Admin → Settings, which also shows the checks again.

Security and two-factor sign-in

For: Scrum masters and administrators

Two-factor sign-in

Account → Two-factor sign-in → Set up: scan the QR code with an authenticator app (Microsoft Authenticator, Google Authenticator, 1Password, Authy …) and enter the 6-digit code it shows. From then on, signing in asks for your password and then a code from the app.

You also get 10 recovery codes. Each signs you in once if you do not have your phone — keep them in a password manager or printed. New recovery codes replaces them. If you lose both, an administrator can turn two-factor sign-in off for you (Admin → Users, or manage reset-2fa NAME on the server).

Administrators can make two-factor sign-in required for administrators (Admin → Settings). An administrator without it can still sign in, but administration stays locked until it is set up.

Wrong passwords

After 5 wrong passwords within 15 minutes an account is locked for a minute, then longer with every further wrong try (at most an hour). Even the right password waits. An administrator can unlock it at once (Admin → Users → Unlock, or manage unlock NAME). Many wrong passwords from one network address block that address the same way.

How CHIPS protects itself

How CHIPS works (flowcharts)

For: Everyone

These flowcharts show how CHIPS operates. Solid arrows are the usual path; dotted arrows are optional.

The whole process

How CHIPS operates, from sign-in to results
flowchart TD
    A([Scrum master signs in]) --> B[Create or open a project]
    B --> C[Create a room and choose its rules]
    C --> F[Add user stories: type them, upload a CSV file or import from Jira]
    F --> D[Share the room link]
    D --> E([Team members open the link and type their name])
    E --> G{How to estimate?}
    G -->|one story at a time| H[Pick a technique: planning poker, Fibonacci, t-shirt or three-point]
    H --> J[Everyone votes in secret]
    J --> K[Scrum master reveals the cards]
    K --> L{Agreement?}
    L -->|no: discuss| J
    L -->|yes| M[Record the final estimate]
    G -->|many stories at once| I[Affinity board: the team sorts stories into size columns]
    I --> M
    M --> N{More stories?}
    N -->|yes| G
    N -->|no| O[End the session]
    O --> P[History, CSV download and recording playback]
    M -.->|optional| Q[Update Jira: story points, assignee, priority, versions, labels]

One estimating round

Votes stay secret until the scrum master reveals them — not even the scrum master sees other people's cards before that.

One estimating round
flowchart TD
    S[Story in the backlog] -->|Start| V[Voting: cards face down]
    V -->|each person picks a card or gives three numbers| V
    V -->|Reveal, or automatically when everyone has voted| R[Revealed: cards, statistics and a suggestion]
    R -->|Vote again| V
    R -->|Save estimate| D[Estimated]
    D -->|Vote again| V
    D -.->|Update Jira| J[(Jira issue)]

The affinity board

The affinity board
flowchart TD
    A[Scrum master opens an affinity board and picks the columns] --> B[Every story without an estimate starts in Not sorted yet]
    B --> C[Anyone in the room moves stories into size columns]
    C -->|everyone sees each move at once| C
    C --> D{Scrum master decides}
    D -->|Accept board| E[Each sorted story gets its column as final estimate]
    D -->|Close without saving| F[Nothing changes; the board stays in the history]

Updating Jira

Updating Jira
flowchart TD
    A[Update Jira] --> B{Which stories?}
    B -->|this story| T[The story]
    B -->|the room| R[All Jira stories in the room]
    B -->|JQL query| Q[Issues found in Jira, paired with stories by key]
    T --> F[Choose the fields to send]
    R --> F
    Q --> F
    F --> P[Preview: what will be sent, and what not and why]
    P --> U[Update Jira]
    U --> X[Result per issue: updated, partly updated or failed]

How the parts fit together

Everyone uses a browser; the CHIPS server shows the pages, applies the rules and pushes every change to everyone in the room at once. Everything is kept in a PostgreSQL database.

How the parts fit together
flowchart LR
    subgraph devices [Any device with a web browser - nothing to install]
        P1[Scrum masters and administrators]
        P2[Team members]
    end
    P1 --> APP
    P2 --> APP
    APP[CHIPS server - pages, rules, live updates] --> DB[(PostgreSQL database)]
    APP -->|personal access token| JIRA[Jira]
    APP -->|OAuth 2.0 / OpenID Connect| IDP[Your sign-in provider]
    S[Scripts and tools] -->|REST API with an access token| APP

For team members

For: Team members

Joining

Open the link the scrum master sent you, type your name and press Join room — or Join as watcher to only observe (you see everything but do not vote, add notes or react). Your browser remembers you for that room, so you can close the tab and come back. If the scrum master added you by name, they sent you a personal link instead — it signs you straight in; don't share it.

Voting

When the scrum master starts a story, pick a card. You can change it until the cards are revealed; click your card again to take it back. The table shows who has voted, but nobody — not even the scrum master — sees the cards before Reveal.

After the reveal everyone sees the cards, the distribution, the average, median and whether there is a consensus — unless the scrum master hides the results, in which case you only see who voted. Cards far from the rest are ringed in red: if yours is, the team would like to hear why.

Reactions

During the discussion, the emoji buttons under the story (👍 🎉 🤔 …) show a reaction next to your name for a few seconds.

The affinity board

Sometimes the scrum master opens an affinity board to size many stories quickly. Every story starts in Not sorted yet. Move stories with ◀ (smaller) and ▶ (larger), or ⋯ to pick a column. Everyone sees each move at once; talk it through and move stories again if needed.

Notes

Anyone can add a note to a story — under the current story, or with the notes button of a story in the backlog. You can delete your own notes.

Display

The palette button in the header sets dark mode, colours, text size and your time zone — see Display settings.

If the room shows ● Recording, the scrum master is recording the session for playback later.

Projects and rooms

For: Scrum masters

A project groups the rooms of one team or product; a room is where estimating happens (up to 30 people, scrum master included). Rooms and their history belong to the project's scrum master; administrators can manage every project.

Projects page

Inviting people

Rules & sizing

Setting What it does
Technique for the next vote planning poker, Fibonacci scale, t-shirt sizing, custom deck or three-point estimation
Card values, numbers, sizes each technique's scale (presets included)
Custom deck a name and 2–30 cards of your own — numbers, words or emoji; Save as my deck keeps it for your other rooms
Three-point unit points, hours, days…
Affinity board columns t-shirt sizes, Fibonacci numbers or planning poker cards
? and ☕ cards the pass card (abstain) and "need a break"
Scrum master votes too, Moderators vote too whether you (and moderators) get a card as well
People may join as watchers offers Join as watcher on the invitation page
Allow new members to join turns the share link on or off (off = locked)
Reveal automatically reveal as soon as everyone has voted
Anonymous voting revealed cards are shown without names, to everyone
Hide the results team members see who voted but never the values or estimates
Timer per vote a countdown for every vote (0 = none), and whether to reveal when time is up
Suggested estimate from mean, median, most common card, or the mean without the highest and lowest vote
Highlight outliers ring votes this many cards away from the median after the reveal
Suggest splitting at after a reveal at or above this estimate, offer a quick split
Send final estimates of Jira stories to Jira send each saved estimate to Jira at once
Maximum users lower than 30 if you like

Estimating a story

For: Scrum masters

One estimating round
flowchart TD
    S[Story in the backlog] -->|Start| V[Voting: cards face down]
    V -->|each person picks a card or gives three numbers| V
    V -->|Reveal, or automatically when everyone has voted| R[Revealed: cards, statistics and a suggestion]
    R -->|Vote again| V
    R -->|Save estimate| D[Estimated]
    D -->|Vote again| V
    D -.->|Update Jira| J[(Jira issue)]
  1. Start a story (the ▶ button in the backlog, or Start: … above). The Technique selector above the story chooses how; switching it during a vote starts the vote again the new way.
  2. Everyone votes; the table and the team list show who has voted.
  3. Reveal cards (or let the room reveal itself when everyone has voted — Rules & sizing).
  4. Read the result: distribution, average, median, range, consensus, passes, outliers (ringed in red, with "ask them to explain") and a suggested estimate — the card closest to the room's averaging rule (Rules & sizing → Suggested estimate from: the mean, the median, the most common card, or the mean without the highest and lowest vote; ties go to the larger card; automatic = the mean for numbers and the most common card for sizes and words).
  5. Choose the final estimate (the suggestion is pre-selected; you can type another) and Save estimate — or Vote again for a new round after discussing the highest and lowest cards.
  6. Next story moves on.

Hide results (switch above the story): team members see who voted, but no values, statistics or final estimates; you still see everything. Anonymous, the padlock (lock the room) and the Timer are next to it — see Running a session. Too big? Quick split… turns the story into an epic with smaller stories — see Epics and quick split.

Every round is kept in the history, including rounds that were voted again.

Running a session

For: Scrum masters

Moderators

Anyone in the room can run the session for you: the ⋮ menu next to their name → Make moderator. A moderator can start votes, reveal, use the timer, record final estimates, edit the backlog and rules, lock the room, hide results and remove team members and watchers — without a CHIPS account. Only the scrum master appoints or removes moderators. Whether moderators also vote is a rule (Moderators vote too).

Watchers

Watchers see the whole session but do not vote, add notes or react — for stakeholders, new team members or a product owner who only listens. People choose Join as watcher on the invitation page, or you switch someone with ⋮ → Make watcher (and back with Make team member). Watchers never count as missing votes.

Timer

Timer above the cards gives everyone 30 seconds to 5 minutes; +30 s adds time and the crossed clock stops it. A timer for every vote is set under Rules & sizing → Timer per vote, which also decides whether the cards are revealed when the time is up (otherwise everyone just sees "Time is up").

Lock, remove, hide

Anonymous voting

With Anonymous on, the revealed cards are shown without names — to everyone, the scrum master included — and the history, downloads and recordings do not say who voted what either. Turning it off later never reveals the names of a round that was anonymous.

Pass card and outliers

The ? card means pass: the person abstains. It counts as a vote for "everyone has voted" but not in the statistics. After the reveal, votes at least two cards (configurable) away from the median are outliers: ringed in red, with a note to ask those people to explain — a quick way to surface what others may have missed.

Reactions

Everyone except watchers can send emoji reactions during the discussion; they appear next to the person's name and in a short feed for about ten seconds.

Epics and quick split

For: Scrum masters

Big pieces of work are easier to estimate in two steps — trunk-based estimation:

  1. Estimate the trunk. Add the work as an Epic (tick Epic when adding, or change the type in the edit dialog) and vote on it like any story. Its estimate is a rough size of the whole.
  2. Split it. Quick split… (next to Save estimate, or the split button in the backlog) opens a dialog with ready-made splits you can edit line by line:
  3. Equal parts — part 1, part 2, …;
  4. SPIDR — spike, paths, interfaces, data, rules;
  5. Workflow steps — first, middle and last step, notifications;
  6. Create / Read / Update / Delete;
  7. My own list.

The new stories go right after the epic and keep its priority, versions and labels. With Vote on the first new story now the next vote starts at once. 3. Estimate the parts. The backlog shows them under the epic with how many are estimated and their total next to the epic's own estimate — so you see at a glance whether the trunk estimate held.

A story that is still a story can be split too: it becomes an epic. Under Rules & sizing → Suggest splitting at, choose an estimate (e.g. 13, or XL): after a reveal at or above it, CHIPS suggests a quick split. The REST API can split as well: POST /api/v1/rooms/{room}/stories/{story}/split.

Sprint capacity

For: Scrum masters

Sprint planning in CHIPS: each person's working days in the sprint, a minimum and maximum of story points they can take on, and the points actually assigned to them — in red when it is more than their maximum.

The team list

Each project has a team list (Projects → the people button on the project, or Team list in a room's capacity panel). For each person:

Defaults: one story point is one working day. So the maximum is working days × points per day (10 days → 10 points) and the minimum is half the maximum (10 days → 5 points). Change story points per working day on the team page if your team's points mean something else (e.g. 2 points per day).

In a room, Add everyone in this room puts the team members and moderators who are not on the list yet onto it.

A room is a sprint

The Sprint capacity panel next to the people in a room shows, for everyone on the team list:

Below: the total against the team's capacity, points not assigned to anyone, assignees who are not on the team list, and estimates that are not numbers (t-shirt sizes are not counted).

The scrum master (or a moderator) can set sprint dates (the calendar button; CHIPS counts the working days, Monday to Friday) and click a person to change their working days or limits for this sprint only — e.g. someone on holiday for three days. Use the team list removes the sprint's values again.

Assign stories in the story's Edit dialog; the assignee field suggests the names on the team list. When the scrum master hides story point values from the team, the capacity panel is hidden from the team too.

Delivery

For Analytics, a story can also record its delivery: when work started and was done, defects found, times reopened (rework) and sprints carried over — under Edit → Delivery, or read from Jira with Delivery from Jira (started = the first move out of To Do, done = the resolution date, reopened = moves from a done status back to an open one, defects = linked or sub-task bugs, carried over = sprints in the Sprint field minus one).

Analytics

For: Scrum masters and administrators

Analytics (in the header, or the chart button on a project) is part of the Enterprise edition. Choose the project, the period (the last 90 days, 6 months, 12 months or all time) and, for the forecast, a date. Every table can be downloaded as CSV.

People are matched by name across the project's rooms, the team list and assignees. Votes from anonymous rounds are never attributed to anyone — they count only in team figures such as spread. ? (pass) and ☕ are not estimates.

Estimators

Velocity

Each room is a sprint: planned points (estimated in the room) and delivered points (stories done — by the sprint's end date if it has one), the ratio, and the team's capacity and utilisation from the capacity panel. Contribution by person adds up the delivered points of the stories each person owned (the assignee) and their share of the team's velocity.

Agreement

The spread of first-round votes per story (cards between the lowest and the highest vote; for three-point estimates, the variation), how often the team agreed at once, how often it voted again, by technique, and the most divergent stories first — the ones the team understood differently.

Anchoring

Do estimates converge toward the first person to comment (the first note after the reveal) or the most senior voter (from the team list)? For each story CHIPS takes the middle of the first, pre-discussion votes and the final estimate, and measures how far the estimate moved toward that person's first vote (100% = all the way) compared with how far it moved toward everyone else's. A difference of 15 points or more over at least five stories reads estimates converge toward this person. Influence by person shows the same pull for everyone, how often their first vote became the final estimate, and how often they commented first. Re-votes show how much the spread shrank after discussion.

Quality

For delivered stories: defects per story and per 10 points, the share reopened (rework) and the share carried over to a later sprint, and the median cycle time — by owner (assignee) and by estimator (stories whose final estimate was that person's first vote). They are signals for a conversation, not a score.

Forecast

A Monte Carlo forecast: 10,000 simulated futures, each week drawing a random week of real throughput from the last 12 weeks, until the remaining stories (or points) are done. It shows the dates by which 50%, 70%, 85% and 95% of the futures finished, the distribution, and the chance that everything is done by your date.

Points vs time

Whether story points predict cycle time (started → done): the Spearman correlation (order of sizes against order of durations), Pearson and R², a scatter chart with a trend line, cycle time by size (box plot), and whose first votes predict duration best.

More

Trends by sprint — the median story size and days per point (size drift or point inflation); epics — the trunk estimate against the sum of their stories; estimation effort — minutes per round and rounds per story.

Delivery data comes from Edit → Delivery on a story or from Delivery from Jira (on this page for the whole project, or in a room) — see Sprint capacity. The REST API has the whole report: GET /api/v1/projects/{id}/analytics?period=180.

The demo area

For: Scrum masters and administrators

Projects → Demo (or /demo) makes a ready-made project, CHIPS demo, in a few seconds. There is one demo per installation; every scrum master and administrator can open, use, reset and remove it.

What is in it

What each edition adds, shown with the demo

Reset throws away whatever was done in the demo and makes it again; Remove deletes it and frees its room. The people are invented; everything else was made with the same rules as real rooms.

Estimation techniques

For: Scrum masters

Choose the technique story by story with the Technique selector — one session can mix all six.

Technique How Result
Planning poker secret cards 0 ½ 1 2 3 5 8 13 20 40 100 (configurable) average, median, suggestion
Fibonacci scale secret cards 0 1 2 3 5 8 13 21 34 55 89 (configurable) as planning poker
T-shirt sizing secret sizes XS S M L XL XXL (configurable) the most common size
Custom deck your own cards: numbers, words or emoji (e.g. hours, Low/Medium/High, 🐜 … 🐘) numbers: average and suggestion; otherwise the most common card
Three-point each person gives optimistic, most likely, pessimistic PERT estimate and likely range
Affinity the team sorts many stories into size columns at once each column becomes an estimate

Custom decks

Under Rules & sizing → Custom deck give the deck a name and its cards, smallest first (presets: hours, days, fist of five, risk, animals). Save as my deck keeps it for your other rooms; My decks fills it in again. The pass (?) and break (☕) cards are added as for every deck. Affinity boards can use the custom deck as their columns.

Three-point estimation

Each person's estimate is (O + 4M + P) / 6. The team's estimate uses the averages of everyone's three numbers; the standard deviation (P − O) / 6 gives the likely range (estimate ± 2σ). The final estimate offers the PERT estimate, rounded up, and the top of the range.

Affinity estimation

Press Affinity estimation and choose the columns. While the board is open, no single story is voted on; ending the session closes the board without saving. With values hidden, team members see Size 1 · smallest … instead of the values.

The affinity board
flowchart TD
    A[Scrum master opens an affinity board and picks the columns] --> B[Every story without an estimate starts in Not sorted yet]
    B --> C[Anyone in the room moves stories into size columns]
    C -->|everyone sees each move at once| C
    C --> D{Scrum master decides}
    D -->|Accept board| E[Each sorted story gets its column as final estimate]
    D -->|Close without saving| F[Nothing changes; the board stays in the history]

User stories and attributes

For: Scrum masters

Adding stories

Editing and attributes

The pencil button of a story edits its title, key and details, and its attributes:

Everyone sees the attributes on the story and in the backlog; they go into history and downloads, and you can send them to Jira.

Removing

The delete button removes a story from the backlog; if it was voted on or has notes, its history is kept.

Notes

Anyone can add notes; authors and the scrum master can delete them. Notes appear for everyone at once.

Uploading and downloading (CSV)

For: Scrum masters

Upload stories

Import → Upload a CSV file. The file needs a header row and at most 10 columns (500 stories, 1 MB). Columns are recognised by their headers — you can change the mapping in the preview:

Becomes Headers recognised
Title (required) Summary, Title, User story, Story, Name, Subject
Key Issue key, Key, JIRA ID, Jira, Issue ID, Ticket, ID
Description Description, Details, Acceptance criteria, Body, Notes
Attributes Assignee, Priority, Fix Version/s, Affects Version/s, Labels
Anything else kept as extra fields shown with the story

Stories whose key is already in the room can be skipped. A Jira CSV export works as it is.

Download results

Download results → This session or All stories in this room, or any session from History. One row per story: key, title, attributes, technique, final estimate, votes of the last round, statistics and notes. The file opens correctly in Excel (UTF-8), and text that would run as a spreadsheet formula is made harmless.

Jira

For: Scrum masters

Connect

On Account → Jira connections:

The token is checked against Jira and stored encrypted. Your administrator may limit which Jira servers can be used.

Import

Import → Import from Jira, type a JQL query (e.g. project = ABC AND sprint in openSprints()), Preview, Import. Issues become stories with their key (linked to Jira), summary, description, assignee, priority, versions and labels.

Update Jira

Update Jira above the backlog, or a story's cloud button:

Updating Jira
flowchart TD
    A[Update Jira] --> B{Which stories?}
    B -->|this story| T[The story]
    B -->|the room| R[All Jira stories in the room]
    B -->|JQL query| Q[Issues found in Jira, paired with stories by key]
    T --> F[Choose the fields to send]
    R --> F
    Q --> F
    F --> P[Preview: what will be sent, and what not and why]
    P --> U[Update Jira]
    U --> X[Result per issue: updated, partly updated or failed]

Story points must be numbers: t-shirt sizes are not sent. With Send final estimates of Jira stories to Jira on (Rules & sizing), each saved estimate goes to Jira at once.

Recording and playback

For: Scrum masters

Press Record in the room. Every step is captured — stories started, who voted, reveals, estimates, notes, affinity moves, people joining and leaving — with how the room looked afterwards. Everyone in the room sees ● Recording. Press the stop button to finish; ending the session or archiving the room also stops it.

Find recordings under History (and on each session's page). The player has:

Votes stay face down until the moment they were revealed, exactly as in the room. Recordings can be renamed, deleted or downloaded (JSON). Only the room's scrum master and administrators can see them.

Sessions and history

For: Scrum masters

A session starts with the first vote in a room and ends when you press the stop button next to the session name, or after a long pause (8 hours by default). Every round is kept: who voted what, the statistics, the final estimates, the technique, the notes and any affinity boards.

History lists sessions (yours; administrators can see everyone's) with filters by project and room, and the room's recordings. Open a session to see every round, rename it or download its results. Values hidden from the team during a session are shown here, because only the room's scrum master and administrators can open the history.

Removing a story or archiving a room keeps its history; only an administrator can delete a room or project permanently.

Display settings

For: Everyone

Press the palette button in the header (also in the user menu and on the Account page):

Changes show at once; Save keeps them, Cancel goes back. Team members' settings are remembered in their browser; scrum masters' and administrators' settings are saved with their account and follow them to other devices.

Administration

For: Administrators

Admin (administrators only) has these tabs:

Users show badges for two-factor sign-in and locked accounts; the buttons next to them unlock an account or turn two-factor sign-in off (for someone who lost their phone).

On the server, python -m scrumpoker.manage can also create users, reset passwords, change roles, list users, show the version, truncate the log, make a setup code (setup-code), unlock accounts (unlock NAME), turn off two-factor sign-in (reset-2fa NAME) and run the checks (security-check) — useful when nobody can sign in.

Activity log

For: Administrators

Everything CHIPS does on someone's behalf is logged: sign-ins (and failed attempts), administration, projects, rooms, stories, voting, notes, imports, Jira, sign-in providers, access tokens, recordings, and the software's own start, stop and errors. Each entry has the time, level, category, who did it, their IP address, the room and the details.

Never logged: passwords, tokens and vote values — the log says that someone voted, not what.

Admin → Activity log: search (text, person, room, IP), filter by category, level and dates, open an entry for its details, page through with Newer / Older, Download CSV.

Truncate log… deletes all entries, entries older than a number of days, or entries before a date. The truncation itself is always recorded. Automatic retention (90 days by default) and whether to log room activity are under Admin → Settings.

Editions and licensing

For: Administrators

CHIPS comes in three editions. Without a license key it runs as Community — free, with limits. A license key from the vendor unlocks Team or Enterprise.

Community Team Enterprise
Scrum master and administrator accounts (seats) 3 as licensed (10 by default) as licensed
Active rooms 5 unlimited unlimited
People per room 30 30 30
All estimation techniques, CSV, history, notes, help, display settings ✓ ✓ ✓
Jira integration — ✓ ✓
Recording and playback — ✓ ✓
REST API and personal access tokens — ✓ ✓
OAuth 2.0 / OpenID Connect sign-in — — ✓
Activity log download and REST access — — ✓
Analytics: estimators, velocity, anchoring, quality, forecasts — — ✓
Support community standard priority

Team members who join rooms by link never use a seat. The activity log itself is always kept and viewable by administrators.

Installing a license key

Admin → License: paste the key (it starts with CHIPS1.) and press Install key. The page shows the edition, the licensee, the expiry, the seats and rooms in use, and the installation ID — the vendor can bind a key to it so it works only on this installation. On the server you can also run python -m scrumpoker.manage license install KEY (or license show).

Keys are checked offline with a digital signature: CHIPS never contacts a license server and sends no usage data. A key cannot be edited — changing it breaks the signature.

Expiry

Thirty days before a key expires, administrators see a reminder. After the expiry date everything keeps working for a 14-day grace period; then CHIPS runs as the Community edition until a renewed key is installed. No data is ever deleted: limits only stop adding accounts or rooms, and features of a higher edition stop being usable — existing rooms, stories, history and recordings stay.

When a limit is reached

Creating one more account or room beyond the edition's limit is refused with an explanation; disable an account, archive a room, or install a key with more seats. Using a feature of a higher edition shows which edition it needs.

Protected builds

The packages customers install contain CHIPS compiled to native code, without its source, and a list of every file signed by the vendor. When CHIPS starts it checks that list; if a file was changed, removed or added, it runs as the Community edition, tells administrators that the installation was modified and writes this in the activity log. Reinstalling from the original package fixes it; no data is lost. Admin → Settings → Security and installation checks shows the result.

The license agreement the first administrator accepted, and the third-party notices, are under Legal.

Signing in, OAuth and access tokens

For: Scrum masters and administrators

Signing in

Scrum masters and administrators sign in with a username and password, or with their organisation's account (Sign in with … on the start page) if an administrator set up a provider. Team members never need an account.

OAuth 2.0 / OpenID Connect (administrators)

Admin → Sign-in providers → Add: Google, Microsoft Entra ID, GitHub, Atlassian, any OpenID Connect provider or any OAuth 2.0 provider. Register CHIPS with the provider using the redirect URI shown, enter the client ID and secret, and choose whether a first sign-in creates an account and which email domains are allowed. People can also link a provider to their account on the Account page.

Personal access tokens

Account → Personal access tokens → Create: a token for scripts and tools, read-only or read and write, with an expiry. It is shown once — copy it. Use it like a Jira PAT: Authorization: Bearer spk_…. Revoke it on the same page.

REST API

For: Developers

The REST API is at /api/v1; interactive documentation at /api/v1/docs. Authenticate with a personal access token:

TOKEN=spk_…
curl -H "Authorization: Bearer $TOKEN" https://chips.example.com/api/v1/projects
curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: text/csv" --data-binary @stories.csv \
     https://chips.example.com/api/v1/rooms/ROOM_ID/stories/csv
curl -H "Authorization: Bearer $TOKEN" -o results.csv https://chips.example.com/api/v1/rooms/ROOM_ID/results

Projects, rooms, stories (add, change, attributes), notes, sessions and results, recordings, Jira preview and update, and for administrators users and the activity log. Permissions are the same as on the pages; read-only tokens can only read. GET /api/v1/health shows the version.

Troubleshooting and FAQ

For: Everyone

I can't join the room. The link may be old (the scrum master issued a new one), the room may be closed to new members, or full (30 people). Ask the scrum master for a new link.

"You were removed from this room." The scrum master removed you; ask them to add you again.

I don't see the cards' values after the reveal. The scrum master is hiding story point values.

"The database is unavailable — retrying…" CHIPS can't reach its database; it keeps retrying. Tell your administrator if it lasts.

My screen doesn't update. Changes appear at once; if not, reload the page. Very old browsers are not supported.

Jira says the token is not accepted. Create a new personal access token (or Cloud API token) and add the connection again on the Account page. Jira Cloud needs the email address of the token's account.

A fix version is refused by Jira. The version must exist in the issue's project; pick one from the list Jira offers in the story's edit dialog.

Dates show the wrong time. Set your time zone in Display settings.

Nobody can sign in any more. On the server: python -m scrumpoker.manage reset-password NAME or create-admin NAME (see the README).

"Too many failed sign-ins." Wait the minutes shown, or ask an administrator to unlock the account.

I lost the phone with my authenticator app. Sign in with a recovery code, or ask an administrator to turn two-factor sign-in off for you, then set it up again.

Where is the setup code? In the installer's output and the server log; on the server python -m scrumpoker.manage setup-code makes a new one (Setting up CHIPS).

"This installation of CHIPS has been modified." Files of the installation were changed or added. Reinstall CHIPS from the original package; your data is not affected.

Which version is this? See About CHIPS.

About CHIPS

For: Everyone

CHIPS 1.7.0 — released 2026-10-28. Made by EEZEEZEE.

CHIPS stands for Collaborative Heuristic for Iterative Planning and Story-pointing: a team estimating together (collaborative), using quick rules of thumb such as planning poker, t-shirt sizes and affinity sorting (heuristic), sprint after sprint (iterative), to plan work and give user stories their points (planning and story-pointing).

Built with Python, NiceGUI, FastAPI and PostgreSQL. Versions follow semantic versioning (MAJOR.MINOR.PATCH); the database has its own schema version, shown under Admin → Settings.

What's new in 1.7.0

1.6.0

1.5.0

Earlier releases

The license agreement and third-party notices are under Legal.