SunPlanner — Calibration Badge · Concept C

Angle: Earned Precision. Calibration shown as a precision instrument being tuned by the user's own readings into a struck hallmark. State reads by shape, fill, stroke weight, and engraving — never by hue. Colorblind-safe.
Earned Precision
9:41  5G  86
SunPlanner
Cedar Mesa · today
Today · forecast
3.6kWh
low 3.2  ·  high 4.0
Tuned to your rig Dialed in
struck from 25 readings · factor 0.86×
Power now 412 W
62% of array · 4 panels reporting
Today
Week
Log
Rig

The Tuning Hallmark — every state

A blank disc gets tuned tick-by-tick as readings come in, then is struck into a hallmark engraved with the user's own factor and reading count. Each state is legible with zero color: count the solid rim ticks, read the needle, see whether the mark is hollow, struck, or drifted.

Blank die
no readings yet
Not tuned yet
log a reading to start tuning this forecast
Tuning
needle closing on true
Tuning to your rig
18/25 readings · 7 to strike the mark
Out of tune
drifted off true
Drifting — re-tune Stale
last reading 9 days ago · add one to true it up
Struck
hallmark engraved
Tuned to your rig Dialed in
struck from 25 readings · factor 0.86×

The dialed-in moment — "the strike"

Fires once, the first time the 25th reading lands. The needle settles to true, the rim completes, the mark is struck, and the user's numbers are engraved in. No confetti.
  1. needle sweeps the last few degrees and locks dead-center on true
  2. the rim tick-ring completes in one clockwise pass (24→25)
  3. one struck "press": scale 0.92 → 1.06 → 1.0, a single engraving glint crosses
  4. the user's factor & count fade in, inscribed into the mark; copy flips to "Dialed in"
Colorblind-safe encoding — none: dashed hollow ring, empty center, no needle · tuning: N solid ticks of 25 + hairline remainder, needle off-center · stale: broken/dashed ring, needle drifted, hollow center · dialed-in: full solid ticks, needle locked center, faceted struck center, engraved numerals. Brass is decorative only; remove it and every state still reads.
Buildable in RN. Ticks = stroked <Line> set (animate count via opacity) · needle = <Path> with a reanimated rotate shared value · rim completion = strokeDashoffset via withTiming · strike = withSequence scale · glint = a clipped <Rect> translated once (no CSS blur needed) · engraving = opacity fade of <Text>. useReducedMotion() swaps the whole sequence for an instant struck state.