Gamification & Leaderboard
AKB can turn everyday Jira work into lightweight, cooperative motivation. It's privacy-first and off by default: the only guaranteed surface is a team goal with zero per-person data. Anything that shows an individual is opt-in, and every mechanic can be switched off independently.
How points are earned
Points are awarded when an issue moves forward across a Jira status category - To Do → In Progress → Done - not for every drag.
Movement | Result |
|---|---|
Forward | + points |
Lateral (same category) | 0 - recorded, no points |
Backward (regression) | Clawback - reverses the earlier award |
Because scoring is category-based, shuffling cards within one category earns nothing, and a Done → In Progress → Done round-trip nets to zero. Points scale by an admin-set weight per issue type (0-5, default 1.0), and credit goes to the assignee at the moment of the transition, frozen into the record. Accounts an admin adds to the service-account list don't earn points (there's no automatic bot detection, so bot and automation accounts should be listed there).
Why it can't be farmed
Exactly-once - duplicate or re-delivered events never double-count.
Net-category scoring - lateral churn pays nothing.
Reversal window - a quick forward-then-back within a short window (default about 10 minutes; an admin can set 1-120) leaves no trace and nets zero.
Daily per-issue cap - reopening and re-completing the same issue stops paying once the cap is hit.
The hard floors that no preset or custom setting can weaken: lateral moves always score 0, backward moves always claw back the exact prior award, the daily per-issue cap can never be removed (minimum 1), and the minimum cohort stays locked at 4.
Levels, streaks & badges
Levels - your accumulated net points are XP; each level costs progressively more. Level titles are admin-renameable.
Streaks - a personal daily flow streak that advances when you complete work (reach Done) on a new day; forgiving (best-of-window) and gently worded, never punitive. Turn it on with the Daily streak mechanic. (The team goal tracks a separate shared team streak.)
Badges - completion milestones such as First Done (1), Getting Started (5), In the Flow (25), Centurion (100). Admins can rename the labels; earning criteria stay server-side, so badges remain auditable.
Privacy model
Mode | What's shown |
|---|---|
Team-only (default) | Aggregate team data only - no per-person surface. |
Anonymized | Stable pseudonyms (for example "Falcon 3B"), never derived from names. |
Named | Real names / avatars - only for people who explicitly opt in. |
Consent required - in Anonymized and Named modes, anyone who hasn't opted in is fully excluded (not scored, counted, or shown).
Minimum cohort of 4 - person-level views stay hidden until at least four people have joined. This floor can't be lowered.
Freeze window - an admin can suspend all accrual and hide all gamification UI for a period (for example review season).
Your personal streak is self-view only - it appears on your own player card and is never shown to others or gated by the cohort rules above.
The Leaderboard page
An opt-in scoreboard for the current period. If you haven't joined, a Join the leaderboard card invites you in (in Anonymized mode it notes you'll appear under a nickname). Once in, the header shows your rank and a Leave link.
Podium - the top three in classic layout (2nd, 1st raised with a 👑, 3rd), each with a medal, ringed avatar and points. If fewer than three have scored, the missing places render as empty pedestals.
Ranking list - everyone in order with a relative points bar, an "N done" count, and their total. Your own row is highlighted.
Protected states - until the minimum cohort joins you'll see an "almost there" progress note; with enough joined but no scores yet, an empty-state prompt.
The Gamification page (project admins)
This is where a project admin configures everything (non-admins see a read-only status line):
Presets - six one-click starting points: 🤝 Collaborative, 🏁 Friendly competition, 👏 Recognition only, 🔒 Minimalist, 🎯 Sprint focus, ⏻ Off.
Master switch + Visibility mode - on / off, plus Team only / Anonymized / Named (Named shows a privacy warning).
Mechanics - independent toggles: Team goal / streak, Points, Badges, Daily streak, Levels & player card, Leaderboard, Peer kudos, Quests.
What counts as done - the statuses that award points.
Points per issue type, Team goal & cadence (weekly / monthly / quarterly / sprint), and wording (rename points, the team-goal name, level titles and badge labels, and set a nudge tone).
Change log - a paginated history of setting changes (newest first, 20 per page, with "Load more").
A background job reconciles scores hourly - backfilling any missed awards, decaying stale streaks, and refreshing leaderboard caches from the ledger - so totals stay complete and auditable.
📷 Screenshots: the Leaderboard podium and ranking list; the Gamification admin page with presets and mechanics (to be added).