ExileDesk

Blog

PoE2 Crafting Calculator Mistakes: 3 Bugs We Caught

expected costcalculationrandom numbersminimum modifier levelcorrection

When you work out PoE2 crafting costs by calculation, a small slip in how the calculation is built turns straight into a wrong number. In our ExileDesk test calculation, a biased random generator gave 68 div (div = Divine Orb), using the Exalted Orb's minimum modifier levels for Transmutation and Augmentation doubled the magic-item cost, and the way we tracked a desecration marker put us 24% off the engine.

Zundamon

Zundamon

Once you build the formula, an expected-cost calculation gives the right number, right?

Metan

Metan

We thought so too. But every time we replayed it on the engine, the numbers were off.

Zundamon

Zundamon

So the problem was in the calculation!?

Metan

Metan

Yes. All three were mistakes you'd never notice from the answer alone.

Mistake 1: A Biased Random Generator Gave 68 div

On 2026-10-20 and 21 we tested working out, backward, the expected cost to finish a pair of Intelligence gloves (suffix: +2 to Level of all Projectile Skills). The first thing that tripped us up was the random generator.

Zundamon

Zundamon

Why does an expected-cost calculation need random numbers?

Metan

Metan

Evaluated as is, rare paths that go round in circles inflated the values.

Metan

Metan

So inside the calculation we follow crafts one run at a time, with a cap on how often the same move can repeat.

Zundamon

Zundamon

And those runs use random numbers.

Metan

Metan

Right. With our first, simple generator (a linear congruential generator), the top order came out at 68 div.

Counted withCost of the top orderWhat happened
Calculation (simple generator)68 divBiased numbers, too high
Calculation (mulberry32)61.9 divDropped just by swapping the generator
Engine (1,000 runs)58.7 divThe played-out value
Zundamon

Zundamon

Same calculation, and the generator alone moved the number!

Metan

Metan

Our calculation rules now say: use mulberry32, because linear congruential generators are biased.

Mistake 2: Transmutation and Augmentation Floors Aren't the Exalted Orb's

Starting from a white base, the first half makes a magic item with Orbs of Transmutation and Augmentation. Their Greater and Perfect versions have a minimum modifier level for the mods they add.

Zundamon

Zundamon

Isn't the floor the same for every orb?

Metan

Metan

Our first calculation used the Exalted Orb's Greater 35 and Perfect 50. But the real values are different.

OrbGreaterPerfectWhat's different
Exalted Orb3550Our first calculation used these for Transmutation and Augmentation too
Orb of Transmutation / Augmentation4470The real floors, higher than the Exalted Orb's
Zundamon

Zundamon

What goes wrong if the floor is too low?

Metan

Metan

Low tiers of the target family count as possible, so hits look rarer in the calculation.

Metan

Metan

So we estimated the magic-item cost at double. The earlier "about 580 div per restart" is too high by that much.

Zundamon

Zundamon

How did you fix it?

Metan

Metan

The engine keeps the floors in CURRENCY_FLOOR, with separate values for Transmutation and Augmentation. We matched the calculation to them.

Mistake 3: A Desecration Marker Put Us 24% Off

The test kept "is there a mod added by Desecration" as a marker in each state. Only one marker was allowed, and with a marker present, bones couldn't be used.

Zundamon

Zundamon

What was wrong with the marker?

Metan

Metan

After a desecrated target was removed with an Orb of Annulment, we kept the marker.

Metan

Metan

Then bones counted as unusable, and it chose a path of Exalted Orbs and Annulments over and over.

Times +2 Projectile was removed (per run)TimesWhat happened
Calculation1.02The leftover marker caused repeated Annulments
Engine0.45The played-out value
Zundamon

Zundamon

The calculation removed the target more than twice as often!

Metan

Metan

So the marker now also records which target came from Desecration, and disappears when that target is removed.

For one of the target orders, here is the calculation next to the engine.

Cost per item, one orderCalculationEngineGapResult
Before the fix109 div83 div24%Calculation far too high
After the fix70.5 div65.1 div6-8%Gap shrank
Zundamon

Zundamon

The costs themselves are very different before and after.

Metan

Metan

Runes are handled differently. The "after" figures exclude 10.8 div of runes, so compare the gap, not the totals.

Metan

Metan

Even after the fix, a 6-8% gap remains, always with the engine cheaper.

The same kind of mistake, once more

Handing the calculated answer to the engine tripped on the marker too.

Zundamon

Zundamon

It's just handing it over. What happened?

Metan

Metan

The engine can't see which target came from Desecration. So we told it "if Speed is there, the desecrated mod is Speed."

Metan

Metan

It then kept removing a Speed mod that had come from a Chaos Orb, looping 280 times per run.

Zundamon

Zundamon

How did you fix that?

Metan

Metan

We now pass the marker answer that the calculation's own runs went through most often.

How We Caught Them: Calculation Next to Engine

On their own, all three gave plausible numbers. We caught them because we replayed the calculation's best moves on the engine, 1,000 runs at a time, and lined the numbers up.

Zundamon

Zundamon

Did playing it on the engine show anything else?

Metan

Metan

Yes, more mistakes on the calculation side. Omens that pick a side, such as Omen of Sinistral / Dextral Crystallisation, can't be used unless that side has a removable mod.

Metan

Metan

A Perfect Essence also needs a removable mod. Only a Rare with zero mods takes it without losing one.

Zundamon

Zundamon

Do you do anything to stop endless loops?

Metan

Metan

At the start of the test, the owner told us automated expected-cost calculations bug out easily and should have caps.

Metan

Metan

So re-adding a mod is capped at 3,000 times, and everything else at 300.

Zundamon

Zundamon

So now you never stop at the calculation.

Metan

Metan

Right. Rule number one of our calculation work: show every calculated number next to the engine's result, with the gap in %.

Not yet verified (4)
  • This is about a calculation experiment that decides crafting moves automatically. Deciding moves automatically is not a feature of the site (there are too many branches; the owner decided against it on 2026-10-21).
  • We don't yet know what causes the 6-8% gap left after fixing Mistake 3.
  • The "double" in Mistake 2 is the recorded estimate. We haven't recomputed the restart cost after the fix.
  • The subject was one pair of gloves. We haven't checked whether other item types show gaps of the same size.

Expected-cost calculations drift from small details like the random generator, the floors and a marker. Lining them up with played-out numbers is the quickest way to catch the mistakes.

Where the Numbers Come From

Show sources (6)
  • 68 and 61.9 div (random generator), 109 and 70.5 div and 1.02 removals (desecration marker): values from the ExileDesk calculation experiment, 2026-10-20 to 21 (calculation).
  • 58.7 div (random generator), 83 and 65.1 div and 0.45 removals (desecration marker), the 280-time loop: 1,000 engine runs of the calculation's answers (engine). The 24% and 6-8% figures are the gaps between the two.
  • Prices from the 2026-10-21 market (1 div = 718 Exalted Orbs).
  • Transmutation / Augmentation floors (Greater 44, Perfect 70) and Exalted Orb floors (35, 50): the engine's CURRENCY_FLOOR (engine).
  • Magic-item cost doubled, restart about 580 div: the experiment's notes (estimate; not recomputed after the fix).
  • The mulberry32 rule and the "line it up with the engine" rule: ExileDesk's calculation rules (docs/org/math/README.md).

Try It Yourself

Play a craft one step at a time on the crafting bench, or compare Chaos, Augmentation and Exalted spam in the spam simulator, opened from the button by the Currency heading on the crafting bench.

Related posts

VOICEVOX: Zundamon / Shikoku Metan

ExileDeskTesting Path of Exile 2 crafting by running it through the engine

Character art: Shikoku Metan / Zundamon standing art by Sakamoto Ahiru

More posts