The AI That Reads Fuel Dockets, Utility Bills and Supplier Invoices for Carbon Accounting
Most carbon accounting tools stop at spend-based estimates because they cannot read the source document. Carbonly's AI document engine extracts 342.7 litres of diesel from an Ampol docket, 18,432 kWh from an AGL invoice, 22.4 tonnes of concrete from a Boral delivery, then matches it with confidence scoring an auditor can walk through.
The generic "carbon accounting software" category has a ceiling and it's called spend-based estimation. Pull a dollar figure from the finance system. Multiply by an EEIO factor from a national supply-use table. Book the number. It scales, it's cheap, and it's increasingly getting kicked back by auditors when activity data was available and simply not used.
The real work in Australian carbon accounting is reading the physical activity data off the source document. 342.7 litres of diesel from an Ampol fuel docket. 18,432 kWh from an AGL electricity invoice. 22.4 tonnes of 40 MPa concrete from a Boral delivery note. That's the layer AASB S2 assurance walks toward and it's the layer that most carbon accounting tools quietly refuse to do because it's genuinely hard.
Carbonly's AI document engine was built for that exact job. This post is what "AI document processing for carbon accounting" actually means when you strip out the marketing.
What AI Document Processing Actually Means Here
It doesn't mean a chatbot. It doesn't mean summarising a PDF. It means turning an unstructured supplier document into a structured emission record: quantity, unit, material, supplier, date, site, scope, emission factor, factor version, CO2-e result, and a confidence score attached to every one of those fields.
Eight input formats are handled from day one:
- Native PDF invoices with selectable text
- Scanned or image-only PDF invoices
- Photos of paper dockets from a phone camera (JPEG, PNG, HEIC)
- CSV and TSV data extracts
- Excel workbooks with multiple sheets and merged headers
- Word documents (docx)
- PowerPoint decks that contain embedded tables
- Rich Text (RTF) exports from older finance systems
The last three matter more than they look. A surprising number of supplier statements arrive as Word attachments or Excel workbooks with three sheets and a summary tab. If your ingestion pipeline only accepts clean PDFs, you're back to manual data entry for the messy 30% and that 30% is where the audit questions live.
The Five-Tier Material Matching Cascade
Extracting "diesel, 342.7 L" from a fuel docket is only half the job. The other half is deciding which emission factor to apply and being able to prove that decision two years later when the auditor arrives. Carbonly runs every extracted line item through a five-tier matching cascade in this fixed order:
- Supplier product code: if this exact Ampol product code has been matched before in this workspace, use the same material and factor.
- NGA 2025 factor library: the National Greenhouse Accounts factors published by DCCEEW, versioned by year, state, and scope split. For diesel this is 2.7 kg CO2-e/L Scope 1 combustion plus a 0.2 kg CO2-e/L Scope 3 upstream factor.
- Tenant custom library: factors your Carbon Lead has uploaded or authored, including internal emission factors, negotiated PPA-backed electricity, or supplier-provided figures.
- EPD import: Environmental Product Declarations from EPD Australasia and equivalent registries, with product-specific embodied carbon numbers for materials like cement, structural steel, and reinforcement bar.
- AI proposal: when nothing above matches, the AI proposes the closest factor and attaches a confidence score. The reviewer confirms or overrides. Every confirmation feeds the learning loop.
The confidence score matters because assurance walk-throughs for AASB S2 limited assurance don't accept "the AI got it right." They accept "the AI proposed this factor at 0.87 confidence, the reviewer confirmed on this date, and the confirmation has held for the next 47 invoices from the same supplier." That trail is what a defensible Basis of Preparation document is made of. We wrote about this in ASRS Assurance Requirements.
Per-Supplier Extraction Templates
Australian supplier invoices are surprisingly consistent within a supplier, and surprisingly different between suppliers. An Ampol fuel docket and a BP Australia fuel docket both tell you litres of diesel, but the litres field is in a different position, the site code is formatted differently, and the ABN is only on one of them.
Rather than force every supplier through a generic OCR pass, the extraction engine derives a supplier-specific template from the first five sample invoices you upload. After that, every subsequent invoice from that supplier extracts in one pass with the correct field mapping.
Templates the engine has been designed to auto-derive:
- Fuel dockets: Ampol, BP Australia, Shell / Viva Energy, 7-Eleven, United Petroleum, Puma Energy
- Electricity retailers: AGL, Origin Energy, EnergyAustralia, Alinta, Momentum, Powershop
- Gas retailers: Origin Gas, AGL Gas, EnergyAustralia Gas
- Concrete and building materials: Boral, Holcim, Hanson, Adbri
- Steel and reinforcement: InfraBuild, BlueScope, OneSteel Reinforcing
- Waste: Cleanaway, Veolia, Suez, Bingo Industries
The template also captures the messy bits: multi-line ship-to addresses, combined billing periods, credit adjustments, and tax component splits. This is the plumbing that determines whether your Scope 1 diesel number matches your finance system reconciliation.
Odometer Reads, Meter Reads, Tank Dips
Not every emission activity arrives as an invoice. A large portion of NGER-relevant activity data is a meter reading or an odometer number typed into a CSV by a site foreman.
The engine ingests a fleet odometer CSV (vehicle rego, date, reading) and auto-computes the kilometres driven per vehicle as the delta from the previous reading. It then applies the correct mobile combustion factor based on vehicle class (heavy rigid, articulated, light commercial) and fuel type. The same pattern works for kWh meter reads on standalone sub-meters, gas meter reads across multi-tenant sites, and tank dip records for on-site diesel storage.
This is the workflow behind tracking fleet emissions without perfect fuel card data. Odometer-and-fuel-consumption cross-checks are also how the Data Health Agent catches ghost vehicles and stolen-card fuel purchases.
Custom Formulas for the Long Tail
Every large operator has a category of activity that doesn't fit a standard invoice or a standard meter. Refrigerant top-ups logged in a maintenance spreadsheet. Concrete embodied carbon derived from cubic metres times a mix-design intensity. Business travel derived from an Amadeus GDS export.
Carbonly provides a sandboxed formula field on any material class. The Carbon Lead writes an arithmetic expression that combines extracted fields, uploaded literals, prior readings, and library constants. The expression is stored, versioned, and applied every time the pattern re-occurs. If DCCEEW republishes the underlying factor, the formula re-executes against the new version and the change is captured in the audit trail. AR5 versus AR6 GWP toggling is handled at report render time so historical periods stay consistent while the current period uses the required standard. That gap between NGER (AR5) and AASB S2 (AR6) is covered in AR5 vs AR6 GWP for Australian Reporters.
The Data Health Agent
Extraction accuracy is necessary but not sufficient. You also need a background agent watching for the things that break carbon numbers silently:
- Outliers: a fuel consumption figure ten times the site's rolling average
- Missing mappings: an extracted line item that no tier of the cascade could match
- Unit-conversion mismatches: kL invoiced but L expected, or GJ recorded against a kWh factor
- Factor version drift: an invoice dated in the new reporting year still hitting last year's NGA factor
- Materials outside the library that recur often enough to warrant a permanent entry
The Data Health Agent runs continuously across the emission ledger. Issues surface as tickets on the reviewer's queue, not as post-hoc surprises during quarter close.
Trust Graduation
The other thing that kills sustainability team capacity is re-confirming the same match every month. Once a supplier-material-factor combination has been reviewer-confirmed enough times, and the confidence has held, the Trust Graduation Agent graduates that specific mapping to auto-confirm. The next fifty invoices from that supplier for that material book straight to the ledger.
Graduation is per-material, not per-supplier, and it's reversible. A single override anywhere in the ledger drops the mapping back to reviewer-confirm status until it re-earns trust. This is the mechanism that takes a quarterly review from 100 hours down to 15, without losing the audit trail. We walked through it in more depth in AI Graduated Trust for Carbon Reporting.
Match Provenance on Every Record
Every emission record in Carbonly carries a Match Provenance badge showing exactly where the match came from. Eight discrete states:
- Reviewer-confirmed (this specific record)
- Tenant alias (previously confirmed for this workspace)
- Supplier template (this supplier's derived extraction template)
- Org instruction (a written policy the Carbon Lead has set)
- Global NGA 2025 library
- Global EPD registry
- Calculation rule (custom formula)
- AI proposal (unconfirmed, awaiting reviewer)
The badge is auditor-visible from the record detail view. An auditor doing a walk-through can filter the ledger to "state 8 only" and see every record where the AI proposal is still unconfirmed. That's what limited assurance actually looks like in practice: not "prove nothing is wrong" but "prove you can see what needs a second look."
Learning Velocity
Every material in the workspace has a per-material accuracy statistic and a 7-day sparkline. "Diesel, Ampol: 94% match accuracy over 50 attempts, trending up." That number is the thing the Carbon Lead watches, because it predicts how much manual work the team will have to do next week. When accuracy rises, confirmations compound. When accuracy drops, something changed in the supplier's format and the template needs a refresh.
We're honest that this is a compound-interest system rather than a magic one. The first month is heavier than an established manual process. Month three is lighter. Month six is where the maths of the Tier 1 pilot came out.
How the Reviewer Gets to the Data
Web UI is the default for the human reviewer. Beyond that:
- Per-project email ingestion: every project has its own ingestion address. Site managers forward dockets from the field. The AI attributes the record to the correct project automatically.
- OneDrive and SharePoint folder sync: connect a folder per project. New files are pulled and processed on schedule. This is how finance teams already sharing supplier PDFs into a monthly folder can turn that folder into an emission ledger with no workflow change.
- API keys and webhooks: scoped, IP-allowlisted keys for pushing extracted data into an ERP, and outbound webhooks that fire on emission events for downstream systems.
- MCP server: Carbonly runs a Model Context Protocol server. That means ChatGPT, Claude Desktop, or any MCP-compatible AI assistant can read your carbon data directly, trigger a document sync, generate a compliance report, and with explicit permission create emission records on your behalf. Authentication is OAuth 2.1 with PKCE. Permissions are tier-gated to the roles you've assigned. This is the layer that lets a CFO ask Claude Desktop "what's our Q3 Scope 1 to date and what's still unmatched" and get a real answer from the live ledger, not a hallucination.
The MCP surface is deliberately narrow. Read your emissions. Trigger a sync. Generate a report. Propose a record. That's it. No path to bulk-delete history, no path to change locked periods. Those live only in the web UI with role-based approval.
Where This Fits for Consultants
Australian sustainability consultants running multi-client engagements are one of the primary uses of the platform. The pattern is: the consulting practice uses Carbonly as the extraction and calculation engine across all its clients, and produces the client's board-facing report on top of the ledger. The consultant keeps the strategic judgment, the materiality workshops, the scenario analysis, and the transition plan authorship. That's the craft. Carbonly is the workshop equipment underneath.
If a consultant is leading your engagement, the workflow looks like: they set up your workspace, wire the OneDrive folder, derive the supplier templates from your first five months of invoices, and hand you a working ledger. What they used to spend three quarters of their engagement fee on (data entry) collapses. What they charge for the strategic layer stays.
The Construction Data-Entry Benchmark
The scale the platform is designed for is a Tier 1 civil operation running through 10,000 fuel receipts in a single quarter. Under a traditional manual workflow that volume would consume a sustainability team of two for a full quarter of data entry, at roughly two minutes per receipt. The architecture routes that same volume through the AI document engine and puts the sustainability team on the review and exception-handling layer instead — the layer where the actual carbon-accounting judgment sits.
Carbonly is preparing for broader market release and is being deliberate about not inventing customer stories. The 10,000-fuel-receipts figure is the industry benchmark the design targets, not an attested customer engagement.
The Honest Bit
A few things this engine doesn't do and won't pretend to:
- It is not a PCAF data quality scoring module. We hold the underlying data and the provenance; a PCAF-shaped view is a report on top of it, not a built-in engine.
- It is not a NABERS or GRESB submission generator. Same principle: we hold the numbers; the framework-specific submission sits above the ledger.
- It does not currently ship New Zealand MfE emission factors as a native library. Australian NGA 2025 is the built-in default.
- Direct push into Climate Active or the TfNSW CERT tool is not a built-in integration. Exports and API-based hand-offs are supported; a native connector isn't.
That honesty is part of the point. If you're comparing tools for a mandatory disclosure obligation, the tools that promise everything are the ones that tend to break in assurance.
The 30-Record Trial
If you want a concrete first step: send five sample invoices from your most common supplier to hello@carbonly.ai and we'll auto-draft the extraction template. If the template lands well, we onboard the workspace at the per-project pricing that fits (Small / Medium / Large / Enterprise), plus the $100 per month workspace minimum. If the template doesn't land, you've spent an email and we've learned something about a supplier format we hadn't seen.
That's the offer. Not a demo of a chatbot pretending to be an emissions system. A real extraction, on your real documents, in a working ledger.
Related Reading
- After 3 Invoices, the AI Recognises Your Supplier
- How Carbonly Reads 200+ Utility Bill Formats
- ASRS Assurance Requirements: What Your Auditor Actually Checks
- The 7-Phase AI Pipeline for Utility Bills
- AI Graduated Trust for Carbon Reporting
- Carbon Accounting Consultant Cost vs Software
- Why Carbonly is the Best Carbon Accounting Platform in Australia