Learn · 07 / 10

7 · Reciprocity — the same number both ways

Here is a measurement you can do on any strategic system without knowing its payoffs: poke player 1, read player 2; poke player 2, read player 1. Nudge one player's incentives by a small observable amount — a toll on a road, a cost shock to one firm — let everyone re-equilibrate, and record how much everyone else moved.

The matrix of all such readings is the equilibrium susceptibility χeq=(ISB)1S\chi^{\mathrm{eq}} = (I - SB)^{-1}S: the response of the whole system's play to a payoff perturbation, after strategic feedback settles. In physics, the symmetry of such a matrix is Onsager reciprocity, and it is a signature of thermodynamic equilibrium.

The result that makes this a meter (Result 2, tier: derived): the strategic feedback loop neither creates nor destroys reciprocity. χeq\chi^{\mathrm{eq}} is symmetric exactly when the game's normalised payoff structure has zero harmonic (circulating) component — that is, exactly when the game is a potential game. One would generically expect a resolvent (ISB)1(I-SB)^{-1} to scramble symmetry; it doesn't. So the observable response matrix inherits the symmetry of the unobservable payoff operator, and the reciprocity defect R=χχ/χ+χ\mathcal{R} = \|\chi - \chi^\top\| / \|\chi + \chi^\top\| is an operational test of potentiality requiring no payoff knowledge — and whether it reads zero doesn't depend on λ, so there is no noise parameter that can absorb an asymmetry.

Calibration, measured: on exact potential games — including logit route choice on the real Sioux Falls road network, where the potential is known analytically — ℛ reads 101610^{-16}: zero to machine precision. On rock–paper–scissors it reads 0.69; on matching pennies 1.2 (yes, above 1 — ℛ is a norm ratio, and a value above 1 means the circulating part of the response dominates the reciprocal part).

What ℛ is not (measured the hard way): its magnitude grows with λ, and in the near-harmonic regime it stops tracking dissipation — we proposed a fix and refuted it ourselves. ℛ answers one question exactly — "is this system potential?" — at every λ and every α. For "how hard is it circulating?" you need the entropy-production meter. Two instruments, two questions.

(Interactive controls in the Lab: poke-player selector, poke size, the two cross-readings side by side, ℛ gauge tracking the α slider.)

So what would you do differently?

Measure how much your price moves theirs and how much theirs moves yours. When the two are different sizes, one of you structurally leads — and that asymmetry, not the average elasticity, is the thing to act on.

Measure it on your own series
▶ try it · poke one player, read the other
in-browser · goldens-checked
poke size h = 0.30
rationality λ = 1.20
0.2 · noise8 · sharp
poke P1's a1 → read P2's a2: -0.1510
a1
0.3019
a2
-0.1510
a3
-0.1510
poke P2's a2 → read P1's a1: -0.1510
a1
-0.1510
a2
0.3019
a3
-0.1510
|cross₁₂ − cross₂₁| = 0.00e+0reciprocal — consistent with a potential game

potential game — the two cross-readings must AGREE (Onsager reciprocity). This works without knowing the payoffs: only pokes and observed shifts — that is why ℛ is estimable from real pass-through data. Slide λ: the asymmetry's MAGNITUDE changes, but zero stays zero and nonzero stays nonzero at every λ — the symmetry verdict is λ-free.