What changed. Vertical arrows ↑/↓ swapped for diagonal ↗/↘ matching Cloudflare's dashboard pattern. Added a near-zero neutral state → in grey for any delta with absolute value below 0.5% — stops trivial fluctuations from drawing the eye.
What didn't change. The semantic-colour rule (per project_dashboard_dare_metric_card_pattern.md): each metric carries a preferredDirection baked into config, and colour reflects whether the change is good or bad for that metric, not the literal direction of change. So a 4xx-share going up gets red even though it's "up", and cache hits going down gets red even though it's "down".
| Glyph | Meaning | Colour rule |
|---|---|---|
↗ | Positive change | green if up is good for this metric, red if up is bad |
↘ | Negative change | green if down is good (e.g. CPU time, error rate), red if down is bad |
→ | Near-zero (|Δ| < 0.5%) | always grey — no semantic signal at trivial deltas |
| — | Ambiguous metric (no preferredDirection) | grey regardless of direction (e.g. bandwidth — could mean traffic or cost) |
Old
1.6M Requests↑ +178.2%New
1.6M Requests↗ +178.2%Old
93.0K 404 errors↑ +110671.4%New
93.0K 404 errors↗ +110671.4%Old
623µs CPU time (P90)↓ −12.4%New
623µs CPU time (P90)↘ −12.4%Old
4.4% Cache hit rate↓ −92.3%New
4.4% Cache hit rate↘ −92.3%Old
17.0GB Bandwidth↑ +163.1%New
17.0GB Bandwidth↗ +163.1%Old
119.5K Threats blocked↑ +0.3%New
119.5K Threats blocked→ +0.3%What this tells us. The diagonal glyph is a tiny stylistic shift but signals "this is a delta indicator, not a sort arrow" — vertical arrows often read as table-header hints in dashboard contexts. The neutral state is the more substantive add: it removes false signal at trivial deltas, which is exactly the case where coloured glyphs are most distracting.
Watch items. The 0.5% threshold is a guess. If real noise sits closer to ±1%, bump it; if rounding lots of meaningful 0.7% wins to grey, drop it to 0.3%. Easy one-line tweak in dare_cf_analytics.py.
Recommendation. Already shipped to production (this preview is the documented before/after). No further action unless the threshold needs retuning after a few cron cycles.