Proc Ledger — contract multiplier expectation

independent multiplicative rolls

Proc Ledger

Every completed contract rolls each multiplier separately. Procs stack by multiplication — hit x2 and x5 and the contract pays ten times over. This works out what that is worth in the long run, and whether your actual haul was luck or arithmetic.

Roll table

Multipliers rolled per contract

Your run

Spending

Upgrade cost reduction, and extra levels on every upgrade's base cap.


Simulation

Each run is a full set of contracts, resolved roll by roll.

Expected total points
Typical spread (1 σ)

Where your run should land

Luck check

Spending it

All 33 contract upgrades. Edit any target — levels past the point an upgrade stops paying are the difference between an affordable build and an impossible one.
Upgrade Bonus Target Cost Next

What one contract pays

Exact distribution of a single contract's multiplier, before any simulation.
Procs that landed Multiplier Chance Expected count Share of points

The maths. Rolls are independent, so the average multiplier is the product of each roll's own average — a roll of xM at chance p averages p·M + (1−p), because a miss still pays the base once. Multiply those together, multiply by points per contract and by contracts completed, and that is the expected total. No simulation needed for the average; the spread is where simulation earns its keep.

Upgrade costs. Level n of an upgrade costs round(base × scaling^(n−1)), then your cost reduction is applied and rounded again. Base costs and scalings are the ones published on the Idle Obelisk Miner wiki for version 2.2.6; the two "per contract" upgrades follow a fixed schedule instead of a curve. The default 0.126464 multiplier was solved from four prices you read off your own UI — it reproduces all four to the point, which the displayed 0.13 does not.

The spread. The distribution above resolves every proc combination exactly, then draws that many contracts per simulated run. Totals cluster tightly because thousands of contracts average out — which is exactly why a result more than two sigma off the middle is a genuine outlier rather than noise.