How We Calculate Things
Everything shown in RYUREX is derived from the OSRS Wiki Prices API and cached locally. This page explains every signal plainly — no invented claims, no marketing language.
GE Tax (1% sell-side, 2% of sell price, capped at 5M)
Jagex applies a Grand Exchange tax when you sell an item. The actual rate is 2% of the sell price, capped at 5,000,000 GP, with no tax on items that sell for under 50 GP.
Formula used in all profit fields:
tax = min(floor(sell_price × 0.02), 5_000_000)
profit_per_unit = sell_price − buy_price − tax
Every profit figure shown — margin, potential profit, and estimated profit — uses this formula. There is no "raw spread" displayed without the tax deduction.
Buy Limits
The GE enforces per-item buy limits every 4 hours. RYUREX reads these limits from the OSRS Wiki and uses them to cap position size. When a potential profit figure is shown, it is bounded by min(buy_limit, daily_volume_on_the_thinner_side) — i.e., we never assume you can fill more than the market can actually clear or your limit allows.
Items with no recorded buy limit show a dash or zero. These are typically non-tradeable or wiki-unlisted items and are excluded from opportunity scans.
Potential Profit vs. Estimated Profit
Potential Profit (K GP)
profit_per_unit × min(buy_limit, min_daily_volume) ÷ 1000. Represents the ceiling of what a single buy-limit window could yield if fully filled.
Margin (GP per unit)
sell_price − buy_price − tax, for a single unit. The raw per-item return before quantity scaling.
Neither figure guarantees you will achieve those prices — the instabuy and instasell values are the latest transaction ticks from the wiki feed, not guaranteed fill prices.
Data Freshness
Price data comes from the OSRS Wiki /latest and /timeseries endpoints, which update approximately every 1 minute. The age label on each row shows how long ago the wiki last recorded a trade for that item, derived directly from the API timestamp.
Items that haven't traded in over 1 hour are flagged as stale in orange. Items over 6 hours are flagged as very stale in red. Opportunities surfaced by scans enforce a maximum age filter — by default items with no trade in the last 12 hours are excluded.
Confidence and Signal Language
Where RYUREX shows confidence percentages or trend labels, they come from statistical signals — Z-scores against rolling baselines, buy/sell volume imbalances, and mean-reversion indicators — not machine-learning black boxes.
- ▸Z-score — how many standard deviations the current price is from its rolling mean. High Z-score means the price is far from typical; a mean-reversion bet assumes it returns.
- ▸Trend labels (Rising / Falling / Side / Volatile) — derived from the slope of the 24-hour moving average and the ratio of buy-to-sell volume ticks.
- ▸Volume confidence — items with fewer than ~50 daily trades on either side are marked low-confidence regardless of spread, since thin markets are easy to misread.
No model here predicts the future. These signals describe past and current state; you decide whether the pattern is likely to continue.
Data Sources
- ▸OSRS Wiki Prices API /latest — real-time instabuy / instasell prices and trade timestamps.
- ▸OSRS Wiki Item Mapping — item names, IDs, and buy limits.
- ▸OSRS Wiki Prices API /timeseries — 5-minute, 1-hour, and 24-hour OHLCV buckets used for trend, volatility, and Z-score calculations.
RYUREX is an independent fan project — not affiliated with or endorsed by Jagex. No guaranteed trading outcomes.