A spot price describes a commodity for prompt delivery. A futures price belongs to a contract with a specified maturity and settlement rules. The two can differ without either being wrong. Before comparing gold or oil prices, match the instrument, delivery terms, units and observation time.
You open a gold price dashboard, then check a gold futures quote. The numbers are close, but they do not match. An oil headline creates the same problem: it says crude rose, while your chart barely moved. Was the feed delayed? Was a calculation wrong? Sometimes. But first check whether the two screens describe the same thing.
This guide explains the difference between spot and futures prices, how to calculate their spread, and what contango, backwardation and contract rollovers mean for a price chart. No programming is needed.
Try the reference-data side yourself: Create a free SiftingIO account, confirm your email and generate an API key in your dashboard. You can inspect supported commodity series for evaluation and internal non-commercial use within the Free plan and usage terms. SiftingIO's standard commodity feed provides aggregated spot/reference series, not official expiry-specific futures. All calculations below can also be followed without an account.
Every worked price in this article is invented for explanation. The examples are not current market quotes, forecasts or trading recommendations.
Spot price vs futures price at a glance#
A spot transaction concerns prompt delivery under the relevant market's conventions. “Spot” does not mean a tanker arrives or a gold bar changes hands at the instant a screen updates. The EIA distinguishes spot cargo transactions from contracts arranged for future delivery in its explanation of oil prices.
A futures quote concerns a standardised exchange-traded contract. Its specification determines what the contract represents and how it settles. The Reserve Bank of Australia's discussion of commodity markets explains this distinction between cash prices and standardised futures contracts.
| Observation | What the number describes | Information needed before comparison |
|---|---|---|
| Physical cash or spot quote | A commodity under specified prompt-delivery terms | Grade, location, delivery window, unit and price side |
| Aggregated reference price | A provider's calculated view of a defined series | Methodology, symbol definition, timestamp and field |
| Dated futures quote | One contract maturity | Exchange, contract identifier, delivery month and price field |
| Continuous futures chart | A series constructed by linking contracts | Contract-selection rule, rollover dates and adjustment method |
An instrument name is only the beginning of its identity. “Gold” does not identify a delivery month. “Oil” does not identify a benchmark. And a symbol without an expiry does not establish that the data contains a futures contract.
For a dashboard, put this distinction next to the price rather than burying it in a help page. A label such as “Gold reference price, USD per troy ounce” tells a reader more than “Gold live.” A dated futures panel should identify its actual contract and maturity.
Why gold futures can trade above the spot gold price#
Holding a commodity until a later delivery date can involve financing, storage and insurance. Possession of available inventory can also have a benefit, often called convenience yield. These effects help explain why a futures price need not equal today's cash price. CME's guide to contango and backwardation describes these relationships.
Treat that as an explanation of possible differences, not a universal calculator. Actual contract terms, inventory conditions and market constraints matter. Adding a flat storage allowance to an unrelated reference quote does not produce an official futures valuation.
Consider a deliberately simplified comparison: a matched cash gold price is $3,000 per troy ounce and a named three-month gold future is $3,030 per troy ounce. Both observations were taken at the same time. The future is $30 higher per ounce. That is a difference between two prices observed today, not evidence that spot gold has already risen $30.
Contract size is a separate issue. CME's GC gold futures overview specifies 100 troy ounces for that contract. A displayed quote of $3,030 per ounce is therefore not a $3,030 price for the entire contract. Other gold products can have different specifications.
Likewise, comparing a per-ounce reference quote with a jeweller's per-gram retail price introduces another layer of differences. Our XAUUSD guide to grams, purity and currency conversion covers the unit calculation. Converting units is necessary, but it does not remove fabrication charges or make retail and wholesale delivery terms identical.
How to calculate the spot–futures spread without reversing its meaning#
The word basis needs an explicit subtraction rule. The CFTC Futures Glossary describes the usual cash-market convention as cash price minus futures price. Some screens use the opposite direction for a displayed futures premium. Write the formula beside the result.
For this article:
Cash basis = cash price − named futures price
Futures premium = named futures price − cash price
Using the illustrative gold observations:
| Calculation | Arithmetic | Result |
|---|---|---|
| Cash basis | $3,000 − $3,030 | −$30 per troy ounce |
| Futures premium | $3,030 − $3,000 | +$30 per troy ounce |
| Premium relative to cash | ($3,030 − $3,000) ÷ $3,000 × 100 | +1.00% |
These results describe the same pair of prices. The signs differ because the subtraction directions differ. A negative cash basis here means cash is below the named future; it does not mean gold has a negative price.
Now change only the cash observation to $3,045 while keeping the future at $3,030. The cash basis becomes +$15. The futures premium becomes −$15. A report that changes from “basis” to “premium” halfway through its history can therefore reverse the apparent direction without any corresponding market event.
The 1.00% premium in the first example applies to the stated three-month comparison. It is not automatically an annual return, borrowing rate or achievable profit. Annualising it would require further assumptions about the exact time interval and compounding. A real transaction would introduce additional costs and constraints.
One more boundary matters: subtracting an aggregated reference price from a futures quote gives a reference-to-futures spread. It is useful for observing a relationship, but calling it a deliverable cash basis requires evidence that the reference matches the contract's physical and settlement definitions.
Contango vs backwardation: read the curve across maturities#
Contango commonly describes an upward-sloping futures curve, with later maturities priced above nearer ones. Backwardation describes the reverse relationship. The EIA's futures-market explainer discusses these curve shapes. A futures premium to spot is related to this discussion, but one spot/future pair is not a complete maturity curve. Real curves can also change direction between months.
Here are two separate, invented oil-market snapshots. Within each snapshot, all contracts share a benchmark and observation time; only maturity changes.
| Contract maturity | Snapshot A: upward-sloping curve | Snapshot B: downward-sloping curve |
|---|---|---|
| Nearest listed month | $72 per barrel | $76 per barrel |
| Following month | $74 per barrel | $74 per barrel |
| Third month | $75 per barrel | $73 per barrel |
Snapshot A illustrates contango across these three maturities. Snapshot B illustrates backwardation. Neither column is a sequence of prices observed over three months. Each column is a cross-section observed at one moment.
That distinction changes how a chart should be read. The third row in Snapshot A does not say that the nearest contract will rise from $72 to $75. It says a different, later contract is priced at $75 now. An axis labelled “contract maturity” should not be read as an observed future price path.
The same caution applies to explanations based on supply conditions. Curve shape can inform an analysis, but it does not identify one unique cause on its own. Check inventories, delivery constraints and other relevant evidence before attaching a market narrative to the shape.
Is the futures price a forecast of the future spot price?#
It can contain useful information about expectations. It is not a guaranteed prediction, and treating it as an unbiased estimate requires evidence.
A Federal Reserve study published in September 2026 found useful forecasting information in commodity futures, while also finding that futures prices generally did not produce unbiased forecasts. The authors discuss hedging, inventories, carrying costs and deferred-contract liquidity among the reasons the relationship is more complicated.
For an analyst, the practical wording is straightforward: “Today's December futures price is $X.” That sentence is observable and dated. “The market guarantees a December spot price of $X” makes a claim the quote cannot support.
For a budget, keep a futures-curve input separate from your scenario assumptions. Record when the curve was observed and which maturities were used. If you subsequently add a stress case, label it as an assumption rather than presenting the resulting number as a quoted market price.
Why oil prices need a benchmark, location and month#
Before studying the spot–futures difference, check whether both oil prices concern the same benchmark. A Brent observation and a WTI observation are not a matched cash/futures pair simply because both are in US dollars per barrel.
For example, CME's WTI product overview identifies the CL contract with light sweet crude at Cushing, Oklahoma, and a contract size of 1,000 barrels. The delivery specification belongs to the instrument's identity, alongside its maturity.
A useful oil-price record therefore preserves more than “USD/bbl.” Keep the benchmark, series type, location or reference definition, contract month where applicable, price field and timestamp. If any of these are unknown, mark the comparison as incomplete.
For SiftingIO's supported reference series, our Brent and WTI data guide explains the UKOUSD and WTIUSD symbols. Those provider symbols should not be silently relabelled as a particular exchange contract. If the question concerns a named futures expiry, obtain that expiry's data and specification separately.
Why a continuous futures chart can jump at rollover#
A continuous futures series joins observations from different contracts. Its construction matters when calculating historical changes. A simple unadjusted join can insert a visible gap even when neither individual contract moves.
Suppose a chart switches from Contract A to Contract B at a scheduled rollover. In this invented example, A stays at $72 and B stays at $74 across the switch.
| Observation | Contract A price | Contract B price | Contract selected by chart | Displayed level |
|---|---|---|---|---|
| Just before switch | $72 | $74 | A | $72 |
| Just after switch | $72 | $74 | B | $74 |
The chart's displayed change is:
($74 ÷ $72 − 1) × 100 = 2.78%
Yet A did not rise, and B did not rise. The apparent move comes from switching which contract supplies the displayed level. A reader who treats the joined chart as an unchanged instrument could report a price rally that the example does not contain.
This 2.78% is a concatenation effect, not a calculation of an investor's profit, loss or roll yield. Those require an actual position and a defined return methodology.
Before using a continuous series, establish how the provider selects contracts, when it switches, and whether earlier observations are adjusted. Ask whether the dataset is intended to preserve historical quoted levels, a smoother analytical series, or a particular return calculation. These are different objectives.
For a reproducible comparison, retain the individual contract identifier with the observation. If a vendor changes its rollover method, a saved series label alone may not explain why a historical chart changed. Keep the methodology version or retrieval notes with the exported file.
A practical checklist for reconciling two commodity prices#
Start with a single row from each source. Avoid comparing entire charts until those rows are understood. A chart can hide a mismatched timestamp, unit or maturity behind a familiar commodity name.
| Check | What to record | Mistake this prevents |
|---|---|---|
| Instrument type | Physical cash, reference series, dated future or constructed series | Treating different observations as the same asset |
| Specification | Benchmark, grade, location and delivery terms | Calling a specification difference a feed error |
| Maturity | Exact contract month or “not applicable” | Comparing different points on a futures curve |
| Unit and currency | For example, USD per troy ounce or USD per barrel | Comparing a unit price with a whole-contract value |
| Price field | Bid, ask, last, midpoint, bar close or settlement | Subtracting fields that answer different questions |
| Observation time | Timestamp, timezone, session and delay | Mistaking an older observation for a simultaneous quote |
| Series construction | Aggregation, rollover and adjustment rules where relevant | Reading a methodology change as a market move |
Then write a one-sentence comparison record. For the gold example: “At observation time T, the matched cash price was $3,000 per ounce and the named three-month future was $3,030, giving a cash-minus-futures basis of −$30.”
If the cash input was actually a reference series, say so in that sentence. If a futures input was yesterday's settlement, do not describe it as a simultaneous live quote. A gap with unknown inputs is an unresolved comparison, not yet proof that one provider is inaccurate.
Currency conversion deserves the same discipline. If one observation is in dollars and another in euros, use a documented FX direction and a suitable observation time. SiftingIO's forex data product is a separate source of currency observations; a currency conversion still cannot correct a delivery-grade or contract-month mismatch.
Finally, preserve the original observations alongside any converted values. That makes it possible to distinguish a revised source price from a changed conversion rate or formula later.
Using SiftingIO commodity data in this workflow#
SiftingIO's commodity market data API provides aggregated spot/reference series, with REST snapshots, historical bars and WebSocket updates. The standard feed is not an official expiry-specific futures feed. Confirm availability and licensing separately if your project needs individual expiries, continuous futures, term structures or roll calendars.
Use a reference series where that definition matches the question, then keep any separately sourced futures observations clearly identified. Our market data methodology explains the reference-data approach.
The commodity historical data documentation also makes two distinctions worth preserving in an export: t identifies the UTC bar-open time, while v counts price updates. That count is not barrels, ounces, futures contracts or exchange trading volume. A response-production timestamp should not replace the observation time of each bar.
For a spreadsheet review, the Market Data Export tool offers a CSV/Excel workflow for supported series within its available access limits. Keep a separate notes sheet containing the source, series definition, unit, time convention and calculation rule. Record separately obtained contract metadata there too; do not invent an expiry for a reference series that has none.
The first useful output is a comparison someone else can reproduce: identifiable prices, declared assumptions and a spread whose sign has an unambiguous meaning.
Questions that come up when comparing spot and futures prices#
Which price should a commodity dashboard display?#
Display the series that answers the user's question and label it precisely. A reference-price monitor and a dated-contract monitor have different purposes. If both appear, give each its own instrument definition and timestamp instead of presenting one unexplained “commodity price.”
Does a higher gold futures price mean spot gold must rise?#
No. It establishes a current relationship between the chosen cash or reference observation and a particular future. It does not determine the later spot outcome. Check the maturity and comparison convention before interpreting the premium.
Can I calculate a historical return from any continuous oil chart?#
Not reliably without understanding its construction. Contract switches and adjustments can affect the calculation. For a return study, use a dataset and methodology designed for that purpose, retain the roll rules, and distinguish changes in quoted levels from returns on an actual position.
Is a spot–futures price gap automatically an arbitrage opportunity?#
No. A displayed gap does not establish that you can execute both prices or meet the funding, delivery and other requirements. First verify that the instruments and observations are comparable. This guide explains price interpretation, not an executable trading strategy.



