This page answers:My 0–10 scores — what are they on the engine's −10 to +10 scale?
The mapping comes from the engine source app_v4.2.py line 205, mapped = round(v*2-10, 2); the reverse (v+10)/2 is its inverse. Round-half-to-even is handled by pyRound() to match Python. This page adds no algorithm of its own.
/opt/curve_engine/app_v4.2.py line 205, mapped_vals = [round(v * 2 - 10, 2) for v in vals] (read-only); the reverse (v+10)/2 is its inverse; the contract card /opt/contracts/curve_engine.md line 78 registers that line number (“the single dimension formula”).pyRound() matching Python's round).3.2 forward → 3.2×2−10 = −3.6; take −3.6 back → (−3.6+10)/2 = 3.2, and it should round-trip to the original value. Note that going out of range does not clip (entering 12 gives 14); the engine does not clip either.
/opt/slices_build/build.py from the spec /_shared/slices/score-map.json — to change this page, edit the spec and re-run the generator; never hand-edit the HTML.