Summary
Create an overall "WiFi Health Score" (0–100) that combines all metrics into a single number that anyone can understand, displayed prominently in the popup, side panel, and toolbar badge.
The Score
📶 WiFi Health: 87/100 — Great!
Weighted formula:
- Download speed vs plan: 25%
- Upload speed vs plan: 15%
- Ping/latency: 20%
- Jitter (stability): 15%
- Packet loss: 15%
- Bufferbloat grade: 10%
Score ranges
| Score |
Label |
Emoji |
Meaning |
| 90-100 |
Excellent |
🚀 |
Perfect for everything |
| 70-89 |
Great |
🟢 |
Good for streaming, calls, gaming |
| 50-69 |
Okay |
🟡 |
Browsing fine, calls may stutter |
| 30-49 |
Poor |
🟠 |
Basic browsing only |
| 0-29 |
Critical |
🔴 |
Barely usable, take action |
Why a single score matters
- Non-technical users don't want 6 different metrics. They want ONE answer: "Is my WiFi good?"
- It's the equivalent of a credit score for your internet
- Shareable: "My WiFi score is 87, what's yours?" → organic growth
- Trackable over time: "My score dropped from 85 to 42 this month"
- ISP accountability: "My ISP's average score is 38/100"
Display locations
- Popup hero area: Big number with emoji and label
- Toolbar badge: Show score number (87) with color background
- Side panel: Score with trend arrow (↑↓) vs last test
- PDF report: Score on cover page
- Share card: Prominent in shared results
Implementation
- New
calculateHealthScore() function in quality.ts
- Normalize each metric to 0-100 scale, apply weights
- If ISP plan is configured, score includes plan delivery %
- If no plan configured, score uses absolute thresholds
Summary
Create an overall "WiFi Health Score" (0–100) that combines all metrics into a single number that anyone can understand, displayed prominently in the popup, side panel, and toolbar badge.
The Score
Weighted formula:
Score ranges
Why a single score matters
Display locations
Implementation
calculateHealthScore()function inquality.ts