The math behind your Nightingale score
Every page load recorded by Nightingale is assigned a score from 0 to 100. The overall score gives you a single number to track over time. But it is a weighted summary, not a black box. Here is exactly how it works.
The five metrics
Nightingale measures all five Core Web Vitals and diagnostic metrics: LCP, INP, CLS, FCP, and TTFB. Each one is scored individually on a 0–100 curve based on Google's published thresholds for good, needs improvement, and poor.
The curve is intentional. A value just inside "good" scores around 85, not 100. A value just past the "poor" threshold doesn't cliff-edge to zero; it decays gradually. That is because a site at 2.6s LCP is meaningfully better than one at 4s, even though both are technically "poor."
The weightings
The five individual scores are combined into an overall score using weightings based on Google's Lighthouse method, adjusted for real-user data:
| Metric | Weight |
|---|---|
| LCP Largest Contentful Paint | 25% |
| INP Interaction to Next Paint | 30% |
| CLS Cumulative Layout Shift | 25% |
| FCP First Contentful Paint | 10% |
| TTFB Time to First Byte | 10% |
LCP and INP carry the most weight because they most directly affect how fast and responsive a page feels to a real user. CLS follows closely. Unexpected layout shifts disrupt the experience. FCP and TTFB are included as diagnostic signals rather than primary measures of user experience, so they carry less weight.
How Nightingale differs from Lighthouse
Lighthouse uses Total Blocking Time and Speed Index in its scoring. Both are lab metrics that can't be measured from real users. Nightingale replaces these with INP and TTFB respectively, which measure the same problems from actual page loads rather than simulated ones.
Frequently Asked Questions
Why does a good score on every metric not always equal 100?
Because the curve rewards being well inside "good" rather than just scraping past the threshold. A perfect score requires consistently excellent performance across all five metrics. Not just clearing the bar.
My LCP is poor but my overall score is still high. Why?
The overall score is a weighted average. Strong performance on INP, CLS, and FCP can offset a weaker LCP. The per-metric gauges on your dashboard will always show you where the problem is. The overall score is a summary, not a substitute for looking at the individual metrics.
Start monitoring your real users
See exactly how your site performs with Core Web Vitals, GitHub sync, and straightforward pricing.