Carbon Accounting Units: The Quiet Reason Your Emissions Are Wrong

Someone enters 142 in a field expecting GJ but they meant litres. Emissions jump by 40x. Unit errors are the most common and least discussed source of carbon accounting mistakes in Australia, and they're invisible until an auditor finds them.

Denis Kargl February 27, 2026 10 min read
Carbon AccountingUnitsEmission FactorsNGA FactorsNGERData Quality
Carbon Accounting Units: The Quiet Reason Your Emissions Are Wrong

A construction company sent us their diesel data last year. Neat spreadsheet. Every fuel receipt captured. But their total came out at 58 tonnes CO2-e for a fleet of 80 trucks over twelve months. That number should have been around 5,800 tonnes.

The problem? Their building management system exported fuel consumption in kilolitres. They entered the numbers into their carbon accounting units column as litres. One thousand times too small. Nobody caught it because the spreadsheet didn't throw an error — it just happily multiplied the wrong number by the right emission factor and produced a figure that looked plausible if you didn't know what a fleet that size actually burns.

This is the most common carbon accounting mistake we see. Not wrong emission factors. Not missing data sources. Wrong units. And unlike a missing electricity bill, which creates an obvious gap, a unit error produces a number that looks complete. It sits there quietly in your NGER submission or ASRS disclosure, waiting for an auditor to pull the thread.

The ANAO found that 72% of 545 NGER reports contained errors, with 17% classified as significant. We can't prove what proportion of those are unit-related. But from our experience building Carbonly's extraction engine, we'd bet it's a lot.

The core formula and where units hide

Every emissions calculation follows the same basic structure:

Activity Data (in unit X) x Unit Conversion (X to Y) x Emission Factor (per unit Y) = Emissions (CO2-e)

That middle step — the unit conversion — is where things go wrong. Sometimes it's explicit. You know your electricity bill is in kWh and your emission factor is in kg CO2-e per kWh, so the units cancel cleanly. No conversion needed.

But other times, the conversion is hidden. Your gas bill arrives in cubic metres. The NGA Factors workbook gives you a factor in kg CO2-e per GJ. You need to know the energy content of natural gas — roughly 0.0393 GJ per cubic metre for distributed pipeline gas in Australia, though it varies with gas composition and pressure — to bridge between the two. Miss that step, and your calculation is dimensionally wrong. The number that comes out has no physical meaning.

And here's the part that really bothers us: NGER reports in tonnes CO2-e. The NGA Factors are expressed in kilograms CO2-e. That's a factor of 1,000 sitting between your calculation and your submission. We've seen teams report 4,200 kg CO2-e as 4,200 tonnes CO2-e in their NGER return. That overstates a facility's emissions by three orders of magnitude. Going the other direction is worse — understating by 1,000x could mean you look like you're below the NGER reporting threshold when you're actually well above it.

Diesel: the 40x trap

Diesel is the best example of how badly unit confusion can bite. The NGA Factors 2025 workbook (Table 4) provides two different ways to calculate Scope 1 emissions from transport diesel.

By volume: approximately 2.7 kg CO2-e per litre (total, including CO2, CH4, and N2O).

By energy: 69.9 kg CO2-e per GJ.

These aren't interchangeable. They're connected by diesel's energy content factor of 38.6 GJ per kilolitre. So 1 litre of diesel contains 0.0386 GJ of energy. If you put "142" into a field expecting GJ but you actually meant 142 litres, you've just told the system you burned 142 GJ of diesel. That's equivalent to about 3,679 litres — not 142. Your emissions jump from 383 kg to 9,933 kg. A 26x error, from a single wrong dropdown selection.

We've seen the reverse too. A mining contractor recorded fuel consumption in kilolitres (thousands of litres) but their calculation tool expected litres. Result: actual consumption of 450,000 litres showed up as 450 litres. The Scope 1 emissions from their entire earthmoving fleet looked like a single truck running for a week.

In Carbonly, when our AI document extraction reads a fuel docket or invoice, it doesn't just grab the number. It identifies the unit — litres, kilolitres, gallons, cubic metres — and carries that unit through the entire calculation chain. The system converts between units in the same family automatically. So if a supplier invoice shows fuel in kilolitres but the emission factor expects litres, the conversion happens before the factor is applied, and the conversion step is logged in the audit trail so an assurance provider can verify it.

Electricity: kWh, MWh, and the building management trap

Electricity seems straightforward. Your bill says kWh. The NGA Factors are in kg CO2-e per kWh. Multiply and you're done.

Except your building management system probably exports in MWh. Your solar monitoring platform reports in kWh. Your retailer's summary invoice might show consumption in MWh for large sites and kWh for smaller ones. And the summary report your facilities manager puts together uses whatever unit the underlying system gave them, which means you're looking at a table where one column mixes kWh and MWh without labelling which is which.

A site consuming 2,500 MWh per year in Victoria produces about 1,950 tonnes CO2-e (using the NGA Factors 2025 Scope 2 factor of 0.78 kg CO2-e/kWh). If that 2,500 gets entered as kWh instead of MWh, the result is 1.95 tonnes. For a single commercial building. Anyone who's worked in property management knows that's absurd — but if you're processing 200 sites, a single row showing 1.95 tonnes doesn't necessarily jump out of a spreadsheet.

The NGA Factors are always per kWh for electricity. Not per MWh. Not per GJ. Per kWh. Every other unit needs to be converted first. 1 MWh = 1,000 kWh. 1 GJ = 277.78 kWh. These sound simple. They are simple. But when you're manually transcribing from 30 different source formats into one template at 10 PM on 28 October with the NGER deadline three days away, simple conversions get skipped.

Natural gas: the variable conversion problem

Natural gas is genuinely harder. The energy content of gas isn't fixed — it depends on composition, which varies by network, by state, and sometimes by season. Australian pipeline gas typically sits around 38-40 MJ per cubic metre, but your specific network operator will have a heating value on your invoice.

The NGA Factors provide emission factors for natural gas in kg CO2-e per GJ (Table 3, stationary energy). If your gas bill comes in GJ, you're in luck — direct multiplication. But many gas bills, especially for smaller commercial users, show consumption in cubic metres. And some show it in MJ, which then needs to be converted to GJ (divide by 1,000).

This layering of conversions is where we see errors compound. A facilities team converts cubic metres to GJ using a generic conversion factor they found online (often a North American figure around 0.0353 GJ/m3 rather than the Australian-specific value on their invoice). Then they multiply by the emission factor. The result is maybe 10-12% off — not dramatic enough to flag in a reasonableness check, but enough to skew a facility's gas emissions in the wrong direction year after year.

We're honest about this: natural gas is one area where we still tell customers to check their specific network operator's heating value rather than relying on a default. The conversion isn't universal, and getting it wrong by even 5% compounds across every billing period.

Transport units: passenger-km vs vehicle-km vs tonne-km

Once you move beyond Scope 1 fuel combustion and into Scope 3 transport categories, the unit landscape gets wild.

A bus travelling 100 km with 40 passengers on board has covered 100 vehicle-kilometres but 4,000 passenger-kilometres. If you're using a factor expressed in kg CO2-e per passenger-km and you feed it vehicle-km instead, you've understated emissions by 40x. The GHG Protocol's Scope 3 Technical Guidance for Categories 4, 6, and 7 uses all three transport metrics — passenger-km, vehicle-km, and tonne-km — and the factors are not interchangeable.

Freight adds another layer. A truck carrying 20 tonnes of concrete over 300 km generates 6,000 tonne-kilometres. The emission factor is per tonne-km. But if your logistics provider reports distance in km and weight in tonnes separately, you need to multiply them before applying the factor. Or they report in vehicle-km. Or they just give you a fuel receipt in litres. Each path to the same answer requires different conversions, and mixing up which path you're on produces garbage.

In Carbonly, we support km, passenger-km, tonne-km, and vehicle-km as distinct unit types precisely because they're not interchangeable. The system won't let you apply a passenger-km emission factor to a vehicle-km data entry without flagging the mismatch.

Spend-based: when dollars become the unit

Spend-based emissions accounting introduces a unit type that doesn't feel like a unit at all: dollars. But a dollar is absolutely a measurement unit in carbon accounting, and it comes with its own conversion traps.

Australian EEIO (environmentally extended input-output) emission factors — like those from the IELab dataset used in Climate Active methodology — are expressed in kilotonnes CO2-e per million AUD. That's a mouthful. It means if you spend $1 million with a sector that has a factor of 0.35 kt CO2-e per $M AUD, your estimated emissions are 350 tonnes CO2-e.

But the common international databases use different currencies. EXIOBASE factors are in EUR. USEEIO factors are in USD. DEFRA/DESNZ factors are in GBP. If you've got a $45,000 AUD invoice from a US supplier and you're applying a USEEIO factor in kgCO2e per USD, you need to convert AUD to USD first. Use the wrong exchange rate — or forget the conversion entirely — and you've introduced 10-30% error before you've even thought about the accuracy of the emission factor itself.

And exchange rates move. If your EEIO factors are vintage 2022 but your procurement data is from 2026, which rate do you use? There's no universally agreed answer, though using the factor vintage year is the most methodologically defensible approach. We handle this in Carbonly with built-in currency conversion across AUD, USD, EUR, GBP, NZD, CAD, and SGD, but we won't pretend static exchange rates are perfect. They introduce error. It's just less error than forgetting the conversion entirely.

The units nobody thinks about: FTE, sqm, and room-nights

Scope 3 reporting pushes carbon accounting into measurement units that feel alien if you're used to kWh and litres.

FTE (full-time equivalent): Employee commuting factors are often expressed per FTE per year. But what does "1 FTE" mean in hours? We use 2,080 hours per year (40 hours x 52 weeks), which is a standard assumption. But Australian full-time employees average 38 ordinary hours per week under the Fair Work Act — that's 1,976 hours. The difference is small, about 5%, and probably lost in the noise of commuting survey uncertainty. But it's there.

Area (sqm): Some property benchmarking tools express emissions in kg CO2-e per square metre. These are useful for comparison but dangerous for calculation. Two buildings of the same area can have dramatically different emissions depending on operating hours, HVAC systems, occupancy rates, and climate zone. The NGA Factors don't provide area-based factors — and for good reason. Using sqm-based proxies for NGER or ASRS reporting would need serious justification under assurance.

Room-nights and accommodation-nights: For hotel and hospitality emissions, some frameworks use per-room-night factors. These are Scope 3 Category 6 proxies for business travel accommodation. But "room-night" varies enormously — a 3-star hotel room in regional NSW has very different emissions from a suite at Crown Sydney.

These units are squishier than physical measurements like kWh or litres. They're proxies, and they introduce uncertainty beyond just the conversion arithmetic. We support them in Carbonly because Scope 3 reporting requires them, but we flag in the audit trail when a proxy-based unit is in play so an auditor can see the methodology.

A quick reference for Australian carbon accounting units

This is the table we wish we'd had when we started building our emissions calculation engine. It maps common activity data units to NGA Factors emission factor units and highlights where conversions are required.

Activity Common Data Units NGA Factor Unit Conversion Required?
Grid electricity kWh, MWh kg CO2-e / kWh MWh to kWh (x 1,000)
Natural gas (stationary) GJ, MJ, m3 kg CO2-e / GJ m3 to GJ (variable); MJ to GJ (/ 1,000)
Diesel (transport) litres, kL kg CO2-e / GJ OR kg CO2-e / litre kL to litres (x 1,000); if using GJ factor: litres to GJ via 38.6 GJ/kL
LPG litres, kg, GJ kg CO2-e / GJ litres to GJ via energy content 26.2 GJ/kL
Business travel (air) passenger-km, vehicle-km kg CO2-e / passenger-km Don't mix with vehicle-km
Freight tonne-km, vehicle-km kg CO2-e / tonne-km Need weight AND distance
Purchased goods (spend) AUD, USD, EUR, GBP kgCO2e / AUD (or per $M) Currency conversion; check factor denomination
Employee commuting FTE, hours kgCO2e / FTE / year FTE to hours at 2,080 (or jurisdiction-specific)

Source: NGA Factors 2025 workbook (DCCEEW); GHG Protocol Scope 3 Technical Guidance.

Every row in this table is a potential unit error. The boring ones — MWh to kWh, kL to litres — are also the most frequent.

What a unit error actually costs

Let's make this concrete. Say you're a mid-market manufacturer with five sites, reporting under NGER. Your largest facility burns 800,000 litres of diesel per year in forklifts and delivery vehicles. The correct Scope 1 emissions: 800,000 x 2.7 kg CO2-e per litre = 2,160,000 kg = 2,160 tonnes CO2-e.

Now say someone enters the diesel consumption as 800 kilolitres but the system interprets it as 800 litres. Emissions: 800 x 2.7 = 2,160 kg = 2.16 tonnes. That facility looks like it barely operates.

The NGER corporate group threshold is 50,000 tonnes CO2-e. If this diesel error is big enough to push you below the reporting threshold when you're actually above it, you've just missed a mandatory filing. The penalty under the NGER Act for failing to report starts at $330 per penalty unit (as at November 2024), and for a body corporate, the maximum is 300 penalty units per contravention — that's $99,000. And if the Clean Energy Regulator considers it ongoing, each day can be a separate contravention.

Going the other direction — overstating emissions — creates a different problem. Under the Safeguard Mechanism, facilities exceeding 100,000 tonnes CO2-e face declining baselines. If a unit error pushes your reported emissions above your baseline when they're actually below it, you'd be purchasing ACCUs or SMCs to cover a phantom exceedance. At $35-40 per ACCU on the secondary market, a 10,000-tonne overstatement costs $350,000-$400,000 in unnecessary offset purchases.

How we handle this in Carbonly

We built unit handling into Carbonly's architecture because we got burned by it ourselves. When we were processing utility bills during early development, we discovered that a single commercial gas retailer in Victoria used three different units across their invoice formats — GJ on summary statements, MJ on detailed line items, and cubic metres on meter read pages. Same retailer. Same billing system. Three units.

Our approach works like this. When the AI extraction pipeline reads a document, it identifies both the numeric value and the unit it's expressed in. The unit gets mapped to one of our defined unit families — energy, volume, mass, distance, area, time, currency. Within each family, the system knows the conversion relationships: kWh to MWh, litres to kilolitres, sqft to sqm (at 0.0929), FTE to hours (at 2,080), AUD to USD to EUR.

When an emission factor is applied, the system checks that the activity data unit and the factor's denominator unit are in the same family. If they match directly — kWh data, kgCO2e/kWh factor — no conversion needed. If they're in the same family but different scales — MWh data, kgCO2e/kWh factor — the conversion is applied automatically and logged. If they're in different families entirely — litres of diesel against a kgCO2e/GJ factor — the system uses the energy content conversion (38.6 GJ/kL for diesel) and logs that too.

Every conversion step appears in the audit trail. When an assurance provider asks "how did you get from this invoice to that emission number?", the answer isn't "we multiplied" — it's a documented chain showing the original value, unit, every conversion applied, the emission factor used, and the final result.

We don't claim this catches everything. Ambiguous units on invoices — where a number appears without any unit label at all — still require human judgment. And we're still refining how we handle natural gas where the energy content conversion is network-specific rather than fixed. But for the 90% of unit conversions that are straightforward arithmetic, automating them removes the single biggest source of silent errors in carbon accounting.

One thing to do right now

Pull up your last emissions calculation. Pick the three largest line items. For each one, trace the path from the source document (the actual invoice or meter reading) through to the final tonnes CO2-e figure. Write down every unit conversion that happened along the way. If you can't identify exactly where litres became GJ, or kWh became MWh, or AUD became USD — you've found the gap that's most likely to contain an error nobody's noticed yet.


Related reading: