Web application and RuneLite pluginLive at osrsflipfinder.com

OSRS Flip Finder: what we built and why

A quantitative Grand Exchange flipping tool for Old School RuneScape, with a game plugin that keeps the trade journal honest.

Case study · · 4 min read

Built for
Dubai Foundry (our own product)
Built
June 2026
Data
OSRS Wiki Real-time Prices API: mapping, latest and 1-hour series
Model
Fill confidence and profit confidence per item, sized to capital and 4-hour buy limits
Plugin
Flip Finder Sync on the RuneLite Plugin Hub, BSD-2 licensed
Stack
Next.jsTypeScriptSupabaseDrizzle ORMPostgresRechartsJavaRuneLite
Visit osrsflipfinder.com

The problem

Flipping on the Grand Exchange is Old School RuneScape's stock market: buy near the instant-sell price, sell near the instant-buy price, keep the spread after a 2% tax. The numbers are public through the OSRS Wiki's real-time price API, so plenty of sites list "top margins". The trouble is that the biggest margins are usually fake: an illiquid item whose last two trades were hours apart, or a spike that will be gone before your offer fills. Players lose money to spreadsheets that do not know the difference.

We wanted a tool that ranked flips by whether they will actually fill and actually profit, sized to the money a player has, and that kept an honest record of what happened.

What we built

A recommendation engine. The service joins the Wiki's mapping, latest and one-hour endpoints and, for every tradeable item, computes spread, GE tax, net margin, ROI, liquidity, two-sided volume balance, price staleness and spike-versus-persistence signals. Each flip gets two confidence scores: fill confidence (volume, two-sided liquidity, recency, and your order size against what the market moves) and profit confidence (spread persistence, spike safety, margin plausibility). Fake margins from stale or illiquid items drop out on their own.

Bankroll and risk controls. The player enters expendable capital and moves a risk slider from ultra-safe to aggressive. The ranking weight shifts from reliability to upside, and every position is sized to the capital and to the item's 4-hour buy limit, so a suggestion is always one the player can actually place.

Item detail. A price-history chart, guide buy and sell prices, and a full "why this score" breakdown so the model's reasoning is visible rather than a black box.

A trade journal. Log open and closed trades, realised profit and loss after tax, win rate, average ROI, GP per hour, open positions and a cumulative profit curve.

A RuneLite plugin. Logging trades by hand is the step everyone skips, so we wrote Flip Finder Sync, a plugin for the RuneLite client. It watches Grand Exchange offer events, computes each newly filled quantity and average price, gives the fill a deterministic id (account, slot, type, item, cumulative quantity) and posts it to the journal. The deterministic id means a relog never double-counts a trade. Only completed fills are sent, never inventory or location. It is published on the RuneLite Plugin Hub under a BSD-2 licence.

Why these choices

Confidence, not margin. Ranking by raw margin is what every other tool does, and it is why they mislead. Two separate confidence bars let a player see when a flip is likely to fill but barely profit, or profit handsomely if it ever fills.

Next.js with Supabase and Drizzle. The web app is server-rendered for the public pages (guides and item pages are built to be found in search) and client-driven for the dashboard. Postgres through Drizzle keeps the journal queries typed; Supabase handles auth and row-level security so a player's trades are theirs alone.

Java for the plugin. RuneLite plugins are Java targeting JDK 11, with a review process before they reach the Plugin Hub. We built it with the Gradle wrapper, kept the endpoint fixed so the plugin cannot be pointed at a third party, and open-sourced it so players can read exactly what leaves their client.

Honest about uncertainty. The product says, in its own copy, that confidence figures are model estimates and not guarantees. That sentence costs a little conversion and buys a lot of trust.

What happened

OSRS Flip Finder went live in June 2026 with the engine, dashboard, watchlist, guides and journal; the RuneLite plugin followed and is live on the Plugin Hub. It is the clearest example we have of pairing a web product with a native integration where the data is created.

What we would do differently

We built the journal before the plugin. The plugin should have come first: a journal people have to fill in by hand is a journal that is mostly empty. We would also publish the scoring model's weights as a page on the site from day one; the "why this score" panel came later and is the feature players ask about most.

Frequently asked questions

Where do the prices come from?

The OSRS Wiki Real-time Prices API, which aggregates trades reported by RuneLite users. The app joins its mapping, latest and one-hour endpoints and identifies itself with a contact user agent, as the Wiki asks.

Is the plugin safe?

It is open source under BSD-2, it only sends completed Grand Exchange fills, and the endpoint is fixed in the code. You can read every line before installing it from the Plugin Hub.

Does the tool guarantee profit?

No, and it says so. Confidence scores are estimates from liquidity and price behaviour; tax and price movement are real risk. The ultra-safe setting targets the highest-fill, most stable spreads.

Could you build a trading or analytics tool for our market?

Yes. A public or licensed data feed, a scoring model with visible reasoning, and an integration where the data is created is a pattern that transfers well beyond games. Book a free consult.

Building something like this?

Fifteen minutes, free, no pitch. You talk to an engineer, not a sales rep.

Book a free consult

More case studies

  • RescueME · A pet adoption platform for the UAE that turned a rescue group's spreadsheet and WhatsApp threads into a site that finds its own adopters.
  • Wipe Board · A live tracker for Rust server wipes that went from idea to production in a day, then became an API that AI assistants can call.
  • Duskmere · A free browser MMORPG inspired by Old School RuneScape: a live multiplayer world, an authoritative TypeScript server, and a GM editor that builds the world.
  • BoostSearch · Our generative engine optimisation consultancy, whose website is its own instrument: brand, site, lead flow and a daily measurement pipeline, shipped to production in a day.