Case study · Privacy engineering and automated decisions

Ready for 10 December: automated decision transparency for an Australian energy retailer

An energy retailer used software to run credit checks, set payment plans, flag hardship and trigger collections, across systems built over twenty years. From 10 December 2026, Australian organisations must explain in their privacy policy when computer programs make or substantially inform decisions that significantly affect people. The retailer first had to find out where that happened.

Case studyEnergy retail · AustraliaSumanta Mukhopadhyay9 min read
#governance#data#observability
CASE STUDY · CASE STUDY · PRIVACY ENGINEERING AND AUTOMATED DECISIONS30 Oct 2026 · 17:10 GST
At a glance
SectorEnergy retail · Australia
My roleFractional CTO and principal architect
EngagementAssessment, architecture and delivery leadership
ScopeDecision inventory, decision register, decision event capture, privacy policy content, explanations and review
What changed
  • Every significant automated or computer-assisted decision listed in one register with an owner
  • Privacy policy disclosures generated from the register, not written from memory
  • Decision events captured from legacy systems without rewriting them
  • Customer service able to explain a decision and route a review
  • New decision logic blocked from release until registered
Decision registerOpenTelemetry CollectorFilelog and SQL receiversEvent streamingData catalogueRules engineCustomer service workbenchPolicy as code

Anonymised composite. Client names, identifying details and confidential figures are withheld; public facts are cited in the references.

The situation

An Australian energy retailer served households and small businesses across several states. Software touched many decisions that matter to customers: credit checks at sign-up, security deposits, payment plan offers, hardship flags, collections steps and, at the end of the line, disconnection warnings. The logic lived in a billing platform from the 2000s, a CRM, a collections tool, a credit bureau integration and a newer machine learning model that predicted who might struggle to pay.

Why now. From 10 December 2026, APP entities must include information in their privacy policy when they have arranged for a computer program to make, or do something substantially and directly related to making, decisions that significantly affect individuals' rights or interests1. The OAIC published its final guidance on 30 September 20264. Commentary on that guidance reads it broadly: it reaches rules engines and decision-support tools, not only AI, and human review does not automatically take a decision out of scope23. The retailer's privacy policy said nothing about any of this, and nobody could list where it applied.

What had to be true

  • A complete list of significant decisions that software makes or substantially informs.
  • Disclosures that match reality, generated from that list and kept current.
  • Evidence for each decision: which system, which logic version, which data.
  • Explanations on request that customer service can give in plain language.
  • No new hidden decisions: changes to decision logic registered before release.

Architecture

Decision sources
Billing platformdeposits, plansCollections toolreminders, warningsCredit integrationsign-up checksML modelpayment difficulty
Capture
OpenTelemetry Collectorlogs and SQL, no rewritesDecision eventsstandard schema
Register
Decision registerpurpose, data, logic, ownerData cataloguepersonal data used
Outputs
Privacy policy sectiongenerated from the registerCustomer service workbenchexplain and review
Control
Release gateno unregistered decision logicQuarterly reviewregister against reality
The register is the single source of truth; disclosures, explanations and release checks all read from it.

The data flow, end to end

  1. DecideA system makes or informs a decision about a customer
  2. EmitA decision event is captured with decision type, logic version and inputs used
  3. LinkThe event is matched to its register entry and the customer record
  4. DiscloseThe privacy policy describes each registered decision type in plain language
  5. ExplainCustomer service retrieves the event and gives the reasons
  6. ReviewA customer can ask for a person to look again; the outcome is recorded
Disclosure covers the decision type; the event covers the individual decision.

The hard part: finding decisions in twenty-year-old systems

Nobody had a list. Decision logic sat in billing configuration tables, stored procedures, collections scripts and a model in a notebook pipeline. Interviews found the obvious decisions; data found the rest. The team traced customer journeys that ended in a significant outcome, such as a deposit request or a disconnection warning, back through the systems that produced them, and recorded every step where software chose or ranked something.

Capturing evidence without rewriting the billing platform was the second problem. The OpenTelemetry Collector can read existing log files and query databases through receivers, then forward everything in one format, which is how the OpenTelemetry community recommends bringing older systems into modern observability5. The team used it to turn existing logs and table changes into structured decision events, with no change to the legacy code.

Diagram of an OpenTelemetry Collector receiving data from a legacy application's log server through a filelog receiver, from SQL Server databases through SQL receivers, from Windows machines over OTLP and from production line devices through an MQTT bridge, and forwarding to a backend
One collector gathering logs and database data from older systems: the pattern used to capture decision events without rewrites. Source: OpenTelemetry blog, Lukasz Ciukaj · CC BY 4.0

The scope calls were made with counsel. Following the guidance's broad reading, the team treated borderline cases as in scope, including the payment difficulty model, even though a person made the final hardship decision23. The hardship model was also a reason for care: it informed help for vulnerable customers, so its explanations were written with the hardship team. See explainable credit decisions in Brazil for the reason-code pattern.

You cannot disclose what you have not found. The privacy policy paragraph is the last step; the inventory is the work.

How it ran

Privacy and legal
  1. Scope rules
  2. Policy wording
  3. Review process
Engineering and data
  1. Journey tracing
  2. Decision events and register
  3. Release gate
Customer operations
  1. Hardship input
  2. Explanation scripts
  3. Workbench and reviews
Legal set the scope, engineering produced the evidence, customer operations made it usable.
Phase 1Find
  • Journey tracing
  • Interviews
  • Draft register
Phase 2Decide scope
  • Significance tests
  • Borderline calls
  • Owners named
Phase 3Evidence
  • Collector on legacy systems
  • Decision events
  • Workbench view
Phase 4Disclose
  • Policy generated from register
  • Release gate
  • Quarterly review
Find, scope, evidence, disclose: in that order, with the 10 December date as the hard stop.

Key decisions and trade-offs

DecisionAlternativeWhy
Treat borderline cases as in scopeNarrow reading to limit disclosureMatches the guidance and avoids later corrections
Generate disclosures from the registerWrite the policy section by handPolicy stays true as systems change
Capture events from logs and databasesModify legacy codeFaster, lower risk before the deadline
Release gate on decision logicPeriodic audits onlyNew decisions cannot appear unnoticed
Write explanations with hardship staffEngineering-written reasonsClear and appropriate for vulnerable customers

What I'd do again, and differently

Again: trace from outcomes backwards. It found decisions no interview would have surfaced, such as a deposit rule hidden in a billing configuration table. Differently: start the release gate first. Two new rules went live during the inventory and had to be found again. Related: policy layers for AI assistants, ISO 42001 and the NIST AI RMF, AI provider resilience under CPS 230 and the Australia page.

If you need to be ready for 10 December in Australia, see my fractional CTO work, or analyse your challenge and bring the result to a call.

References
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
FAQ

Common questions

What changes on 10 December 2026?

APP entities must include information in their privacy policy where they have arranged for a computer program to make, or do something substantially and directly related to making, decisions that significantly affect individuals, using personal information. The duty comes from the Privacy and Other Legislation Amendment Act 2024.

Does human review take a decision out of scope?

Not automatically. According to commentary on the OAIC's guidance, a decision can be in scope even when a program's output only informs a person who makes the final call, and the OAIC encourages treating borderline cases as in scope.

Is this only about AI?

No. The OAIC's guidance reaches rules engines, scoring tools and other software that substantially informs significant decisions, not only machine learning.

Keep reading

Related

Open to advisory, fractional CTO & select builds

Let's talk about what you're building.

The fastest route is a free 30-minute call. Prefer to write? Send a message and I'll reply personally within two business days.

Start a conversation

How would you like to reach me?

Book a 30-min callFastest. Pick any open slot on my calendar.→ Write in GmailOpens a pre-filled draft in your browser.→ Use my email appOutlook, Apple Mail or your default client.→

I reply personally within two business days. Time zones from the Americas and Europe to the Middle East and Asia-Pacific.