NetNada - July 30 2026 Product Release

Twenty-four changes are now live in production. The thread running through most of them is the same: making it possible to see how a number was arrived at, and to check it.

Release window: July 30 2026 · Environments: Production

Before anything else — pick up the new upload templates: all three Scope templates have been rewritten. Titles, instructions and dropdown options corrected, a mislabelled solar template fixed, and invalid currency options removed. Copies saved before this release carry the old options and can cause upload errors or incorrect mappings.

An Auditor Can Now Re-Perform the Maths

This is the largest change in the release. The audit export has gained ten new columns, so an auditor can take any row, do the sum themselves, and land on the same emissions figure.

What's new in the audit export

  • Calculation Shown — spells out the arithmetic as a one-line equation
  • Recalculation Check — confirms the row actually reconciles
  • Priced Quantity and its unit, Applied Rate, Factor Selection Reason, Factor Year as calculated, Year Requested, GWP Method and Calculation Notes
  • The existing Calculation Log is untouched and remains the source of truth

The problem this solves is a real one. A market-based electricity row used to read about a third out if you checked it as activity multiplied by emission factor, because activity is the full consumption while only the residual after renewables is actually priced. Every number needed to explain that gap already existed, but it was buried inside a single block of text.

Where a row genuinely cannot be re-performed, it now says so rather than pretending. Market rows calculated before the renewables change never recorded the residual volume, so they report that the renewable deduction was not recorded and cannot be verified, instead of being priced against full consumption and flagged as a false mismatch. Waste, accommodation, flight, freight and commuting rows now carry a verified activity-times-factor chain, or an explicit marker where there is genuinely nothing to check. The audit drawer has been improved to match.

Flight Emissions Are Filed in the Right Category

Every flight produces two kinds of emissions: those from burning the fuel, and those from producing and delivering it in the first place — what the industry calls well-to-tank.

The second group was being recorded under Business Travel when it belongs under Fuel and Energy Related Activities. Totals were never wrong, not by a kilogram, but the split between categories was — and that split is exactly what an auditor examines.

Worth knowing: flight emissions will now sit differently across categories than before. The total has not moved.

An Older Emission Factor No Longer Passes Unmentioned

A client asked why a 2025 hotel stay had been calculated with a 2022 factor. It looked like a bug, so we checked properly — and it was not one. For that category, 2022 genuinely is the most recent factor published.

The real problem was that nothing said so, which left a correct fallback looking identical to a mistake. The calculation log now states plainly when an older factor has been used, and waste calculations record which factor was applied and where it came from.

Four Corrections to the Calculation Engine

Edited rows were quietly leaving your totals. When someone edited a record, the system could decide a valid row was no longer properly mapped and stop counting it. That happened whenever an optional field was not recognised — which makes little sense, because an optional field is by definition one the calculation does not need. The row left the total without warning, so the figure came out lower than it should have. Uploading and editing now follow the same rule: a row only stops counting when something genuinely required is absent.

Three broken waste emission factors, repaired. Three of the public factors used for waste were pointing at the wrong records, so any figure calculated with them was wrong. They have been fixed at the source. If waste numbers have been questioned recently, they are worth a second look.

Waste factors are no longer guessed. Where the system could not find a waste factor for a region, it used to let AI infer one, producing results nobody could reproduce or explain — an uncomfortable position to be in during an assurance review. It now falls back to a defined general waste factor instead: slightly blunter, entirely predictable, and defensible. Separately, waste dated before our factor coverage begins now rolls forward to the earliest available factor rather than failing outright.

AdBlue is now a supported fuel type. Fleets using AdBlue can record it directly rather than working around its absence.

Uploading and Reviewing, Tidied Up

  • Electricity bills now carry their cost — the total amount due and the currency are read straight off the invoice and shown as a column in the review table, editable if the extraction gets it wrong. Bills covering several meters no longer under-count the total. Having cost sit next to consumption is the groundwork for reconciling what was reported against what was actually billed.
  • One set of signals, whatever the bill — the review screen used to behave differently depending on which type of bill you opened. “Needs attention” now means the same thing everywhere, and where the Confirm button is disabled, the button itself tells you why.
  • Failures stopped looking like successes — the green “new data available” banner used to appear even when every file in a batch had failed. It no longer does. Upload validation errors are now saved and shown, where previously a file could fail validation with no message at all.
  • Documents are read more reliably — the models behind document reading have been upgraded and the notices extractor standardised across bill types, so information comes off uploaded documents more consistently.

Everyday Repairs

  • Nodes — the node creation form has been redesigned with collapsible sections and clearer handling of each field. Node selections are no longer wiped part-way through, and the multi-select banner reads correctly.
  • Files, users and error screens — downloaded source files keep their real names instead of a long internal reference. Users no longer appear twice in the white-label user list. And when the service is briefly unavailable, the white-label and advisor pages show a proper error screen with a “Try again” option rather than a red panel.

Behind the Scenes: Automated Testing on the Calculation Engine

We built a system that writes and checks its own tests, and used it to take the calculation engine from around 110 test files to 238, with more than 5,000 tests now running on every change. Effort went to the riskiest code first, so the calculations that matter most are tested the hardest.

This was the first phase and it was about breadth; deeper work on the most critical calculation paths comes next. None of it is visible in the product — it is simply the reason changes to the engine can now ship with more confidence.

Product analytics now also run across the ingestion funnel, so when someone tells us an upload is painful we can see where people actually get stuck rather than guess.

Related tickets: TAS-2360, TAS-2443, TAS-2393, TAS-2394, TAS-2396, TAS-2404, TAS-2400, TAS-2401, TAS-2397, TAS-2414, TAS-2395, TAS-2351, TAS-1563, TAS-2124, TAS-2412, TAS-2365, TAS-2421, TAS-2343, TAS-2416, TAS-1368, TAS-2048, TAS-2431, TAS-2366 and TAS-2413.


This was a large batch, so it is worth keeping an eye out over the next few days. If something looks off, send the tenant or organisation, the page you were on, what you did, and a screenshot if you have one. That is usually enough for us to find it straight away.

Making this planet better, one sprint at a time. 🌏

Want to see these features in action? Book a demo today.

Start Your Climate Reporting Journey

Join 1,000+ Australian businesses using NetNada for carbon accounting and sustainability reporting.