Read how an account actually uses you.
Turns raw usage into per-capability adoption tiers, a 12-week trend on each, power-user IDs, and a ghost-active flag.
Inside: The adoption-tier rubric, the trend classifier, and the ghost-active check.
Install it in one line, or paste it in.
~/.claude/skills/ and runs automatically when it is relevant.Connect your context. Set it to your motion.
it reads events automatically, at your chosen account grain, across the whole base.
cross-references usage to the account record and its fit score.
a full trend window instead of a single snapshot.
This was built for a B2B SaaS product with a handful of named capabilities. Set these to your stack:
The capability list is yours. Point the skill at the 5 to 15 features that actually signal value in your product, not anyone else's.
| Set this | What it is | Default / Example |
|---|---|---|
| ANALYTICS tool | your product-analytics connector | |
| ACCOUNT_GRAIN | how you group users into an account | email domainworkspace idorg id |
| CAPABILITIES | the features you want adoption on | your own list (see below) |
| TREND_WINDOW | weeks of history for the trend | 12 (re-tune to your cycle) |
| POWER_THRESHOLD | usage that counts as a power user | top decile of activityor your own bar |
| NEW_USER_WINDOW | recency for "new signups" | 14 days |
| FIT_SCORE field | your account fit score, if you have one | any 0-100 fit or propensity score |
Everything the skill does, in full.
Reads how an account actually uses your product and gives a plain read: which capabilities they have adopted, whether each one is rising or fading, and who the power users are. It turns "how are they using us?" into a product-engagement score you can act on, and it flags the accounts that look active on the surface but create no real value underneath.
- 1Adoption tier per capability
Every capability gets exactly one tier: POWER, ESTABLISHED, EMERGING, DORMANT, UNTOUCHED, NEVER-ADOPTED. Power means heavy, recent, repeated use. Untouched means they had it and stopped. Never-adopted means they never started. The Untouched and Never-adopted rows are the onboarding gap, the consultative outreach list.
- 2Trend per capability
Over TREND_WINDOW weeks, each capability is RISING, FLAT, DECLINING, or COLLAPSED. A high tier with a declining trend is an early quiet-quitting signal, worth more than the raw count.
- 3Power-user identification
Surface the individual users whose activity clears POWER_THRESHOLD, with which capabilities each one leans on. These are your expansion anchors and your reference candidates.
- 4Ghost-active check
When an account looks alive on the baseline "any activity" signal but every real capability is zero, flag it. This is the classic blind spot: seats are technically active (someone logs in) but no value is being created. Must show the per-capability zeros that prove it.
- 5Fit-score cross-check
If you carry an account fit score, compare it to what usage actually shows. When the fit score sits at the floor but adoption is clearly real, call it a false negative and promote the account. When the score is high but usage is a ghost, flag the mismatch the other way. The usage is the ground truth.
- No GHOST-ACTIVE verdict without showing the per-capability zeros that prove it.
- Every "not adopted" surfaces capability by capability, named, never "low usage."
- Trend is over the full window, never a single week. Small samples lie.
- Never report a number the export does not contain. A missing column is a prompt, not a guess.
PRODUCT ENGAGEMENT · acme.com · 12-week window Capability Adoption Trend Last active Core action Power Rising today Automation Established Flat yesterday Templates Emerging Rising 3d ago AI assist Dormant Declining 18d ago Advanced module Untouched - - Integrations Never-adopt - - _active baseline Power Rising today NOT ghost-active: 4 of 6 capabilities show real activity Fit-score check: score 28 looks low, but adoption is real -> false negative, promote Weekly actives: 351 latest · 339 four-week avg (Rising) New users (14d): 8 signups · 5 active within 7d · 3 still untouched Story: Power on the core action with rising template use. The gap is the advanced module and integrations. 3 new users have not activated yet, that is the onboarding conversation.
TREND_WINDOW (12 weeks), NEW_USER_WINDOW (14 days), and the power-user cutoff are defaults, not laws. They suited a mid-market SaaS product with a steady weekly rhythm. If your product is used in bursts or on a monthly cycle, widen them. The logic does not change. The thresholds are yours.
Where an operator takes this next.
The read is step one. Here is where an operator takes it once the manual version proves out.
The stack is boring on purpose: Amplitude reads it, Claude scores it, Salesforce holds the verdict, Slack delivers the one line that matters. You built the read once; now it runs itself.
Point a scheduled Claude task at Amplitude every night, run this read on every account, and write the product-engagement verdict and the false-negative flag straight back to Salesforce. You wake up to a scored book, not a to-do.
Have the nightly run diff against yesterday and DM the account owner in Slack just the accounts that *changed*: a capability that started collapsing, or a fit-score false negative that just proved itself. No dashboard to check; the signal comes to the rep.
Feed the Untouched and Never-adopted rows directly into a cold-email or trigger-outreach skill so the onboarding-gap list leaves as sent messages, not a spreadsheet nobody opens.
One skill is the on-ramp.
A single skill does one job. Chained into a playbook, or run as a full build, it becomes a system. Here is where this one plugs in.