Skip to the content

Quant Engine · Prism 2.2 · pricing intelligence for skin markets

Know what a skin is worth before it can be traded.

Quant Engine is a pricing API for skin markets. It returns what an item really sells for, a tested expected change and range across five windows, 7d, 30d, 3m, 6m and 12m, and marks a window informational when it has not passed testing.

A price is a range, not a number Illustration

real salesP10 to P90

Tested on the unseen Illustration

9 million+forecasts tested on data the model had not seen

Five windows: 7d, 30d, 3m, 6m, 12m Illustration

  • 7d
  • 30d
  • 3m
  • 6m
  • 12m

29,000+items modelled

Illustrations of the method, not forecasts or results. Figures are rounded down from the published model card of Prism 2.2.
  • 29,000+items modelled
  • Every 24 hoursa fresh dataset
  • 10 yearsof Steam sales tested

Why trust it

Every call is tested before you see it.

The method in five steps. Scroll to watch each one drawn.

  1. 01 · Multi-model

    Several models compete for every forecast.

    A plain "no change" guess, group momentum, a ridge model and boosted trees are scored against each other for every item and window. A forecast is kept only if it beats "no change".

    • 5 windows7d, 30d, 3m, 6m and 12m
    • 29,000+items modelled
    • Prism 2.2the current engine version
    What a call looks likeExample
    today7d30d3m6m12m

    Example item | Minimal Wear

    Fallingover 30 days

    Strong record
    A record is shown as a tier, never as a raw score, so nobody can mistake a lucky streak for skill.Illustration of the method, not a forecast.
  2. 02 · Conformal

    Every forecast is a range you can hold it to.

    A conformal uncertainty predictor sizes each forecast range on data the models never saw, so it holds the share of outcomes it claims to. Stated chances are then mapped to how often they really came true.

    • Conformalranges sized on unseen data
    • Calibratedchances matched to what happened
    stated = came trueStated chanceHow often it came true
    Stated chances are mapped to how often they came true.Illustration of the method, not results.
  3. 03 · Walk-forward

    Walk-forward, never hindsight.

    From 2020, each half-year is forecast by models trained only on data that ended before it, with a purge gap so no training outcome overlaps the test, then scored against what really happened.

    • 9 million+forecasts tested on data the model had not seen
    • From 2020half-year by half-year
    H1 2020H2 2020H1 2021H2 2021H1 2022H2 2022
    trained only on what came before scored on the next half-yearIllustration of the method, not results.
  4. 04 · Signal & safety

    Signal above the noise, and nothing worse goes live.

    One-sale price spikes are clipped out of the history, and a window is shown as validated only where it beat a “no change” guess by a clear margin; otherwise it is marked informational. A new run that is clearly worse than the live one is held back.

    • 260,000+calls tested
    • Silencewhen a call has not earned it
    • Held backa clearly worse run
    A call is shownclear marginchanceSilenceLive runNew runHeld back
    Only a clear margin over chance is shown, and a clearly worse new run is held back.Illustration of the method, not results.
  5. 05 · Data

    Ten years of Steam sales.

    Every Steam Market sale since 2016, cleaned of one-off bad prints, across every item the engine models. Each feature uses only what was known on the day of the call.

    • 10 yearsof Steam sales
    • 29,000+items modelled
    • Point in timeno hindsight
    2016201820202022202420262026
    Every sale in between, cleaned of one-off bad prints.Illustration of coverage, not prices. 29,000+ items at the last engine run.

The engine

Prism 2.2: a multi-model forecasting engine for skin markets.

Prism 2.2 is the current release of the Quant Engine and the engine behind every answer the API gives. It forecasts the expected change and a calibrated range across five windows, 7d, 30d, 3m, 6m and 12m, from 66 market signals, and it ships a window only after it has beaten a plain “no change” guess on dates it never saw.

The record behind every window

Weekly walk-forward test dates, forecasts made on data the models had not seen, and how well the engine’s ranking of items matched what then happened (rank correlation, IC). Figures are for weapon skins, the largest item group, from the published model card.

The record behind every window
WindowWeekly test datesForecasts testedRank correlation (IC)Significance (t)
7d 7 days1511,300,000+0.1934
30d 30 days1471,290,000+0.2012
3m 3 months1391,230,000+0.256
6m 6 months1261,110,000+0.263
12m 12 months100860,000+0.303

Every figure is rounded down. Each of the 14 item groups is tested on its own; across the 40 group and window pairs that passed, rank correlation runs from 0.12 to 0.40. Test dates overlap for the longer windows, so significance is counted on independent dates only.

What it does

  • Five forecast windows

    Expected change and a likely range for 7d, 30d, 3m, 6m and 12m on every item the engine covers, in one call.

  • A contest of models

    A “no change” baseline, group momentum, ridge regression and two sets of gradient-boosted trees compete for each item group and window.

  • Purged walk-forward testing

    Half-year folds since 2020 with training stopped one full window before each test, then scored on weekly test dates the models never saw.

  • Measured uncertainty

    Ranges come from conformal calibration on out-of-sample errors, so a range is measured on past misses, not assumed from a formula.

  • Specialist per item group

    Knives, gloves, stickers, patches, graffiti, capsules, cases and more each get their own model per window, because they do not trade alike.

  • Promotion by evidence

    A model goes live for a group and window only when it beats “no change” with a ranking skill that clears a significance bar. Everything else is marked informational.

  • A safety gate

    Every new run is compared with the live one before it publishes. A run that is worse is held back for review instead of replacing it.

  • Honest by construction

    Each answer carries its window, range, weekly test dates, forecasts tested and a record tier, so you can show a customer exactly what stands behind a number.

A wide data field

66 signals per item per day, built from about ten years of Steam sales across 29,600 items, all computed without looking ahead. They fall into eight families.

  • Momentum and trend

    Returns from a week to two years, trend slope and fit, distance from highs and lows, cycle behaviour.

  • Deviation from normal

    How far an item sits from its own one, three and twelve month norms.

  • Volatility and risk shape

    Volatility, drawdown, skew and risk-adjusted return measures over the last year.

  • Liquidity

    Volume, trade frequency, gaps between trades and how much a thin market moves price.

  • Market and segment context

    Market-wide moves, the item’s segment, how it co-moves with its group, and what is specific to it.

  • Standing among peers

    Where the item ranks inside its group on momentum and deviation today.

  • Calendar and events

    Major tournament cycles, qualifiers, Steam sale seasons and each team and player’s event history.

  • Item identity

    Wear, StatTrak, Souvenir, rarity, team and player tags, age and price level.

How it is built

A game-agnostic core with each game as its own pack: Counter-Strike 2 today, Dota 2 planned. The same seven stages run on every training cycle.

  1. Ingest

    Daily sales and volume for every item, cleaned of one-off bad prints.

  2. Signals

    66 signals per item per day, built with strict no-look-ahead rules.

  3. Model contest

    Five contenders per item group and window, from the “no change” baseline up to gradient-boosted trees.

  4. Walk-forward test

    Purged half-year folds since 2020, scored on weekly dates the models never saw.

  5. Promotion

    A model ships for a group and window only if it clears the bar for ranking skill, significance and error against “no change”.

  6. Calibrated ranges

    P10 to P90 ranges calibrated by conformal prediction on out-of-sample errors.

  7. Gate and serve

    A worse run is held back. A passing run publishes its model card and is served from memory, so lookups are instant.

Request API access

The Exchange

A ready-made market page for your skin site.

The Exchange is our daily market page, ready to drop into your site. It runs on our API, takes on your theme, leads with each signed-in user’s own items when you pass them, and gives everyone else the daily edition.

  • Drop-in

    Runs on our API

    One script tag and one div. The page reads the daily edition and values inventories through the same API you would use yourself, with a key that is safe to put in a web page because it only works from the addresses you register.

  • Themes

    Fits your site

    Light and dark editions, three paper sizes (Pocket, Daily and Weekend), your accent colour and your currency. It draws inside its own sealed box, so your styles cannot break it and it cannot leak into yours.

  • Your users’ inventory

    Their items first

    Pass a signed-in user’s item names and quantities from your own records and the page leads with what those items are worth and how they are expected to move. We store nothing: the list goes from the browser to the API and is gone. Everyone else gets the shared daily edition.

  • Everything in the paper

    Pictures and the Quant Desk

    Item pictures with their rarity colour, the market mood and the week’s movers, and a Quant Desk table of expected change and likely range by window with the engine’s record shown as signal bars. One callback opens an item on your own page.

Live demo

The real Exchange, running on our API from this page

The live demo needs JavaScript. It shows today’s market page: the mood of the week, the biggest movers and the Quant Desk table of expected change and likely range.

Inventory is off in this demo. Scroll inside the frame; the light and dark buttons switch the edition.

On the sandbox and starter plans the Exchange shows a small “Powered by Quant Engine” line, which is required there. Not affiliated with or endorsed by Valve Corporation. Not financial advice.

Who it is for

Built for the sites that price skins for a living.

A skin that just arrived is locked for 7 days on Steam. You still have to price it today. Quant Engine answers that question with real recent sales and a tested range, not a guess.

The problem

Listings are asks, not sales. A held item cannot be sold for 7 days, a thin item can print one wild sale, and a spreadsheet of last week’s prices says nothing about next week.

The answer

A median of real recent sales with its date and sale count, a P10 to P90 range for the days ahead, and a record tier that tells you how far to trust the call. Or an honest “no forecast”.

  • First customers

    Skin-trading and marketplace sites

    Price items that sit in the 7-day trade hold, run spot checks at listing time, and quote a price you can stand behind.

  • Batch and audit

    Inventory and portfolio tools

    Value a whole inventory net of the fee you choose, flag the thin items, and show customers a range instead of a single number.

  • Daily feeds

    Analytics and research

    Pull the daily catalogue and the daily signal feed into your own models, dashboards and reports.

What you get

Instant prices, an endless market, one clean API.

Plain JSON over HTTPS. Every answer comes from our own index, so a price comes back in milliseconds and the whole market can be scrolled without limit. Paths are relative to the base address; the sandbox serves sample data so you can build against it today.

  • Instant price

    The spot price from real sales in milliseconds, with the expected change and likely range across 7d, 30d, 3m, 6m and 12m, and the weekly test record behind each.

    GET /item?name=AK-47 | Redline (Field-Tested)
  • Instant search

    Prefix matching and autocomplete across the whole catalogue, fast enough to type against.

    GET /search?q=ak-47&type=skin
  • Endless market

    Filter and scroll the whole market page after page with cursors. Sort by price, change or expected change.

    GET /market?minPrice=5&maxPrice=50&category=rifle&minExpectedChange=5
  • Price history

    Daily prices and sales for every item, cleaned of one-off bad prints.

    GET /history?name=AK-47 | Redline (Field-Tested)&window=365d
  • Daily outlook

    Items ranked by expected change over the window you choose, with the context behind each move, as a feed.

    GET /signals?horizon=30d
  • Movers

    The biggest risers and fallers among items that trade enough to trust.

    GET /movers?window=30d&dir=up
  • Trade-up contracts

    Trade-up contracts with a positive expected value after fees, priced from real sales.

    GET /tradeups
  • Inventory audit

    Send an inventory, get the audit back. Stateless: nothing you send is kept.

    POST /portfolio
  • Offer check

    Put two baskets side by side and see the value gap at spot and, where tested, across each window.

    POST /compare
  • Wallet exchange rates

    Steam wallet exchange rates, so prices can be shown in your customer’s currency.

    GET /fx
  • Daily catalogue

    The full daily catalogue as one file, for the top plans only.

    GET /catalog.json
  • Trade-lock risk floor

    Coming soon

    A 7-day and 30-day risk floor for items stuck in a trade lock.

    GET /risk

Planned surface. Paths and fields may change before launch.

Try it

One call, everything you need to quote.

Type a skin name, pick it, and we call our real API from your browser: you see the actual response and how long it really took. Until you do, the box shows the shape of an answer, and below it the same answer is explained field by field.

Live data from our servers. The demo is rate limited.

Or try one of these:

The Try-it box needs JavaScript to call the API. The sample response below shows the same shape.

Illustrative response, not live data
{
  "item": "M4A4 | Spider Lily (Minimal Wear)",
  "asOf": "2026-11-02",
  "spot": { "price": 16.03, "currency": "USD", "source": "steam_sales_median", "salesCount30d": 412, "thinMarket": false, "isLiveListing": false },
  "net": { "price": 13.94, "feeRate": 0.15 },
  "contextLabels": ["Half off its peak", "Trades in cycles"],
  "horizons": {
    "7d": {
      "label": "7 days",
      "available": true,
      "p10": 15.69, "p50": 16.06, "p90": 16.45,
      "changePct": 0.2,
      "validation": "validated",
      "outlook": {
        "expectedChangePct": 0.2,
        "direction": "flat",
        "range": { "lowPct": -2.1, "highPct": 2.6, "lowPrice": 15.69, "highPrice": 16.45, "includesNoChange": true },
        "evidence": { "method": "walk_forward", "tested": true, "testedSince": "2020", "testedWeeks": 151, "testedForecasts": "1,300,000+", "rankCorrelation": 0.19, "significance": 34, "scope": "item_group", "tier": "strong" }
      },
      "summary": "Expected to stay about level over the next 7 days (likely range -2.1% to +2.6%); tested on 151 weekly walk-forward test dates, over 1,300,000+ past forecasts for items of this type since 2020 (rank correlation 0.19)."
    },
    "182d": {
      "label": "6 months",
      "available": true,
      "p10": 7.16, "p50": 15.97, "p90": 36.37,
      "changePct": -0.4,
      "validation": "validated",
      "outlook": {
        "expectedChangePct": -0.4,
        "direction": "flat",
        "range": { "lowPct": -55.3, "highPct": 126.9, "lowPrice": 7.16, "highPrice": 36.37, "includesNoChange": true },
        "evidence": { "method": "walk_forward", "tested": true, "testedSince": "2020", "testedWeeks": 126, "testedForecasts": "1,110,000+", "rankCorrelation": 0.26, "significance": 3, "scope": "item_group", "tier": "solid" }
      },
      "summary": "Expected to stay about level over the next 6 months (likely range -55.3% to +126.9%); tested on 126 weekly walk-forward test dates, over 1,110,000+ past forecasts for items of this type since 2020 (rank correlation 0.26)."
    }
  }
}
An illustrative response. The values are an example of the shape, not a live quote, and the shape may change before launch.
  1. A spot price from real sales

    spot The median of real recent sales, with its as-of date and the number of sales behind it. It is not a live listing and not an ask.

  2. The maths, not a call

    expectedChangePct For each of the five windows, 7d, 30d, 3m, 6m and 12m, you get the expected change and the likely range. What to do with it is your decision.

  3. How it was tested

    evidence Every figure says how it was tested: walk-forward since 2020, against thousands of past forecasts for similar items, with a record tier instead of a raw score.

  4. Net of the fee you set

    net The net figure uses the fee your own business applies. The engine itself is fee-free; you pass your rate.

Built for production

Boring in the ways that matter.

A small, predictable API surface you can put in front of customers. This is what ships with the first production release.

  • At launch

    Stable, versioned API

    Additive changes only within a version, with long notice before a version is retired.

  • At launch

    API keys with scopes and quotas

    Server-to-server keys, scoped per endpoint family, with quotas by plan.

  • At launch

    Plain JSON, rate limits

    Predictable JSON, per-key rate limits and clear error bodies that say what to fix.

  • At launch

    A fresh dataset every day

    The engine scores once a day; every response carries its as-of date, so you always know how old a number is.

  • At launch

    Anti-scraping posture

    Rate limits, bulk-extraction limits, bot checks and watermarking protect the data you pay for. The daily catalogue is the only bulk file, and it holds the top tiers only.

  • At launch

    Sandbox key

    A free key against sample data, so you can build and test before production keys are issued.

  • Planned

    Webhooks

    Push the daily refresh to your endpoint instead of polling for it.

Design goals, not measured results: fast single-item answers for interactive use, and a daily refresh that finishes before the markets of Europe wake up. We publish measured figures only once we have measured them.

Plans

Start free, grow when you ship.

No price list on the page: the right plan depends on volume and use. Tell us what you are building.

  • Free

    Sandbox

    A key against sample data, for building and testing your integration.

    • Sample data
    • Same shapes as production
    • No card, no commitment
    Ask for a sandbox key
  • Production

    API

    Production keys with quotas by tier. Batch and 7-day views are part of this plan.

    • Live daily data
    • Scoped keys and quotas
    • Quotas by tier: contact us
    Talk to us about the API
  • Embed

    Exchange

    The ready-made market page for your site, running on top of the API.

    • One script tag and a div
    • Light and dark, your colours
    • Credit line on the sandbox and starter plans
    Ask about the Exchange
  • Self-hosted

    Licence

    Run the engine yourself, on your own data and infrastructure.

    • Run it in-house
    • Your data stays yours
    • Terms by agreement: contact us
    Ask about a licence

See it running

Built on the Quant Engine.

is a portfolio tracker and daily market newspaper for Counter-Strike 2 players. Its prices come back instantly and its marketplace scrolls without end, all from the engine through the same kind of API you would use.

  • Knife · Factory NewExample

    ★ Karambit | Doppler

    Fallingover 30 days

    Strong record
  • Sniper rifle · Field-TestedExample

    AWP | Dragon Lore

    Risingover 90 days

    Solid record
  • Rifle · Factory NewExample

    M4A4 | Howl

    Risingover 6 months

    Record building
Open (opens in a new tab)These examples are static illustrations, not live data. The live thing is one click away.

FAQ

Questions we get asked.

Where does the data come from, and how fresh is it?

From Steam Market sales history, cleaned of one-off bad prints, across ten years. The engine scores once a day and every response carries its as-of date, so you can always see how old a number is.

How are items on the 7-day trade hold priced?

A held item cannot be sold yet, so there is no listing to read. The spot price is the median of real recent sales of that item, and the 7-day-ahead view gives a P10 to P90 range for where it is heading. You decide what to do with it.

What does “no forecast” mean?

It means the engine has no tested call for that item or window, usually because the item trades too thinly or that kind of call did not beat chance in testing. We return an explicit "no forecast" rather than a number we cannot stand behind.

What do you cover?

Counter-Strike 2 today. Dota 2 is planned: the engine is built so a new game is a data pack, not a rewrite, but there is no date yet.

Are you affiliated with Valve, and who is responsible for how it is used?

Not affiliated with or endorsed by Valve Corporation. Counter-Strike, Steam and the Steam logo are trademarks of Valve Corporation. You are responsible for your own use of the data and for following Steam’s terms in your product. Forecasts are information, not financial advice.

What support do you offer?

Email support at [email protected]. Production customers get a named contact; the sandbox is best-effort.

Get API access

Tell us what you are building.

A few lines is plenty. We reply by email, usually within a couple of working days.

This form stores nothing. Sending it opens your email app with the message ready to go.