Data & Pricing Policy
Last updated 30 August 2026
A price is only worth something if you know where it came from. This page says exactly that, for every number on the site: which kind of observation produced it, whether we are allowed to show it to you, and what it may and may not be used for. None of it is aspiration — each rule below is a line of code, and the section says which.
01Five kinds of price, and only five
Every price row carries a source string, and that string decides everything that happens to it afterwards. There are five kinds.
| Kind | What it is | Shown publicly |
|---|---|---|
| supplier_submission | A price a supplier sent us directly, for their own port. | Yes |
| transacted | Derived from quotes actually received against requests raised here, and from stems that closed. | Yes |
| derived | Computed from public benchmarks. | Yes |
| licensed | A commercial market-data feed we pay for and are licensed to receive. | Only with display rights |
| manual | Entered by hand by our own staff. | Yes |
Licensed data is the one that is conditional. A standard market-data plan grants you the right to use a feed, not automatically the right to republish it, so the code treats public display as off by default and switches it on only when an environment flag says display rights exist. That flag is currently set: we hold the rights for the feed we publish, and every table it appears in credits the provider by name.
02The gate is mechanical, not editorial
Nobody decides case by case whether a price may go on a public page. The rule is a function. It reads the source string, resolves the kind, and returns whether the row is publishable along with the badge it must carry if it is not.
This matters more than a policy would. A rule that a person has to remember is a rule that gets forgotten under deadline; a rule that runs on every render cannot be. Demonstration data — the fabricated numbers that let the interface be built before any feed existed — is stopped by the same function, and is labelled unmistakably wherever it does appear.
03Our own assessment
Separate from any feed, we publish an assessment of our own at ports where we have enough of our own observations. It is built only from what we see here: prices suppliers submit to us, quotes received against real requests, and stems that closed. No third-party assessment is an input to it, ever — a number derived from someone else’s number is their number.
The arithmetic is fixed and public:
- Nothing is published from fewer than three observations, or from fewer than two distinct sources, so that no single participant can set a price.
- Observations more than 15% from the median are discarded before the average is taken.
- What remains is weighted by how firm it is — a closed stem counts three, a received quote two, a submitted list price one — and then by how recent it is and by parcel size.
- The assessment is called high confidence only with at least eight surviving observations across four or more sources, including hard data, with the freshest inside 24 hours. Otherwise it says so.
Where the threshold is not met, the page states the reason rather than hiding the section. “Only one observation in the last 72 hours” is more useful to you than a confident-looking number built on one.
04What happens to a price a supplier sends us
Submissions are screened before they can appear. The check compares the price against the median for the same grade across other ports and against the previous price at that port. A submission scoring below the threshold publishes unattended; anything unusual is held for a person to look at, with the reason attached — how far from the cross-port median it sits, or how large a jump it is from the last price at that berth.
Early submissions at a port with too few peers to screen against are all read by a person. The first prices set the baseline everything afterwards is measured against, so they do not go live unattended.
05Indicative, firm, transacted
These three words are not interchangeable and the site uses them precisely.
Indicative means an observation of roughly where a market sat, on a stated delivery basis. It is not an offer, it is not addressed to you, and it does not account for your quantity, your window, your specification, your payment terms or your credit standing. Every public price on this site is indicative unless it says otherwise.
Firm means a supplier quoted it, to a named buyer, with a stated validity and stated commercial terms. Only a firm quote is something you can act on.
Transacted means a stem closed at that number. It is the strongest observation there is, and over time it is the part of this dataset that cannot be obtained anywhere else.
The gap between an indicative figure and an all-in delivered cost is routinely $10 to $40 a tonne once barge fees, quantity, payment terms and credit are folded in. That gap is the reason the request-for-quote side of this product exists.
06Delivery basis and units
A delivered price and an ex-wharf price are not comparable, and the difference is large enough to reverse which port is cheaper. Every price row records its basis — delivered, ex-wharf or FOB — and comparisons are made only within a basis.
Commercial prices are quoted in US dollars per metric tonne. Yacht prices are commonly quoted per litre, and conversion between the two depends on the density of the specific product, so any per-litre figure states the density used. Currency conversion uses live European Central Bank reference rates rather than a rate typed into the code; a stale rate on a large lift is worth thousands.
07Reference data and attribution
Port identifiers, names and coordinates come from the United Nations Code for Trade and Transport Locations (UN/LOCODE), published by UNECE. Every code on this site was checked against that list and kept only where the entry is classified as a seaport.
Emission control area and EU Emissions Trading System flags are derived by us from each port’s position and country, against the schemes in force. They reflect the Baltic, North Sea and Channel, North American, US Caribbean and Mediterranean sulphur ECAs, the last of these since 1 May 2025. The Norwegian Sea ECA is adopted but does not take effect until 2027 and is therefore not applied. These flags are a convenience, not legal advice; the applicable regime for your voyage is a matter for you and your class or flag advisers.
EU carbon allowance prices used in ETS calculations come from the same licensed feed and are dated on screen.
08What we do not do
We do not scrape other price publishers. Where a competitor’s assessment is behind a subscription or a terms-of-use restriction, we do not take it, and no part of this site is built on one.
We do not adjust a published number to make a saving look larger, and we do not rank a supplier higher because of a commercial relationship. Where a commission is contractually agreed with a supplier it is disclosed in the interface, on the quote it applies to.
We do not present a saving without the assumptions behind it. Every figure the true-cost engine produces is returned together with the deviation, charter hire, port time, carbon and payment-term assumptions used to reach it, and confidence falls as the estimated share of those inputs rises.
09Using our data
You may read the prices on this site, quote a figure in your own correspondence with attribution to us, and use the open API within its stated limits. You may not redistribute the licensed feed as a dataset, and the API withholds rows whose source does not permit redistribution — the same gate as the public pages.
Nothing here is a recommendation to buy or sell, and none of it is financial advice.
10Corrections
If a price on this site is wrong, tell us and we will check it against the source and correct it. Write to data@bunkerfuelprices.com with the port, grade and date. Suppliers who want their own prices shown, or removed, should use the same address.
Questions about anything on this page: legal@bunkerfuelprices.com.