1. Freeze the official ruleset
Record the league and exact client patch before evaluating a map batch. Grinding Gear Games' 3.28.0 notes describe extensive endgame and Atlas changes: map access, Map Device behavior, map quality, reward modifiers, passives, available maps, and scarabs all changed. The 3.27.0c notes separately changed several scarab limits or effects. These pages are examples of versioned primary evidence, not reusable strategy-profit tables.
GGG: Content Update 3.28.0
GGG: 3.27.0c patch notes
2. Define the question and unit
A narrow question is auditable: “What was the net return per map and per complete hour for this batch under this valuation?” A planning question must say “what-if” and list its assumptions. Do not relabel a plan as an observation after the result looks favorable. Choose one value unit for gross return and every cost. A chaos-equivalent unit is common, but the formulas work with any consistently defined unit.
3. Capture a timestamped market observation
Grinding Gear Games operates official Trade Search and Bulk Exchange surfaces. A listing or order there is a snapshot, not a permanent price and not proof of a completed sale. Store the league, timestamp, item, stack size, query or exchange pair, and whether the value is listed, executable, or realized. If you use another source, record its URL and method with the same care.
Define how to treat unsold rares, retained upgrades, bulk discounts, fees, fractional items, and low-liquidity inventory. Applying a full listed price to every unsold item can turn storage into fictional profit. A simpler realized-return boundary is often more reproducible, though it may omit useful retained value. Either method is acceptable when labeled and applied consistently.
4. Establish one complete batch
Choose a start state, an end state, and a map-count rule. Record completed, failed, abandoned, or consumed maps according to that rule. Do not discard failed maps after they consume inputs. Keep the Atlas state, fragments, scarabs, map modifiers, build, party, loot filter, and other relevant conditions attached to the batch; these are explanatory fields, not hidden multipliers in LootCalc.
5. Calculate gross return before costs
Sum only outcomes included by the valuation rule. If the rule counts realized sales, use realized amounts. If it prices a closing inventory, use the saved timestamp and exclusions. Avoid double-counting: an item converted into currency belongs either at its sale value or as inventory under the declared method, not both. Preserve the raw item or currency totals so another reviewer can rebuild the gross figure.
6. Record direct costs in separate categories
- Map acquisition/preparation: map items and preparation currency consumed under your boundary.
- Fragments and scarabs: the actual batch total, valued at the same timestamp and unit.
- Other direct costs: remaining consumed inputs that are not already in the first two categories.
All three fields are batch totals. Keeping them separate exposes a changed cost without pretending that one category causes a particular reward. Opportunity cost, build price, and reusable gear require a different model; do not smuggle them into a direct-cost field without a declared amortization rule.
7. Measure the full session clock
Include acquisition or preparation, map loading, combat, league mechanics, looting, deaths, failed attempts, portals, stash work, valuation, and selling when those activities belong to the comparison. Start and stop at comparable states. “Map clear time” and “complete economic cycle time” are different metrics; using the former as the denominator for one strategy and the latter for another produces a biased hourly comparison.
8. Reproduce the accounting
total direct cost = map/preparation + fragments/scarabs + other direct costs;net batch return = gross batch return − total direct cost;gross, cost, or net per map = corresponding batch total ÷ maps in batch;gross or net per hour = corresponding batch total ÷ full session hours;break-even gross = total direct cost;net margin = net batch return ÷ gross batch returnwhen gross is positive.
Negative output is meaningful and remains visible. These equations do not contain Pack Size, a map name, Atlas nodes, a scarab effect, a currency drop rate, or a Stacked Deck distribution. If you need a probabilistic forecast, derive it separately from the exact current mechanics and a complete outcome distribution.
9. Compare one controlled change
Save the baseline URL, duplicate it, and change one input or one well-documented configuration. If the Atlas, build, map set, loot filter, batch size, valuation, and time boundary all change, the two totals describe two sessions but do not isolate a cause. Use multiple real batches and report dispersion rather than promoting the best run. A lucky outlier may be genuine data while still being weak evidence for a general claim.
10. Treat Stacked Deck questions as separate experiments
“Open or sell” requires the current sell value, a complete current card-outcome distribution, card valuations, transaction and opening time, and a declared risk objective. Without that distribution, do not publish a fixed Deck EV or a recommended sample size. You may log realized opening batches and compare them with realized sale alternatives, but label the result as that batch rather than a universal expectation.
11. Keep a real map-batch log
verified_on,league,client_patch,scenario_kind,scenario_label,maps_completed,maps_failed,atlas_or_rules_note,map_cost_total,fragments_scarabs_total,other_direct_cost_total,gross_return_total,value_unit,value_source_and_timestamp,full_session_minutes,share_url,notes YYYY-MM-DD,league,exact patch,observed or what-if,label,0,0,describe,0,0,0,0,defined unit,URL and timestamp,0,URL,record real observations only
This is an empty schema, not evidence that LootCalc ran maps, sampled Stacked Decks, or reproduced a league economy. Never add invented rows to make a calculator appear validated.
12. Start a new record after a patch
Preserve older batches with their real version. If a patch changes maps, scarabs, passives, reward behavior, or market structure, begin a new record and recheck every valuation. Historical results can remain useful when labeled; silently presenting them as current destroys that context.
Use the batch calculator
Enter one consistent batch in the PoE Map Batch Profit Calculator, then store its URL with the source and raw log.