The battery

You have a reward model and a preference pair. What can you actually measure about the decision?

Eleven things, as it turns out, and they all start from the same fact. The reward is a linear readout of the final hidden state, r=wrh+br = w_r^\top h + b, so the whole opinion of the model lives in one direction wrw_r. Every instrument on this page is a different way of projecting the computation onto that direction and reading off what you find. The residual stream is a running sum, so the projection decomposes cleanly: by depth, by component, by concept, by objective. That is the battery.

The reward model's whole opinion is one direction; every activation projects onto it.

One direction carries the entire score. A hidden state is a point in a high-dimensional space, but the reward only reads its shadow along wrw_r. Two completions differ in reward exactly by how far apart their shadows fall. Every instrument below measures that shadow from a different angle.

Because wrw_r is fixed by the reward head and known exactly, none of this is probing or guessing. The projection is arithmetic. What varies between instruments is which slice of the computation they project, and, more importantly, what kind of claim the result licenses.

Three chips, read left to right

Every instrument page opens with three chips. They tell you, before you read a word of prose, what the number means and how far you can carry it.

  • Tier is the kind of claim. Observational instruments read the computation as it already ran. Causal instruments intervene, change one thing, and measure what moved. Vulnerability instruments score the model against a named failure mode. The distinction is not decorative. On real models, the observational and causal instruments have ranked the same components in nearly opposite order, and knowing which tier you are holding is what keeps you from reading a correlation as a mechanism.
  • Gauge is whether the number survives a change of coordinates. Invariant quantities (a depth fraction, an effect size) mean the same thing in any basis, so you can compare them across models freely. Raw only quantities are coordinate-dependent and honest about it: a raw cosine between two models’ features is a number about your axes, not about the models. Needs a frame quantities can be compared across models, but only once you express both in a shared frame, or the library refuses. The chip tells you which rung you are on so you never accidentally compare two raw numbers that were never in the same coordinates.
  • Works on is the substrate the instrument attaches to: bare scores, activations plus the linear readout, an SAE, a multi-objective head. It is the capability the signal must declare. Ask an instrument for something the signal cannot give and it raises rather than returns a fabricated number.

The tier key

Observational: reads the existing computation. No intervention. Fast, exact, and a hypothesis about importance rather than a demonstration of it.
Causal: changes one component and measures the effect on the reward. Slower, and the only tier that licenses “this caused that.”
Vulnerability: scores the model against a specific way reward models fail under optimization. Most of these live in the index library; two of the observational instruments below, the bias battery and the conflict matrix, inherit that purpose while staying strictly read-only in mechanism.

The eleven

The eight observational instruments read; the three causal ones intervene. Every one returns a gated Evidence object, not a bare float, and every one on this page currently reports at trust level EXPLORATORY, because no calibration provider is wired in this release. That is a statement about the epistemics, not the arithmetic: the projection is exact, but until a scorecard certifies the instrument against organisms with known ground truth, the number is exploratory by construction.

InstrumentWhat it answersTierGaugeWorks on
Reward lens and crystallizationWhere across depth does the margin form?Observationalinvariantactivations + linear readout
Component attributionWhich component wrote the score?Observationalinvariantactivations + linear readout
Patch gridWhich component causes the score?Causalinvariantactivations + linear readout
Path effectsWhich sender-to-receiver path carries it?Causalinvariantactivations + linear readout
Concept dose-responseDoes pushing a concept move the reward?Causalraw onlyactivations + linear readout
Bias batteryWhich surface feature is the reward biased toward?Observationalinvariantscores
Prompt SNRHow much signal versus noise per axis?Observationalinvariantscores
Conflict matrixWhich reward terms fight each other?Observationalraw onlyactivations + linear readout
Circuit overlapDo two models use the same circuit?Observationalinvarianttwo models, activations + linear readout
Feature-reward alignmentWhich SAE features drive the reward?Observationalraw onlyan SAE + linear readout
Multi-objective geometryHow do a head’s objectives relate?Observationalraw onlya multi-objective readout

How to run any of them

The call shape is the same for all eleven. Build a signal, choose a data view, hand both to the runner. The runner checks the capability, applies the gauge gate, and returns Evidence.

from reward_lens.signals import from_tiny
from reward_lens.data.builtin.diagnostic_v3 import load_diagnostic_v3
from reward_lens.data.schema import DataView
from reward_lens.measure import base as mb
from reward_lens.measure.battery import DirectLinearAttribution

signal = from_tiny(seed=0)                                        # real LlamaForSequenceClassification, CPU, no download
view = DataView(list(load_diagnostic_v3()["helpfulness"].items)[:5])
ev = mb.run(DirectLinearAttribution(), mb.Context(signal=signal, view=view))
print(ev.observable, "|", ev.trust, "|", ev.gauge)
# DirectLinearAttribution | EXPLORATORY | invariant

from_tiny builds a genuine two-layer reward model on CPU in under a minute, which is enough to exercise every observational instrument end to end. It is not enough to reproduce the 8B results, because a two-layer model has no late-layer structure to find. Throughout the battery, the tiny runs are there so you can see the machinery move; the Skywork and ArmoRM numbers are measured results from committed artifacts, and the call that produces them is marked as needing a GPU.

Start with the reward lens. It is the instrument that tells the others where to look.