Magic Vault 5×3 — Math Changelog

Newest first. Every entry records the backend commit and config SHA-256 it describes.


draft-v0.1 — 2026-08-10 — initial Draft math

Status: DEV ONLY · NOT FOR PRODUCTION · NOT FOR CERTIFICATION.

DRAFT MATH APPROVED 2026-08-10. The version remains in draft state and stays mutable. Approving the Draft numbers is explicitly not a freeze, a Final, a certification or a release: no final-* version was created, the lifecycle state was not advanced, nothing was deployed or routed, and no feature flag was enabled. Any Final still requires a runtime parity corpus (see "Unresolved" below) and separate approval.

Accepted values, exactly as measured:

MetricMethodAccepted value
Trigger probabilityEXACT1 in 79.0555
Base RTPEXACT55.9961%
Conditional Hold & Win meanestimated31.6252×
Feature contributionhybrid40.0038%
Total RTP (reconciled)hybrid95.9998%
Maximum awardwitnessed500×
FieldValue
Backend commiteb4cd2dfb4b176ebeab18a5c74212124b76fc7b9
Config SHA-256a42ae35875e200728a8bc9178b18c1ca19d4af1fdb92d96e3d775cb6556e7873
Canonical configlibs/mathengine/games/magic_vault_5x3/magic-vault-5x3.yaml
RNGsha256-trunc64-be/go1-alfg#1

Result

MetricMethodValue
TriggerEXACT1 in 79.0555
Base RTPEXACT55.9961%
Conditional feature meanestimated31.6252× ± 0.0202
Feature contributionhybrid40.0038%
Total RTPhybrid95.9998%
Max winwitnessedexactly 500×

Parameters tuned in this revision

Base-owned only. Every value was chosen in Draft; nothing was inherited from hold_and_win_reference.

ParameterValueNote
Strip length20 entries × 5 reelskeeps the base state space at 20⁵ = 3,200,000, exactly enumerable
COIN runindices 0–2 of every strip, contiguousmakes the trigger exactly analysable; treated as locked from here on
COIN entry weight44the trigger's only real lever
Interior entry weight100 (indices 3–17)
Wrap entry weight44 (indices 18–19)
Interior ringL1 H1 L2 L3 H2 L4 L1 WILD L2 H3 L3 L4 H4 L1 L2 L3 L4L1–L4 ×3, H1–H4 ×1, WILD ×1
Per-reel rotation0, 7, 14, 4, 11so the five reels are not identical
H1 payouts30 / 110 / 250
H2 payouts22 / 85 / 190
H3 payouts18 / 70 / 160
H4 payouts15 / 55 / 140
L1 payouts8 / 30 / 85×4 raised 28 → 30 during base balancing
L2 payouts6 / 23 / 70×4 raised 22 → 23 during base balancing
L3 payouts5 / 20 / 60×4 raised 18 → 20, ×5 raised 55 → 60 during base balancing
L4 payouts4 / 15 / 45
WILD payout5 → 250 only3- and 4-entries omitted: unreachable under the shared evaluator

Hold & Win parameters — UNCHANGED

No hold_and_win/v1 economic or state-machine parameter was changed in this revision. Reused exactly as accepted: 3 initial respins, LandingChancePPM: 43000, regular coin values and weights 1:30, 2:25, 3:18, 5:15, 10:10, 20:2, prize weights regular:1000, mini:20@10×, minor:5@25×, major:1@100×, GrandMultiplier: 500, mechanic MaxWinMultiplier: 500. The only adaptation is the layout: Columns: 5, Rows: 3 against the reference host's Columns: 3, Rows: 5.

Pinned against drift by TestLockedHoldAndWinParameters.

Base balancing — deviation from the design's 55.44%

The approved design named a 55.44% base target. That figure was derived from the reference harness's conditional mean of 32.4461×, which is a property of the harness's distribution of initial locked cells, not of the mechanic.

Measured for Magic Vault:

QuantityReference harnessMagic Vault
E[initial locked | trigger]6.7322 (exact)6.4652 (exact)
Conditional feature mean32.4461×31.6252× (estimated, SE 0.0202)

Re-derived requirement:

required base RTP = 0.96 − P(trigger) × measured conditional mean
                  = 0.96 − 0.0126493391 × 31.6252
                  = 0.559962   (55.9962%)

Resolution: retune the base paytable only. Four low-symbol entries moved (L1 ×4, L2 ×4, L3 ×4 and ×5), taking exact base RTP from 54.9667% to 55.9961%. This is base balancing, not mechanic tuning. The mechanic was not touched and must not be touched to close a gap of this kind.

Unresolved / carried forward

  • No runtime parity corpus. Magic Vault is not registered in libs/mathengine/parity. Reference↔runtime parity is unproven and is a prerequisite for any Final.
  • WILD 3- and 4-of-a-kind are structurally unreachable under the shared LinesEvaluator. Recorded and tested; changing it is a shared-engine decision.
  • Full-grid rate is thinly sampled in the whole-game run (27 events). Use the feature-conditioned figure, 0.0743% ± 0.0027% of triggers.
  • The all-simulated total RTP (95.5731%) sits below the acceptance band as a point estimate, at −1.33 SE from the reconciled 95.9998%. Its own standard error is 0.32pp, wider than the band. See the simulation evidence report.