Engineering case study · Synthetic demonstration

Building a trustworthy personal-finance data pipeline

Entirely synthetic demonstration

Budget V2 is a private, locally operated PostgreSQL ledger. This case study uses fictional accounts, descriptions, dates and amounts to demonstrate its engineering without exposing personal financial data.

Financial files are evidence, not a database

Overlapping exports, refunds, repayments and transfers can all distort a naïve spending total. Incomplete history also means a calculated account flow must not be presented as an authoritative balance.

Correctness before convenience

The system keeps exact integer money values, preserves provider evidence, separates technical transaction types from economic meaning and leaves uncertain cases open for explicit review.

  1. Provider files
  2. Immutable raw evidence
  3. Canonical PostgreSQL ledger
  4. Rules and manual review
  5. Workbook and aggregate insights
  • Integer minor units
  • Stable source identities
  • Explicit classification precedence
  • Unique reciprocal transfer matching

Workflow 01

Preserve evidence before interpreting it

Provider exports are retained as immutable raw evidence. Stable transaction identities let overlapping files converge without turning a repeated import into a duplicate financial event.

Synthetic Budget V2 activity sheet showing fictional provider imports and their processing status
Synthetic demonstration generated by Budget V2: provider activity remains traceable while repeated files resolve idempotently.
Open full-size evidence

Workflow 02

Automate only what can be decided safely

Manual decisions outrank deterministic rules, which outrank provider categories. Ambiguous transactions remain visible for review instead of being silently forced into a spending category.

Synthetic Budget V2 review sheet containing a fictional unresolved transfer
Synthetic demonstration generated by Budget V2: unresolved meaning is presented as a review boundary, not guessed.
Open full-size evidence

Workflow 03

Reconcile transfers without guessing

Both account legs remain real transactions. Automatic matching requires equal-and-opposite amounts, different accounts, a narrow date window and a unique reciprocal candidate; ties remain unmatched.

Synthetic Budget V2 transfer sheet showing a fictional matched card repayment
Synthetic demonstration generated by Budget V2: the paired legs reconcile to zero without deleting either source event.
Open full-size evidence

Workflow 04

Generate interfaces from the ledger

The workbook is a generated read-only consumer of PostgreSQL data, not a second database. Operational checks travel with the export so visible results retain their reconciliation context.

Synthetic Budget V2 dashboard showing a fictional zero-based plan and operational status
Synthetic demonstration generated by Budget V2: the workbook presents reviewed outputs from the canonical ledger.
Open full-size evidence

What this does not claim

The public evidence is synthetic. Provider updates are file-based. Historical gaps are preserved rather than filled with invented balances or transfer pairs. Open Banking, authentication and a browser dashboard are outside this pilot.

What the architecture makes possible

Auditability comes from boundaries: raw evidence is immutable, interpretation is versioned, uncertainty remains visible and every interface is generated from the same canonical model.

Downstream outputs

The same canonical data supports comparable monthly analytics and review-gated email drafts. They are secondary consumers of deterministic facts, not alternate sources of financial truth.

Reliable systems start with explicit boundaries.

© Abdul Hakim Norazman 2026
Privacy