khazana — your personal signal terminal khazana — your personal signal terminal

calibrate

snapshot

the 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.

weight console
recencyW_RECENCY1.0
trustW_TRUST1.0
metricsW_METRICS1.0
clusterW_CLUSTER0.50
affinityW_AFFINITY6.0
full-textW_FULLTEXT1.3
mediaW_MEDIA0.90
read-timeW_READTIME2.0
live re-rank0 items · top 0

no items pass the current filters — loosen the floor or clear a channel.

read-time floor5m

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.

read-time quality = exp(−(m − PEAK)² / 2σ²)

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

  • ai 1.00
  • tech 0.82
  • data-science 0.64
  • history 0.48
  • geopolitics 0.39
  • quantum 0.27
  • finance 0.21
  • science 0.18

format affinity

  • chronicle 0.30
  • dispatch 1.00
  • field-notes 0.41
  • teardown 0.78
  • primer 0.55
  • build-log 0.19

engagement decay

half-lifeHALF_LIFE_DAYS7d

reshapes the curve live; the taste model recompute is applied at next build.

event weightsopen1read3dwell5≤5, 30s per point

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.

snapshot · build model

hydrated from GET /summary — falls back to the build snapshot if the Worker is quiet.