# Balance Desk > Paste one game balance table — the items, units, upgrades, spells, shop entries or > enemy waves that live in a designer's spreadsheet — and work it three ways in one > sitting. A free in-browser pass computes normalised power, cost efficiency, full > Pareto dominance, the tier-over-tier progression curve, per-stat outliers, an > ordinary least-squares fit of cost on power, drop-table probabilities and the > currency sinks against the faucets. Then a reviewer audits the table, prices the > economy, or settles a playtest session's complaints against those numbers. URL: https://balance-desk.skillsafe.ai/ API: https://balance-desk.skillsafe.ai/api.html Platform: SkillSafe (https://skillsafe.ai/) Model: gpt-terra (currently resolves to gpt-5.6-terra), markup 1000 bps ## The work object One balance table. Every lane takes the same one. Accepted as: - CSV, TSV, semicolon- or pipe-delimited text, with quoted fields handled - a markdown table pasted straight out of a design document - a JSON array of entry objects, or a JSON object whose keys are entry names - a dropped `.csv`, `.tsv`, `.json`, `.md` or `.txt` file, read with FileReader in the page Numbers are read the way designers write them: `1,250`, `42%`, `$30`, `1.5x`. ## What the browser measures, free and without an account Column roles are detected from the header: the name, the tier (tier / level / rank / wave / unlock), the cost (cost / price / gold / credits), the rarity, the drop weight (weight / chance / drop rate) and the income (reward / yield / bounty / payout). Income is claimed before cost, so a column called `gold_reward` is read as a payout rather than as a price. Every other numeric column becomes a stat. - **Direction.** Cooldown, cast time, reload, weight, recovery, startup and their relatives are scored as lower-is-better rather than being read backwards. - **Power.** Each stat is min-max scaled to 0..1 in its own better direction and the scaled values are averaged. It is a within-table comparison and nothing more. - **Cost efficiency.** Power divided by cost, with a z-score against the table, which is what names the auto-include and the trap purchase. - **Pareto dominance.** Every entry is compared against every other on all stats and on cost. A strictly dominated entry is proven dead content: there is no build in which it is the correct pick. - **The tier curve.** Mean power per tier, the ratio each tier gains over the one below, the shape it fits (flat, linear, geometric, erratic) and the tiers where the curve stalls, spikes or reverses. - **Stat summaries.** Mean, median, standard deviation, coefficient of variation, a Gini spread, and outliers by both z-score and interquartile fence. - **Price against power.** An ordinary least-squares fit of cost on power with R-squared, plus every entry's residual, so a mispriced row is named alongside the price the fit predicts. - **The drop table.** Weights normalised to probabilities, the pulls needed for a 50% and a 90% chance, and rarity labels checked against their own odds. - **The economy.** Currency sinks against faucets, the cost ladder spread, and the grind cost of every entry in the table's own income units. - **Flags.** Deterministic `BX-nnn` findings across parse, dominance, progression, pricing, drops and economy. They are sent to the reviewer as facts it must answer, and the result panel shows what it did with each one. ## The three lanes Every lane sends `task` and the same `table`. The result is one JSON object with a shared envelope — `lane`, `table_name`, `verdict`, `headline`, `overview`, `checks[]`, `findings[]` with `BD-nnn` ids, `coverage_check[]`, `next_steps[]` — plus exactly one lane block. ### audit — what is broken, and what numbers fix it Source skill: `@donchitos/balance-check`. Verdicts: `balanced`, `tunable`, `broken`. Eight checks: table shape, stat coverage, power spread, cost efficiency, dominated entries, tier progression, outliers, degenerate strategies. Block `audit`: `power_read`, `dead_content[]`, `auto_includes[]`, `curve`, `retune[]`, `note`. Dead content and auto-includes must each be grounded in a measurement, and every retune is a concrete `from -> to`. ### economy — does the money work Source skill: `@thedivergentai/godot-economy-system`. Verdicts: `sustainable`, `inflationary`, `grindy`, `unreadable`. Eight checks: price ladder, power-to-price fit, currency sinks, currency faucets, grind time, drop table integrity, rarity coherence, paywall pressure. Block `economy`: `currency_read`, `ladder[]`, `sinks[]`, `faucets[]`, `grind`, `drop_table`, `reprice[]`, `note`. Replacement drop weights must stay on the scale the table already uses. ### playtest — do the numbers back the testers Source skill: `@donchitos/playtest-report`. Verdicts: `confirmed`, `partly confirmed`, `contradicted`, `insufficient`. Seven checks: notes parsed, entries matched, numeric support, contradictions, unexplained complaints, severity ranking, next build actions. Block `playtest`: `session`, `claims[]`, `unheard[]`, `build_notes[]`, `note`. Every distinct point in the notes becomes one claim, settled as `supported`, `contradicted`, `unsupported` or `no data` by a measured number and nothing else. `unheard` lists the problems the table raises that nobody in the session reported. ## Handoff Each result carries its conclusions into the next lane over the same table, so an audit becomes the carryover for the economy pass, and both become the carryover for the playtest reconciliation. ## What it deliberately does not do - It does not judge how an entry *feels*. A table has numbers, not game feel. - It does not invent a currency, a stat or an income rate the table does not carry. - It does not advise on the engine, the asset pipeline or the release. It is a numbers desk. - Power is never presented as an absolute measure of strength; it is relative to the pasted table only. ## Cost The measured panel, the flags and every export are free and need no account. Running a lane is metered against the user's SkillSafe balance; the reserved amount is shown before the run and the actual charge is usually far lower. The bundled roguelike weapon shop replays saved passes for all three lanes at no cost and without signing in. ## Credit Balance Desk is a derived work built on three agent skills published on SkillSafe: - `@donchitos/balance-check` — outliers, broken progressions, degenerate strategies and economy imbalances in balance data. - `@thedivergentai/godot-economy-system` — game economies: currency management, shop pricing, dynamic pricing, weighted loot tables and rarity tiers, inflation control and currency sinks. - `@donchitos/playtest-report` — turning raw playtest notes into a structured, comparable report. Credit for the underlying design knowledge belongs to their authors.