Date: 2026-11-06. Scope: a local Windows desktop release. Size: about 3,700 lines of Python, 1,250 lines of UI and 390 lines of tests.
| Area | Status | How it was verified |
|---|---|---|
| Source audit (8 sources) | ✅ | Real HTTP calls; matrix in RESEARCH_REPORT.md |
| Connectors | ✅ | auctionhouse.fyi, Everloot, Blizzard, ForeverDB, wow.gg, addon, CSV/JSON, manual. Live collection: 10,631 items, 7,840 observations, 7,840 daily candles, 3,908 recipes, 9,635 reagent links. A failing source reports its real HTTP status and never fakes success. |
| Database | ✅ | SQLite (WAL), versioned migrations, constraints, idempotent collection, point-in-time reconstruction (market_state_at), online backup and restore with an integrity check, CSV export |
| Market engine | ✅ | Scanner, Data Quality Score (item and market), deterministic vendor arbitrage, statistical flips (liquidity and risk filters), anomalies, market depth and slippage (from addon listings) |
| Forecasting | ✅ engine / ⏳ data | 5 models plus walk-forward evaluation against naive. Tests: random walk → naive kept; 24 h seasonality → seasonal model wins with MAE < 50% of naive; no look-ahead. On real data every horizon is still INSUFFICIENT_DATA (1 day of history). |
| Scarcity, demand, events, FEI | ✅ | Scarcity Score 0–100 with components; demand derived through the recipe graph and sourced events; "Raids unlock" impact covers 156 items; chained Forever Economy Index |
| Crafting | ✅ | Recipe profit, best use of an item (recursive transformation), profession planner. 15 of 16 seeded recipes match the game graph and 1 is flagged UNVERIFIED. |
| Farming | ✅ (no routes) | Real gold/hour from logged sessions, farming vs buying. No generated routes: no reliable map data source exists. |
| Wealth | ✅ | FIFO ledger, liquidation value net of the AH cut, goals with ETA, paper trading kept separate, optimizer (25%/item cap, cash reserve), backtest against a passive baseline, scenarios |
| Alerts | ✅ | 7 rule types, daily deduplication, explanation, source, confidence and date on every alert, desktop notifications (browser) |
| Learning system | ✅ | Predictions and recommendations resolved against OBSERVED prices; MAE, directional accuracy, interval coverage, calibration, alert precision |
| AI Strategist | ✅ | Offline rule engine (tested). Claude mode (claude-opus-5-5, read-only tool use, server-side fallback enabled) is implemented but not tested end to end (no API key available). |
| 8 analysis agents + arbitration | ✅ | Run in parallel; each buy decision is weighed against forecast and risk objections |
| UI | ✅ | 15 pages verified in the browser, zero JS errors including under fast navigation, dark and light themes |
| WoW addon | ✅ code / ⏳ in game | TOC 16001, ReplicateItems on manual command, recipe export. Not run in game (no client available). Parser and import are tested with a sample SavedVariables file. |
| Windows scripts | ✅ | install, start, diagnose, backup, restore, update (diagnose and backup run successfully) |
pytest: 32/32 pass.
- data: 8 tests
- engines on synthetic markets: 18 tests
- API and security: 6 tests
Bugs fixed during the audit:
1. A stale statistics cache shared between databases (the cache key did not include the database).
2. The market module was shadowed by a parameter of the same name in the API.
3. Capital profiles used the wrong unit.
4. Negative amounts were formatted incorrectly.
5. The AH cut was hard-coded in the event scenarios.
6. UI: writes to the DOM after a page change.
History is too short (Forever launched on 2026-11-04; anonymous access gets 7 days), so no model can be claimed to beat naive on real data yet. The app says so explicitly.
Validity also depends on contributors uploading to auctionhouse.fyi: - 2 of 6 markets have data; - the last scan dates from 2026-11-05 20:19 UTC.
So the hourly collection only adds data when a new scan exists. The addon is the way to become independent of that.
| Limitation | Next step |
|---|---|
| The Forever AH cut is unknown (5% ESTIMATED) | Measure it in game and fix it in Settings |
| Recipe quantities are unknown outside the Mining/BS seed | Run /ao recipes in game, or add a ForeverDB key |
| Blizzard auctions return 404 | The connector is ready and probed at every check |
| Skill-up colours use a Classic heuristic | The addon already records relativeDifficulty, but the planner does not use it yet |
| Overview and briefing take about 4–5 s | Pre-compute after each collection |
| Native installer (Tauri) not built | See DEVELOPER_GUIDE § packaging |
| SaaS designed, not deployed | SAAS_ARCHITECTURE.md; commercial licences to negotiate (auctionhouse.fyi) |
| Screenshot OCR not provided | The addon export is more reliable; revisit only if needed |