Back to Notable Work
AWS · Microservices · Event-Driven2023 – Present

Billing Transformation

Shaping requirements, designing a cross-domain solution, and rebuilding stakeholder confidence in a Finance-critical capability

Billing is a Finance-critical capability. If Billing is wrong, everything downstream becomes noisy: reconciliation, reporting, controls, and stakeholder confidence.

This piece explores the architectural considerations behind designing a greenfield Billing capability — from clarifying business intent and shaping requirements, through cross-domain solution design, to rebuilding stakeholder confidence at a point when the direction of the programme was genuinely in question.


What Billing transformation really requires

Billing is often approached as a "system problem". In reality, it's a domain problem:

  • What is being billed and why?
  • When does liability become billable?
  • What triggers billing events?
  • What evidence and audit trail is required?
  • How do exceptions resolve without breaking controls?

If those questions are not answered first, automation simply accelerates confusion.


Getting requirements to a standard worth building from

One of the less visible but most consequential parts of this work was upstream of any solution design: working alongside business analysts to bring requirements to a genuine definition of ready.

Requirements that arrive as one-liners — "we need a billing capability" — are not a starting point for design. They are a signal that the domain needs structure first. In practice, this meant:

  • Challenging and refining requirements until they were testable and unambiguous
  • Ensuring non-functional requirements were explicit, not assumed
  • Establishing a shared understanding of what "done" looked like before design began

This step is easy to skip under delivery pressure. Skipping it tends to surface as rework, misalignment, and eroded confidence later.


One way to think about Billing architecture

A domain-first, outcome-driven approach tends to work well. The key considerations are:

- Clarify the business intent Minimal requirements are not a blocker — they are a signal that the domain needs structure first.

- Define the operating model Ownership, approvals, exception handling, and control points need to be explicit before automation is designed.

- Design for straight-through processing Make the default path automated, but keep accountability visible at every step.

- Prove correctness early Finance confidence is earned through clarity, traceability, and defensible rules — not through technical claims.

- Deliver through governance Structured design approval ensures the architecture is understood and defensible before build begins.


Designing across domains, not just within one

A billing capability does not exist in isolation. In a complex regulated environment, billing touches — and depends on — almost every other domain: policy, claims, finance, reporting, controls, and integration layers.

One of the architectural challenges was designing a solution that was coherent end-to-end, not just internally consistent within the billing boundary. That meant:

  • Mapping dependencies and data flows across adjacent domains before finalising the billing design
  • Ensuring the solution was defensible to domain owners outside billing, not just within it
  • Making integration contracts explicit so downstream consumers could plan with confidence

This kind of cross-domain thinking is where solution architecture earns its place — not in the detail of a single service, but in the coherence of the whole.


Rebuilding stakeholder confidence

At an earlier stage of the programme, there was a genuine concern that the solution being designed was heading in the wrong direction. Stakeholders were uncertain whether the architecture reflected what the business actually needed.

Addressing this required more than reassurance. It required a structured demonstration — showing, in terms Finance and business stakeholders could engage with, exactly what was being built, why each decision had been made, and how the design connected back to the original intent.

Trust tends to build when:

  • Outcomes are framed in Finance language, not system language
  • Decisions are explicit and traceable
  • The automation's scope is clearly communicated — what it decides, and what it does not
  • The design remains explainable to non-technical stakeholders

This is how a Billing capability becomes something Finance can rely on, not just something IT can point to.


What "good" looks like

A Billing capability is in a good place when:

  • Finance can explain and defend outcomes
  • Processing is automated, not workaround-driven
  • Exceptions are visible, traceable, and owned
  • Controls are embedded into the workflow, not bolted on later