Customer health score
Decide what account health means, then work the book that falls out of it. Move a weight and the whole book re-ranks in place.
The live dashboard asks you to sign in first. Anything with tables people can write into is shared that way rather than publicly.

A tool rather than a report, built in Flitch on product usage data from a warehouse. The weighting is the interface: five inputs each with a weight and a threshold, and changing any of them re-scores and re-ranks every account instantly. Named definitions are saved so a team can agree on one.
What the dashboard does
- Five weighted inputs you control: seat use, activity trend, feature breadth, admin presence and recency
- The whole book re-ranking in place as a weight moves, with no apply step
- One row per account carrying each input, the score it produces and a health band
- Activity trend measured as four weeks against the four before, not calendar months
- An account opening in place to show how each input contributed to its own score
- Accounts with no activity in the window separated out, because departed is not the same as unhealthy
What data sits behind it
| Dataset | What it carries |
|---|---|
| DIM_ACCOUNT | The book: plan, seats, ARR, region and owner. |
| FCT_USAGE_DAILY | Daily activity per account, served reduced to weeks. |
| FCT_FEATURE_USAGE_MONTHLY | Which features each account touches, by month. |
| DIM_USER | The user roster, for admin presence and last-active dates. |
| DIM_FEATURE | The feature catalogue the breadth measure is a share of. |
Tables people fill in
Not everything worth reporting on comes out of a system. These are written by hand, inside the dashboard, as the work happens. Your copy gets the tables and the controls, and starts empty.
- Definitions A named weighting a team agrees on and returns to.
- Account Review The follow-up: risk band at the time, owner, action agreed and whether it is done.
How it was built
Nobody laid this out by hand. It came from one prompt, against the datasets above, and was refined from there. This is the prompt, unedited.
Build "Health score", a tool that lets a customer success team decide what account health means and then work the book that falls out of that decision.
Customer health score FAQ
Why is the weighting adjustable rather than fixed?
Because no two teams mean the same thing by healthy, and a score nobody agrees with gets ignored. Making the definition the interface turns an argument about the number into an argument about the weights, which is the one worth having.
Why four weeks rather than month on month?
Calendar months carry eight or ten weekend days, and weekend activity is a fraction of a weekday’s, so a month-on-month comparison moves several percent on the calendar alone. Equal-length windows remove that, and react within a week rather than at a month boundary.
What happens to accounts with no data?
An input that cannot be measured is shown as no data and dropped from that account’s denominator, rather than scored zero. Penalising an account for a gap in your warehouse is not a health signal. Accounts with no activity at all are ranked separately, so worst-first means the worst account still worth saving.
Does it need a warehouse?
It was built against warehouse-shaped data and reads the same from Snowflake, BigQuery, Postgres or a file. A warehouse has no fixed schema, so this one owns its own, modelled the way a dbt project would land it.
Start from this one
You get your own copy, with its own data, in your own space. Change anything you like.
Use this template