Core concepts

Health score

One number between 0 and 100, computed from the 8 dimensions that have data. It is deterministic: the same snapshot always produces the same score, and nothing about it is a model's opinion.

The dimensions

Each dimension is scored 0–100 on its own metrics, then folded into the composite by weight. A dimension with no trusted source is insufficient data — it is left out of the average entirely rather than counted as zero.
DimensionWeightWhat it measuresFed by
Revenue Health25%MRR movement, new customers, failed payments, refunds.Stripe, Paddle, Polar, Lemon Squeezy, Dodo Payments, Easytools
Retention & Churn20%Monthly churn rate against its baseline, and the revenue that left.Stripe, Paddle, Polar, Lemon Squeezy, Dodo Payments, Easytools
Growth & Traffic15%Unique visitors and their trend.Google Search Console, Seiton Analytics, PostHog, Google Analytics 4
SEO & Rankings10%Organic clicks, average position, pages lost from the top ten.Google Search Console
Reliability10%Error volume against baseline, crash-free sessions when reported.Sentry, Vercel, GitHub
Product Health10%Active days, stickiness, activation.Seiton Analytics, PostHog
Infrastructure5%Deploy success rate, database and edge incidents.Vercel, Supabase, Cloudflare, GitHub
Estimated Profitability5%Operating margin from MRR minus the costs you enter.Stripe, Paddle, Polar, Lemon Squeezy, Dodo Payments, Easytools

How the composite is calculated

  • Take every dimension that has data, multiply each score by its weight, and divide by the weights actually used. Missing dimensions do not drag the number down — they shrink the denominator.
  • Confidence is never multiplied into the score. A confident 40 and an uncertain 40 are both 40; confidence is reported next to it so you know how much to trust it.
  • A dimension carrying a critical signal is capped at 49, and one carrying a warning at 79. A panel cannot show green while the signal underneath it is red.
  • The 7-day trend compares today's composite with the one recorded roughly a week ago. With no history yet it is 0, not an invented delta.
Live Pulse card showing the composite score, confidence and monitored dimensions
Live Pulse. Score, weekly trend, confidence, and how many of the eight dimensions are actually being watched.

Statuses

StatusWhen
Healthy80 or above.
Warning50–79.
CriticalBelow 50.
Insufficient dataNo dimension has a trusted source yet. Shown instead of 0/100 — a project that has not synced is unknown, not failing.

Confidence and coverage

Two different questions: how fresh the evidence is, and how much of the stack is watched at all.
  • Confidence is the weighted freshness of the sources behind each dimension. A stale Stripe sync lowers it; reconnecting raises it back.
  • Coverage is the "x of 8 dimensions" line. Below five monitored dimensions, or below 70% confidence, the overview says limited visibility outright and names what is missing.
  • Data from a disconnected, revoked, errored or stale source is dropped from scoring rather than reused. See Metrics & ownership.

Why a dimension can stay empty

Every empty dimension names the source that would fill it: revenue needs a billing provider, SEO needs Search Console, Reliability needs Sentry, Product Health needs PostHog, Estimated Profitability needs your monthly costs. Until then it reports nothing instead of a plausible number.

Zero is a real reading

Zero errors today is zero, and it scores as healthy. The distinction that matters is between measured zero and nothing measured, and the product keeps those apart everywhere — dashboard, briefing and API.