Every price and every derived figure on this site comes from our own market-data feed, not from a third-party data vendor. This page sets out exactly what that means, how each figure is calculated, and β€” more importantly β€” what we decline to publish and why.

If you find a number here you believe is wrong, please tell us. Corrections are published in full on our corrections page.

Where the data comes from

We receive a live market feed and record it ourselves. Nothing on this site is resold or rebadged from a data vendor.

We currently track 83 instruments: 51 foreign-exchange pairs, 16 cryptocurrencies, 10 stock indices, 4 precious metals and 2 energy contracts. An instrument appears on the site only if our feed actually delivers it. One the provider lists but never quotes gets no page β€” if we do not have a real price, the page does not exist.

What a price on this site is

Prices quoted in articles are daily closes, taken from the most recently completed session at the time of writing. They are not live quotes.

This matters, and we say so on every article that quotes one. If you open a chart now you will usually see a different number. That difference is the market having moved since the close β€” not a discrepancy between our data and reality.

Live prices, where shown, are labelled as such and come from the same feed.

How performance figures are calculated

Period returns are measured over calendar days, not a count of trading sessions:

PeriodWindow
Week7 days
Month30 days
Quarter91 days
Year365 days
52-week range365 days

This is deliberate and it was not always so. A “year” measured as 252 trading sessions is a full year only for markets that close at weekends; for something trading seven days a week it is about 36 weeks. That error reached publication and was corrected β€” the affected articles carry a note, and they are listed on our corrections page.

How correlations are calculated

The “moves with” and “moves against” figures on an instrument page are measured from our own daily closes. Each one is the correlation of daily returns over the last 250 sessions, recomputed across every pair we carry each time the site is rebuilt. A value of +1 means two markets moved together; βˆ’1 means they moved opposite; 0 means the relationship is noise.

Three rules decide what actually appears:

  • Nothing weaker than 0.50 is listed. Measured across all pairs we carry, the median is about 0.30 β€” so a lower threshold would show half of every possible pairing as a “correlation”, including markets related by nothing but coincidence. Instruments with no partner above the threshold show no correlations at all, which is the honest answer.
  • At most four on each side, strongest first. The list is the notable relationships, not a ranking of everything.
  • Nothing is shown if we cannot vouch for it. We need at least 60 sessions where both markets traded, and the figures carry the date they were measured. If the calculation ever stops running, the widget removes itself rather than leaving old numbers on the page.

Correlation describes the past and is regime-dependent: two markets bound together for a year can come apart in a week, and a high figure is not a forecast. 76 of our instruments currently publish one.

This section replaced a hand-written table, and the reason is worth stating plainly. Until 11 September 2026 these figures were typed into a file by hand and never recalculated. When we finally measured them against our own price history, 27 pairs had the opposite sign β€” they told readers two markets moved apart where our data showed them moving together. The widget was removed on 10 September and only returned once it could be computed. See our corrections page.

What we refuse to publish

This is the part most data providers do not write down.

A figure whose window we did not observe throughout is withheld, not estimated. If our data has a gap inside the period a number would cover, we publish nothing rather than a figure that looks complete. We do not interpolate across gaps.

A price series we cannot trust is not published at all. Where a series is internally inconsistent rather than merely containing one bad tick, it is excluded entirely β€” from the charts, the rates tables and the newsroom’s source data together, rather than being quietly repaired.

An isolated implausible tick is repaired, not deleted. Where a single bar carries a high or low far outside the body of its own session, that extreme is disregarded and the bar’s opening and closing prices are used instead.

An instrument that stops trading is withdrawn. If a daily series stops advancing for more than 2.5 days, we stop publishing a price for it. A frozen price is worse than no price: it looks current, and because a frozen change never decays it will keep appearing in any list ranked by biggest move. We learned this the hard way β€” see the AXSUSD entry on our corrections page.

How we check ourselves

Our own feed being our own is a strength and a risk: there is no second opinion built in. So we compare against sources outside the building.

  • Prices are checked against independent public sources β€” CoinGecko for cryptocurrencies and the European Central Bank’s daily reference rates for foreign exchange. A divergence beyond 5% is treated as a fault in our data and investigated. The tolerance is deliberately wide: it exists to catch scaling errors, swapped symbols and wrong units, not to police ordinary differences between two feeds sampled at different moments.
  • Annual return figures are checked against an independently computed series, with a tolerance of 5 percentage points.
  • Every instrument is checked against its own asset class. A symbol still quoting the same price more than 60 minutes after the rest of its class has moved on is treated as having dropped out of the feed. A closed market stops together; a dead instrument stops alone.

These checks run continuously, not on request.

How our coverage is produced

Our market coverage is generated automatically by our own newsroom system from the data described above, and every automated article says so on the page. Editorial responsibility for its scope, its sourcing rules and the standards it must meet rests with a named person. We never attach a human name to machine-written work.

We publish no trading signals, recommendations, price targets or forecasts. Our coverage describes what the data showed.

Full detail is in our Editorial Standards.

When we get it wrong

Factual errors are corrected with a note on the article itself, and automated coverage is corrected exactly as any other coverage would be. We do not silently edit the original figures: the note records what was published and what was correct, so the error remains visible rather than disappearing.

Every correction we have issued is listed on our corrections page.