Report · Energy, climate & carbon markets

What a carbon credit actually costs

The listed price is not the price. The brochure is not the integrity. And the trade history, which is public, is the number nobody looks at. A sourcing engine built from public venues shows what a buyer should actually expect to pay for a credible tonne.

Storm clouds over a wind farm

Corporate carbon procurement has a sourcing problem with an integrity problem attached, and the two are usually handled by different people with different spreadsheets. The buyer wants the cheapest tonne that will survive scrutiny. The sustainability lead wants evidence that it will. Neither has a screen that shows the price and the reasons together.

We built one. The engine reads every venue it can reach without an account, fills a buyer’s order at the lowest all-in price, grades every project from public signals, shows what matching credit actually sold for, and prices each requirement in the order. This report describes what we learned about the market by building it.

The listed price is not the price

On the largest open marketplace, the all-in price a buyer pays is materially above the seller’s listed price once fees are applied. A buyer comparing a listing there with an on-chain sell order on a different venue is comparing two different kinds of number. The engine normalises everything to the price a buyer actually pays, and the difference between the cheapest listing and the cheapest fill is often not the one the listings suggest.

Pool tokens complicate this further. A tokenised pool of credits can be quoted executably at several order sizes, so the engine can show real slippage, but a buyer who purchases a pool token has bought a token, not a chosen credit. Redeeming and retiring one costs extra and lands on whichever credit the pool gives. The engine shows pool tokens only when the buyer asks for them and says plainly what they are.

The brochure is not the integrity

Every project has a page that says it is high-quality. Few buyers have time to check the registry. The signals that matter are public and dated: the integrity council’s decisions on methodologies, the academic registry labels that flag over-crediting findings, the registry’s own project archive with its issuance and retirement history, and the peer-reviewed literature on specific project types.

The engine grades each listed project from A to E from these signals and shows every signal beside the grade, so a buyer can disagree with the grade and still use the evidence. Two things were striking. First, a meaningful share of what is cheapest on the open venues sits in the lowest grades, which is not a coincidence. Second, the venues themselves rarely surface any of this, so a buyer with a budget and a deadline will naturally buy the wrong thing.

For buyers with a compliance obligation, such as airlines under the international aviation scheme, the engine can filter to credits carrying the labels those schemes recognise, and the filter changes the price materially.

The trade history is public and nobody reads it

Executed trades are visible on the open marketplace’s activity feed and in the on-chain history of the tokenised venues. They are the only hard evidence of what matching credit is worth. A listing is an ask; a trade is a price.

The engine pulls trades of credit matching the buyer’s specification and shows them against today’s listings. In the categories we examined, trades cluster below the current asks by a margin that a buyer who only looked at listings would never see. That margin is the negotiating room.

Every requirement has a price

A buyer’s order has rules: a vintage no older than a given year, a methodology, a country, a minimum grade. Each rule costs something and nobody usually knows how much. The engine re-runs the order with one rule loosened at a time and shows the price of each. A buyer discovers that the vintage rule is costing twice what the geography rule costs, and decides with numbers rather than instinct whether the rule is worth it.

Who might accept less

Projects sit on unsold credit, and the registry archive shows which ones and for how long. The engine ranks holders of unsold credit by a pressure-to-sell score built from issuance history, unsold volume and time, shows each holder’s grade and labels, and can filter to holders of credits carrying the recognised labels. These are the sellers to approach, and the engine drafts the quote request. Nothing is sent except by the buyer.

To illustrate the idea, the engine also runs a simulated reverse auction in which pressured sellers bid below the listed price. The sellers in the simulation are fictional and the simulation says so. The point is to show what a buyer with this information could do.

What this means for a buyer

Three practical conclusions.

  1. Price in all-in terms, and treat listings as asks. The trade history is the price.
  2. Grade before you buy, from registry evidence, and keep the evidence. A grade without its signals is a brochure with a letter on it.
  3. Price your own requirements. The rule that feels essential may be the one costing the most, and knowing that is the beginning of a negotiation.

What we did not do

The engine does not buy. It does not send a quote request without a person pressing the button. It reads one retail shop only if the buyer accepts that shop’s terms, which forbid commercial use, so by default it does not. And it treats the venues’ own data as data: every search shows which venue was read live and which fell back to a dated snapshot.

The honest limits are part of the product. A buyer who knows that the venue coverage is “every keyless venue we could read” knows what the engine cannot see, and can go and ask a broker about the rest.


About the authors. Neugent Consulting designs and builds AI systems for operators. The examples in this piece come from client work; clients are anonymised and details are simplified.

Talk to the people who built it

Every piece we publish describes a system we have built. We can show it running.