GameHomeHub

Methodology

Last updated 2026-10-01

What this site computes, and what it reports

There are two kinds of number here, and they are held to different standards because they can be known to different degrees.

Market rates are reported. Where a publisher or a community project publishes a live price, we read it, timestamp it, and republish it. We are not the source of those numbers and we never adjust them.

Tool answers are computed. The upgrade-cost analysis, the odds maths and the trade comparison are arithmetic run on inputs you supply, using a published engine. Those answers are ours, and the method is fully stated below so you can check them.

The distinction matters because the two can fail in different ways. A reported rate can be stale; a computed answer can be arithmetically sound and still useless because an input was wrong. Both cases are labelled where they occur.

Market rate sources, in full

For market-traded currency we prefer a publisher's own public API wherever one exists. Where it does not, we say so plainly rather than implying a level of authority the data does not have.

  • EVE Online (ISK/PLEX): CCP Games' public ESI market endpoint for the Global PLEX Market — a single unified market CCP introduced in 2023 that pools all PLEX trades regardless of station or region. First-party, official.
  • Albion Online (Gold/Silver): the Albion Online Data Project (AODP), a community-run project that aggregates market data voluntarily shared by players' game clients. This is not an official Sandbox Interactive API — Sandbox Interactive has publicly said it does not object to it, which is not the same as endorsing it. Third-party, crowdsourced. We track the Europe server.
  • Guild Wars 2 (Gems/Gold): ArenaNet's official, keyless public API (v2/commerce/exchange/gems), which publishes the first-party Gem↔Gold exchange rate. First-party, official.
  • Old School RuneScape (Bonds/GP): the OSRS Wiki's public price API (prices.runescape.wiki), which mirrors the live Grand Exchange. Community-maintained but sourced from Jagex's game data; we use the midpoint of the buy/sell spread as the reference price.
  • Roblox player counts: Roblox's own public games API, read at request time and timestamped on the page. First-party, official.

Update cadence is hourly for the four market rates, and every page shows the timestamp of its last successful read rather than the time the page was built. Scheduled jobs run offset from each other so the four markets are not competing for the same upstream capacity.

The solver engine, stated in full

Tool answers come from a small set of pure functions in lib/solvers: no network calls, no database reads, no game-specific constants. Given the same inputs they always return the same outputs, which is what makes their answers checkable.

  • Cost curve. Sorts upgrade tiers by price, then computes for each step the marginal price of one point of stat — the difference in price divided by the difference in stat, not the sticker price of either tier. The tier's absolute price per point is computed separately. The answer reported is the most expensive tier the reader's stated budget already covers, because on a ladder where each step costs more per point than the last, intermediate tiers are never a cheaper route to the top.
  • Efficiency cliff. The first step whose marginal price is at least 100× the step below it is flagged. Where no single step is that steep, the first step after the cheapest step is flagged instead. Past this point the tool recommends stopping rather than saving — a recommendation the arithmetic supports, not a preference.
  • Dominated tier. A tier is flagged when it asks for a larger price jump than the step below it while granting a smaller stat gain. Ratio comparisons carry a relative tolerance, because decimal inputs that are mathematically equal are not bitwise equal in floating point and an exactly-equal step would otherwise be misreported as smaller.
  • Probability. Odds are normalised from raw weights, and four related figures are reported rather than one: the chance of at least one success in n attempts, the expected number of attempts (1/p), the median number of attempts (≈0.69/p), and the attempts needed to reach a chosen confidence level. The median and the confidence figure are included precisely because the expected value alone understates how long a typical player waits.
  • Trade value and drop ROI. Trades are compared basket-to-basket with quantities applied, and judged fair only inside a stated tolerance band rather than on the sign of the difference. Loot tables are reduced to expected value per attempt with each row's share shown, so a stale rare-drop price is visible instead of hidden inside a total.

The engine is covered by an assertion suite that runs against a real upgrade ladder rather than a toy input, including the floating-point tolerance above. It is runnable from the repository with npm run verify:solvers.

Where the tool inputs come from

A solver is only as good as the numbers fed to it, and for in-game upgrade ladders there is no official feed to read. Those tables are compiled from public listings, cross-referenced where possible, and labelled with the confidence level they actually earned — including "single source, not yet confirmed in game" where that is the truth.

The standard is set out in full in how we source and verify game data. The short version: a page built on a weak number says so on the page, and a tool that depends on a weak number says so next to its answer.

What we do not do

We do not broker trades, sell in-game currency, or accept payment to feature a game more prominently. We are not affiliated with, endorsed by, or sponsored by any game publisher named on this site.

We do not fabricate a number to fill a layout. When a data source is down, the page shows its collecting state instead of a plausible figure. Synthetic series exist in the codebase for local development only, are switched off by environment, and cannot run in production.

We do not review a figure's date without re-checking the figure. A "last checked" stamp is a claim about verification, not about how recently the page was touched.

And we do not explain a price movement we have not observed. Where a page discusses why a rate moved, the observed arithmetic and the plausible explanation are kept in separate sections and labelled as such — because inventing a story to fit a chart is the failure mode this kind of site is most prone to.

Data reuse

The computed figures on this site are free to reference, quote, or link to, with attribution back to gamehomehub.com. The underlying game data and store prices belong to the respective publishers — we are republishing publicly available pricing and running our own arithmetic on it, not claiming ownership of anyone else's data.