~/writing $ cat writing/mmg-daily-feasibility.md
MMG experiment log: daily-horizon feasibility
2026-07-03 · Experiment Logs · 2 min read
The first test of whether OSRS Grand Exchange prices carry a tradeable signal: a small, real directional edge on daily bars, 57.43% versus a 54.86% baseline, that a tax-aware backtest turned into a loss of 1,529,993 gp across 1,629 trades. No signal shipped.
Setup
The study's dataset came from a public Kaggle snapshot of Grand Exchange prices, CC BY 4.0 licensed: 1.55 million price observations spanning 4,420 items from 2021 to 2026. A 50-item spot check against Weird Gloop's independent archive agreed on daily direction 60.2% of the time, with a sub-1% median price gap between the two sources, enough to trust the primary dataset.
Six model types trained side by side on time-based splits with a purge-and-embargo gap between train and test: a persistence baseline, a smoothed trend model, ridge regression, gradient-boosted trees, a direction classifier, and a tax-hurdle classifier. A separate check of the tax and fee math itself ran 50,512 comparisons between the browser calculator and the backend, zero mismatches.
Result
57.43% of the classifier's daily direction calls landed correct, against a 54.86% baseline from always picking the majority class, a 2.51 to 2.90 percentage point edge that held up across all three walk-forward test regimes. A second model, built specifically to flag which moves would clear the full cost of a trade, scored a 0.727 ROC-AUC and turned in 45.7% precision on the calls it selected, against a 17.2% base rate, a 2.65x lift.
None of that translated into profit once a real backtest ran the numbers. The model's picks lost 1,529,993 gp across 1,629 trades: a 33.7% win rate and a -3.06% average return per trade. Even the single most confident pick, isolated by an uncertainty filter, lost money on its own.
Verdict
The verdict was blunt: no profitability claim, no automation, no live "buy now" badge, not from this model. That set the template going forward: ship what held up, volatility and spread forecasting, keep every trade recommendation out of the product, and rerun the same question on faster, higher-resolution data before calling it final.
No signal shipped from this study. The full story lives in the MMG case study.
architecture · mmg · the static frontend also reads live prices directly from the public API at the top, independent of the collector and model pipeline below it
Related projects