Skip to content
Education· 9 min read

What XP should actually measure in a habit app

Flat XP per task teaches you that flossing equals a 90-minute workout. Here's how a habit tracker's XP should be calculated, and what breaks when it isn't.

Every gamified habit tracker has a points system, and almost none of them explain what the points represent. That is a design problem rather than a documentation problem, because a habit tracker's XP system is the mechanism by which it tells you what it thinks matters.

Get it right and the number is a useful proxy for real effort. Get it wrong and you have built a game that rewards the wrong behavior, which your brain will discover faster than you expect.

The flat-rate problem

The default implementation is one point per completed task. Simple to build, simple to explain, and wrong in a specific way.

If flossing and a ninety-minute training session both award one point, the system has stated that they are equivalent. They are not, and you know they are not. What happens next is predictable: on a low-capacity day you complete the three cheap tasks, skip the expensive one, and your score looks fine. The score has stopped tracking effort and started tracking task count.

Repeat that for a few weeks and the system teaches you to optimise for volume. The rational play in a flat-rate system is to fill your habit list with trivial items, because every item is worth the same and the trivial ones are cheaper. People do exactly this, usually without noticing, and then wonder why their completion rate is 90% while nothing in their life has changed.

A points system that cannot distinguish between a hard thing and an easy thing is not measuring progress. It is measuring compliance with a list you designed to be easy to comply with.

Weight is the minimum viable fix

The smallest change that solves this: let each task carry a weight, and award XP equal to that weight.

In SELV, weights run from 1 to 5, and a weight sets a task's share of the day rather than a fixed payout. A task you weighted 5 claims five times the share of a task you weighted 1. A full day is worth 100 XP whether you scheduled 3 tasks or 30, and what you earn is that 100 scaled by the weighted share you completed — so skipping the hard thing costs you more than skipping the easy one.

That last consequence is the important one. Under flat rates, a 75% day could mean you did the three easy things and skipped the hard one. Under weights, that same behavior shows up as a much lower percentage, because the number now reflects where the effort actually was. The data stops flattering you.

Setting weights honestly is its own small discipline, and the common failure is aspirational weighting — giving a habit a high weight because you wish you cared about it more. Weighted habit tracking covers how to calibrate them.

What XP must not do

Three properties are, in my view, non-negotiable, and each one is violated by at least one popular app.

XP must not decay

Some systems reduce your accumulated points over time if you stop logging. The reasoning is that a score should represent current condition rather than historical total.

The reasoning is defensible and the effect is destructive. A decaying score punishes you for a period when you were not using the app, which means returning after a gap means returning to a worse position than you left. The cost of coming back goes up precisely when it needs to go down. Return rate after a lapse is the single best predictor of whether someone builds a lasting habit, and decay taxes it directly.

If you want to know your current condition, that is what a rolling completion average is for. SELV keeps both: permanent XP for the cumulative record, and rolling averages for present performance. Those are two different questions and they should be two different numbers.

XP must not be removable

Related but distinct: no mechanic should take earned XP away as a penalty for a missed day. This is the HP-loss design, and it fails for reasons covered at length in why punishment mechanics fail.

The short version: the days you miss are disproportionately your worst days, and a system that hits hardest when you are least resourced teaches you to avoid the system.

XP must not be purchasable or cosmetic-only

If points exist mainly to buy hats, the points are a currency and not a measurement. Currencies invite optimisation — people farm them — and the moment farming is possible, the number stops being a record of your behavior.

XP in SELV accumulates into levels and does nothing else. There is no shop and no item to buy. XP exists to accumulate into levels, and levels exist to make a years-long trajectory legible. There is nothing to game because there is no payout to game toward.

What about streaks?

This is where people expect a contradiction, so it is worth being precise.

SELV counts your current run and your best run, and that is the whole of it. A streak carries no XP weight: it cannot earn you a bonus and it cannot cost you one. Each day is scored on that day alone.

That is a deliberate refusal rather than an omission. The moment a streak is worth XP, breaking it has a price, and a mechanic with a price is a punishment however carefully it is described as a bonus. Scoring each day in isolation is the only version where a missed day costs you that day and nothing else.

The design rule: a streak describes your history without being able to change it. Why streaks don't work for ADHD covers what happens when you get this backwards.

The level curve matters as much as the XP

XP is only half the system. Where it goes determines how the progression feels over years.

A linear curve — every level costs the same — makes early levels feel slow and late levels feel trivial. A steeply exponential curve makes the first week exciting and level 40 unreachable, which is how you end up with a system nobody is still using at month six.

SELV uses a banded curve: levels are grouped into seven bands from Iron to Obsidian, and the XP cost per level steps up as you move into higher bands. The effect is that progression inside a band is steady and predictable, and each band transition is a real milestone that costs meaningfully more than the last. The current thresholds are laid out on the leveling page.

Cumulative XP cannot answer every question, which is why it is not the only number on the screen. Rolling completion averages answer the one XP structurally cannot: not "how much have you done in total" but "how are you doing lately." Those two measures diverge, and a serious system reports both.

A short test for any XP system

Four questions. If an app fails more than one, the points are decoration.

  1. 01Does a hard task earn more than an easy one? If not, the system cannot distinguish effort from volume.
  2. 02Can the number go down? If yes, find out exactly when, and decide whether you want an app that does that on your worst week.
  3. 03Is there anything to spend it on? If yes, it is a currency and it will be farmed.
  4. 04Does it tell you anything a completion percentage would not? If no, you have a percentage with extra steps.

A good XP system answers question four with: it preserves the cumulative record. A completion percentage tells you about a window. XP tells you about everything you have ever done, and the fact that it never goes down is the entire reason it is worth keeping.

How this plays out over a year

The difference between a well-designed and badly-designed XP system is invisible in week one and decisive by month six.

In a flat-rate system with no weights, a year of logging produces a large number and almost no information. You know you completed roughly four thousand tasks. You do not know whether those were the tasks that mattered, because the system never distinguished them. Worse, the incentive gradient has been quietly shaping your habit list the whole time: every time you added a cheap task, your numbers improved, so your list drifted toward cheap tasks.

In a weighted system with permanent accumulation, the same year produces a number that tracks effort, plus a per-category breakdown showing where that effort went, plus a rolling average showing whether you are currently above or below your own baseline. That is three distinct pieces of information from one mechanic.

The reason this matters is that the entry reward and the retention reward in a habit tracker are different things. The entry reward is the small hit of logging something and watching a number move. It works for about three weeks. The retention reward is finding something out about yourself that you did not know — that your Order category has been under 40% for two months, that Wednesdays are where your week dies. Only an honest cumulative record can supply the second one, and a system that farms, decays or flattens its XP cannot.

Common objections

"Weights are too fiddly. I just want checkboxes." Reasonable, and the compromise is to use three values rather than five: 1 for trivial, 3 for normal, 5 for hard. You can set that in under a minute and it captures most of the signal that flat rates throw away.

"Isn't permanent XP demotivating once the number is huge?" This is why the level curve exists. A raw total of 40,000 XP means nothing to anyone. "Two levels from the next band" means something, which is the entire function of banding a long ladder.

"If there's no punishment, what stops me from just not doing it?" Nothing — and nothing ever did. A penalty mechanic does not supply motivation you lack; it supplies a reason to stop opening the app. The thing that actually pulls you back is that resuming is free and your record is intact.

Further reading

The complete guide to gamified habit tracking covers how XP, levels, categories and analytics fit together. What your completion rate actually means covers the other number, and why it answers a different question. For the applied version of designing tasks worth weighting, how to gamify your habits using Atomic Habits.