calibrate
○ snapshotthe calibration bench
Tune the machine that ranks your feed. Every knob below is a real constant from the ranker. Turn one and the feed on the right re-ranks — live, in front of you. Nothing is hidden behind “the algorithm”; the whole transfer function is exposed, and one click snaps it back to factory defaults.
factory defaults ▾
- W_RECENCY 1
- W_TRUST 1
- W_METRICS 1
- W_CLUSTER 0.5
- W_AFFINITY 6
- W_FULLTEXT 1.25
- W_MEDIA 0.9
- W_READTIME 2
- READ_TIME_PEAK 15m
- READ_TIME_SIGMA 10m
- MIN_READ 5m
- HALF_LIFE 7d
the bench
turn a knob, watch it re-rank
The eight weights, in the exact order the ranker sums them. Affinity (★) is the dominant term — it’s what mostly moves the feed. Drag a fader and the live re-rank reorders; the ▲/▼ chips show how far each item moved from the factory ranking.
no items pass the current filters — loosen the floor or clear a channel.
the gaussian
the read-time sweet spot, in your hands
The read-time quality curve — the same instrument as the Observatory’s, but draggable. Move the crest to shift the ideal length, widen the shoulders to be more forgiving, drag the reject edge to raise the floor. Each drag re-ranks the bench feed above.
drag the crest, the σ shoulders, or the reject edge — the bench feed re-ranks as you drag.
why this item
the ranking, explained term by term
Pick any row in the bench feed. Here is exactly why it ranks where it does — each scoring term’s contribution stacked into one bar, then spelled out. It updates with the knobs: drop affinity to zero and watch its share collapse.
no item selected — pick a row in the bench feed above.
the model
what the affinity term reads from
The taste model behind the affinity weight: which channels and formats you return to, how engagement decays with age, and how close the model is to ready. The channel and format affinities are the build snapshot; the live layer hydrates them below.
channel affinity
format affinity
engagement decay
reshapes the curve live; the taste model recompute is applied at next build.
live signal
your signal, between builds
The bench runs on the build snapshot until your live engagement is ready. This reads your device’s aggregate from the Worker — your live clicks against the snapshot, your engagement rhythm, and how close the model is to ready. If the Worker is quiet, it stays on the snapshot; never an error.
hydrated from GET /summary — falls back to the build snapshot if the Worker is quiet.