How the spread data is built
What Prop Spread measures
Prop Spread records the bid and ask each monitored firm quotes on its own trading server, and the difference between them. Every figure in the dataset is an observation we made, not a figure a firm published about itself. Where the two differ, this site reports what it observed.
4 firms are monitored across 5 instruments (EUR/USD, GBP/USD, Gold, NAS100 and GER40). The monitored set is stated on every comparison, because a comparison only means something against a named set of firms.
How quotes are collected
Each firm's feed is read continuously while its market is open, and every accepted quote is written to an append-only record at full precision, with the time it was taken. Nothing is rounded, smoothed or filled in on the way in, and no quote is ever deleted. Quotes kept out of a statistic are counted as exclusions and stay on file.
Quotes come from demo accounts on each firm's own server. We do not take figures from marketing pages, screenshots or other aggregators, and where a firm's feed is down the site says so rather than substituting an estimate.
Putting quotes on one scale
Firms quote the same instrument in different units, to different numbers of decimals, and under different names. Every quote is mapped to one instrument and converted into its display unit: pips for currency pairs, cents for gold, points for indices.
Symbol names are resolved when a quote arrives, so a firm quoting GER40.cash and one quoting DE40 are recorded against the same instrument. The conversion uses each instrument's pip size and contract size, the same constants the calculators on this site use.
Example: A EUR/USD bid of 1.08421 against an ask of 1.08423 is a raw spread of 0.00002, which at a pip size of 0.0001 is 0.2 pips. That 0.2 is the figure that enters every average, ranking and cost.
Time-weighted averages
Each spread is weighted by how long it stood as the quote in force, rather than counting every received quote equally. Feeds do not update at the same or a steady rate: a feed that updates fastest in a quiet hour would otherwise fill its own average with the hour its spreads were narrowest.
One quote is credited with at most 1 minute of weight. Beyond that the time is recorded as missing coverage rather than credited to the last quote: the honest statement about a gap is that nothing was observed, not that the last value held.
Example: A feed quoting 0.2 pips for 50 minutes and 1.0 pips for 10 has a time-weighted average of 0.33 pips. A plain average of the received quotes could read close to 0.6 if the wider spell happened to be sampled more densely.
Market hours
Every quote is classified against a daylight-saving-aware calendar for its instrument, and only market-open quotes enter a published average. Scheduled closures (weekends, exchange holidays, the daily break) are left out of the average and of the coverage it is measured against, so a weekend never counts as missing data.
Gaps are measured on the market-open clock, not the wall clock, so the same threshold means the same thing for an index with an 8.5-hour cash session and a currency pair that trades around the clock.
What is excluded, and why
Exclusions are counted and reported beside every statistic. A rising exclusion rate is how a failing feed is noticed, so hiding it would remove the signal that protects the rest of the data.
- Quotes that stopped moving
- A quote republished unchanged by a feed that has stopped updating. It looks like a calm, tight market, which makes it the most dangerous thing that can enter an average.
- Closed-market quotes
- A price on a closed market is not a price anyone could trade.
- Crossed or negative quotes
- An ask below its bid is a fault in transport, not a market.
- Implausible values
- Spreads outside any defensible range for the instrument, which point to a malformed message rather than a market.
Zero and locked spreads
A quote where the bid equals the ask is a real observation and is kept, as long as the feed behind it is still moving. Locked quotes happen on thin books and around session changes, and how often they happen differs widely between firms, which is itself information about how a firm quotes.
What is excluded is a locked quote on a feed that has stopped updating. The test is whether the source quote still changes, not the spread value: dropping every zero spread would flatter the firms that lock most often.
Coverage and confidence
Coverage is the share of a period's market-open time for which we hold quotes. It is published beside every figure, because an average over 30% of a week describes something different from an average over 99% of it, and printed as one number the two look the same.
Each period is graded on three conditions that must all hold: coverage, the number of valid quotes, and the longest gap with no quotes. The gap matters apart from the ratio because a ratio hides shape: 85% coverage in one run with a four-hour hole is not the same evidence as 85% with brief jitter, and the hole is usually where the volatility went.
| Grade | Coverage | Valid quotes | Longest gap |
|---|---|---|---|
| High | 90% or more | 500 or more | under 15 minutes |
| Medium | 70% or more | 100 or more | under 1 hour |
| LowPublished with its grade, never ranked. | 40% or more | 30 or more | Any |
| Insufficient | The statistics are withheld; the counts are reported instead. | ||
When a figure is published
Everything collected is aggregated, including streams we don't trust, because those rollups are how a problem is diagnosed. What reaches this site is a much smaller set.
A statement about one firm needs a verified feed, at least 500 valid quotes, at least 70% market-open coverage, no gap without quotes longer than 4 hours, and a finished period. A period that fails any of these is shown as unavailable with the reason, never as a blank.
Rankings and who may be ranked
A comparison, whether a rank, the average prop firm or a "cheaper than", must clear everything a single-firm figure does and a higher bar, because a caveat does not survive a rank. A reader who sees "0.8 pips, low coverage" discounts it; a reader who sees "third cheapest" has already taken the ranking in.
Ranked firms need at least 80% market-open coverage and a medium or high grade. And firms are ranked only on the periods they shared: at least 24 matched buckets covering at least 60% of the window asked for.
That last rule prevents the most common comparison failure. A firm watched for 31% of a week, mostly in quiet hours, can look cheaper than one watched for 98% of it, not because it quoted better but because it was watched in easier conditions.
Quote precision
Firms do not all quote on the same price grid. A firm quoting an instrument to one decimal fewer than another can't be ranked against it: the difference would partly measure quoting convention rather than cost, and the coarser feed's spreads would cluster on multiples of its own tick.
Each feed's grid is measured from its quotes, not read from settings, and a ranking across firms is refused on an instrument where the grids differ. The firm's own statistics are still published in full, and the reason is stated where the ranking would have been.
What counts as a change
A movement is shown with a direction when it is larger than 5% and larger than the instrument's smallest quotable step: past that point it stops being rounding.
It becomes something we write about only above 15% and a larger floor in absolute terms, which is why a report can show an arrow on an instrument and say nothing about it in its summary.
Estimated trading cost
A cost combines an observed spread with the firm's commission schedule as it stood during the period. Schedules are dated, so a July figure is priced with July's commission and does not change when a firm updates its terms.
It is an estimate and labelled as one everywhere: no slippage, no swaps, no currency conversion cost, and not a fill. Where a firm's schedule has not been checked against its published terms, no cost is stated for that firm at all.
Which firms' commission schedules can back a published cost
From the firm's own published terms: Institutional Funding, FTMO, FundingPips, FundedNext
Every monitored firm's current schedule is citable.
Reporting periods
All times, buckets and period boundaries are UTC. Weeks are ISO weeks starting on Monday; months are calendar months. Reports cover finished periods only, because a figure labelled with an unfinished period would keep changing under a headline that didn't.
Rolling windows on firm pages (24 hours, 7 days, 30 days) are labelled as such. Where we hold less history than a window asks for, the window is shown as unavailable with the amount held, never quietly reported over a shorter span.
Revisions
Each report is generated from a fixed snapshot of the statistics. Late quotes, a corrected outage or a change to the rules can change what the data says about a past period; when that happens a new numbered revision is written rather than overwriting the one a published figure came from.
A revised report keeps its address, carries its revision number and date, and says what changed.
Methodology versions
They move independently because they answer different questions: which quotes were admitted, how admitted quotes became a number, and how a spread and a commission schedule became a dollar figure.
The current versions are 4.1.1. A figure published under an earlier version can still name the rules that produced it, which is what makes a citation from last year checkable this year.
Independence
Some links to firms may be paid, and a paid link is labelled where it appears. No statistic on this site is affected: rankings come from observed data under the rules on this page, and no firm can pay to be included, left out or moved within one.
A firm that believes it is misrepresented can check its own figures against this page and contact us with the period and instrument. Corrections are published as revisions.