independent multiplicative rolls
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.
| Upgrade | Bonus | Target | Cost | Next |
|---|
| 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.