The Progress Dashboard
A persistent view of how far the user has come against something they chose.
The problem it solves
Effort spent inside a product is invisible by default. Without a running record, a user who has done real work has nothing to show for it, and nothing to lose by leaving.
The pull of a visible goal
A progress dashboard makes accumulated effort legible. Lessons finished, words written, workouts logged, revenue tracked. The point is that the record exists in one place and grows, so the user can see the shape of what they have built.
It does two jobs at once. It motivates, because visible progress toward a goal pulls harder the closer the goal gets. And it retains, because the record is switching cost: a user with two years of history in your product is comparing a competitor's features against their own history, and the history usually wins.
Choose the denominator carefully
Every progress display implies a total. Eleven of what? If you pick the denominator, you have set the user's goal for them, and most products pick one that flatters engagement. If the user picks it, the dashboard measures their thing and they trust it. Let them set the target, and let them change it downward without ceremony.
Progress the user owns
- Target set by the user and editable
- Lifetime totals shown alongside the current period
- A low week reads as a low week, with no commentary
- Export available
Progress the product owns
- Target set by the product to a number that drives sessions
- Only the current period shown, so history resets
- A low week triggers a nudge and a warning colour
- Data visible only inside the app
Resist the urge to colour bad weeks red. A dashboard that scolds gets avoided, and an avoided dashboard cannot motivate anyone. Neutral presentation of a bad week is what keeps the user willing to look next week, which is the only way the tool works over a year.
Worked example
Two dashboards, same data
A writing tool could show this week: 1,200 words, below your 5,000 target, in red, with a prompt to write now. Or it could show 1,200 words this week, 214,000 words total, 62 weeks tracked. Same data. The first makes the user feel behind. The second reminds them they are a person who has written a book's worth of words in this tool, and that person comes back.
When it fits
- The user is working toward something that takes weeks or months, so accumulation is meaningful.
- You can measure the thing the user actually cares about rather than a proxy like sessions.
- The user can set or edit the target themselves.
- History has genuine value to them, which also means it should be exportable.
When it backfires
- The metric is a proxy for your engagement rather than their outcome. A dashboard counting time in app teaches the user you measure attendance.
- The target was set by the product and cannot be lowered. A goal someone cannot renegotiate becomes a standing accusation, and people delete apps that accuse them.
- Progress resets on a schedule the user did not choose, deleting the sense of accumulation the dashboard existed to create.
- The history is held hostage. Building switching cost out of a user's own data and then refusing export turns a retention feature into a reason to warn other people off.
Products using it
Strava
Keeps lifetime and per-period activity totals with user-set weekly or annual goals that can be changed at any time.
Duolingo
Shows a per-language skill tree where completed units stay visibly completed, so the record of work done is the navigation.
Oura
Presents daily scores alongside long-run trend views, so a poor night is shown in the context of months of data.
The psychology under it
The takeaway
A progress view retains people by making their own effort visible, so the denominator must be a goal they chose and can lower without being punished for it.
Finished the teardown? Bank it and the day counts toward your run.
