Sway (drift-corrected)
sway_pctHow far ratings moved toward the shown label between the blind and labeled passes, as a share of the rating scale. Positive = swayed by the label; negative = resisted it.
pct = round((adjusted mean shift / scale span) · 100), adjusted = raw − d̄·(nUp−nDown)/n
- Target
- none defensible yet
- Unit
- percent
- Computed in
- src/engine/bias.ts
Not a percentile. Understates the true effect: re-rating anchors people on their first answer, and the scale ceiling truncates upward movement.
Sway (uncorrected)
sway_raw_pctThe same shift before the control-drift correction is applied. Shown beside the corrected figure so the correction is never invisible.
rawPct = round((mean shift toward label / scale span) · 100)
- Target
- none defensible yet
- Unit
- percent
- Computed in
- src/engine/bias.ts
Control drift
control_drift_ptsHow much a respondent's ratings move on the second pass for clips that carry NO label — the baseline for memory, familiarity, and regression.
d̄ = mean(second pass − first pass) over control items
- Target
- none defensible yet
- Unit
- points
- Computed in
- src/engine/bias.ts
Biased toward zero by the scale ceiling: control ratings sitting at the maximum can only fall, so the correction it feeds is systematically too small.
Sway share
sway_shareOf the clips that had room to move toward their label, the share that actually did. The one sway statistic the scale-edge artifact cannot touch.
share = (items moved toward label) / (items with headroom > 0)
- Target
- none defensible yet
- Unit
- proportion
- Computed in
- src/engine/bias.ts
Degrees used
degrees_usedHow many distinct points of the rating scale a listener actually landed on during the blind pass — Hume's comparison criterion, which holds that degrees of praise can only be assigned by someone who has weighed works against each other.
degreesUsed = |{ blind rating : every clip rated, controls included }|
- Target
- none defensible yet
- Unit
- count
- Computed in
- src/engine/comparison.ts
Bounded by the number of clips as well as by the scale, and a narrow spread may simply be the correct answer if the clips really are close in quality. The instrument cannot tell those two cases apart. Read it against the indifferent-rater figure, never against the ceiling.
Degrees an indifferent rater would use
degrees_if_indifferentHow many distinct scale points somebody rating every clip at random would be expected to land on. The reference point for the degrees-used count, because the top of the scale is reachable by accident.
D · (1 − ((D−1)/D)^n) for n clips on a D-point scale
- Target
- none defensible yet
- Unit
- count
- Computed in
- src/engine/comparison.ts
Arithmetic, not a norm. It is what chance produces, not what anybody scored — there is no cohort and this is not a percentile.
Rating span
rating_spanThe distance between the highest and lowest blind rating, in points of the rating scale.
span = max(blind) − min(blind)
- Target
- none defensible yet
- Unit
- points
- Computed in
- src/engine/comparison.ts
Order reversals
order_reversalsPairs of clips a listener ordered one way blind and the opposite way on the labelled pass, counted only where the shown labels push both clips the same direction and so offer no differential reason to change one's mind.
reversed / asserted, over pairs with equal label direction (or both controls) separated by at least the assertion floor blind
- Target
- none defensible yet
- Unit
- proportion
- Computed in
- src/engine/comparison.ts
Two labels pushing the same way need not push equally hard, so this removes the first-order reason for a reversal rather than every reason. Pairs that became equal stay in the denominator and can never be reversals, which biases the figure toward calling a listener steady. Null when no pair was separated far enough to count.
Delicacy accuracy
delicacy_accuracyShare of trials where the respondent correctly identified which of two clips was the unmodified original.
accuracy = (correct side picks) / (trials)
- Target
- above 0.50 chance
- Unit
- proportion
- Computed in
- src/engine/delicacy.ts
Two-alternative forced choice: 50% is a coin flip, not a middling score.
Flaw-identification accuracy
flaw_accuracyShare of correctly-identified trials where the respondent also named the right degradation family.
accuracy = (correct flaw picks) / (trials where the side pick was correct)
- Target
- above 0.33 chance
- Unit
- proportion
- Computed in
- src/engine/delicacy.ts
Scored only on trials where the side pick was right — judging the flaw in the wrong file is unscoreable, not wrong.
Your spread across works the critic separated
spread_far_pairsThe average distance between your two ratings, across pairs of works a published critic placed at least ten positions apart in his own ranking.
mean |rating(a) − rating(b)| over pairs with |Δposition| ≥ 10
- Target
- none defensible yet
- Unit
- points
- Computed in
- src/engine/spread.ts
Read it beside the close-pairs figure and beside the indifferent-rater figure; alone it says nothing. It measures whether your ratings moved, never whether they moved the same way the critic's did — agreement is not scored and cannot be computed from what this instrument stores. Three further limits travel with it: a forty-second excerpt cannot carry a critic's verdict on a work up to forty minutes long, so the clip is longer than this product's others and that is a mitigation rather than a fix; clips the listener says they already knew are removed on their word alone, unverified; and the difference between the two figures is never reported, because four pairs against four drawn from clips that appear in several pairs each, with nobody having sat the instrument twice, leaves no measured wobble against which a difference could be called real.
Your spread across works the critic bracketed together
spread_close_pairsThe average distance between your two ratings, across pairs of works the same critic placed within three positions of each other.
mean |rating(a) − rating(b)| over pairs with |Δposition| ≤ 3
- Target
- none defensible yet
- Unit
- points
- Computed in
- src/engine/spread.ts
The recordings in this pool differ in where their spectrum ends by 10,002 Hz, for reasons no ranking caused — one source is a 128 kbps mp3 that stops at 8,624 Hz. Measured, that difference is larger across these pairs (6,498 Hz mean) than across the separated ones (3,758 Hz), so the confound works against finding a difference rather than for it. It cannot be removed without destroying the recordings; its direction is guarded instead.
What an indifferent rater would produce
spread_if_indifferentThe average distance between two ratings chosen at random on this scale. Chance does not know which works a critic separated, so it produces this same figure on both kinds of pair — which is what makes it the reference point for both.
(D² − 1) / (3D) for a D-point scale
- Target
- none defensible yet
- Unit
- points
- Computed in
- src/engine/spread.ts
Arithmetic, not a norm. It is what chance produces, not what anybody scored — there is no cohort and this is not a percentile.
Sensitivity threshold
sensitivity_thresholdThe smallest amount of one kind of damage a listener still reliably detects, in that damage's own physical unit — cents of peak detune, milliseconds of drift, or kbps. Fitted from every answer in the session rather than averaged from the levels the staircase happened to visit.
the magnitude at which the fitted psychometric curve crosses the target detection rate, from all (magnitude, correct) observations in the run — reported in cents, milliseconds or kbps depending on the family
- Target
- none defensible yet
- Unit
- physical
- Computed in
- src/engine/threshold-fit.ts
A fact about one person on one sitting, not a statistic describing the instrument, and not comparable across families because the units differ. Most sittings report a BAND rather than a single number, because a point estimate from a noisy measurement is a claim the measurement cannot support. The estimator that averaged reversal levels was retired for printing a 95% interval that covered the truth 49-72% of the time; this one was measured at 94-100%, and 94-98% even when the psychometric model is wrong.
Brier score
brierMean squared error between claimed confidence and what actually happened. Lower is better; it rewards knowing how right you are.
brier = mean((claimed probability − outcome)²)
- Target
- below 0.25 (the always-guess-50% anchor)
- Unit
- proportion
- Computed in
- src/engine/calibration.ts
Misleads alone: a perfectly accurate respondent who always claims 50% scores the same 0.25 as someone guessing. Always pair it with the confidence gap.
Confidence gap
calibration_gap_ptsMean claimed confidence minus actual accuracy. Positive = claiming more than delivered.
gap = mean(confidence) − accuracy, both in percentage points
- Target
- within ±10 points
- Unit
- points
- Computed in
- src/engine/calibration.ts
The ±10 threshold is provisional judgment, not data. At session length the gap's standard error can exceed the threshold itself.