Skip to content
All case studies

Workflow automation · Dental accounts

Bupa Invoice Extractor

A private local tool that reads a year of dental invoices, calculates the accounts and flags anything that does not agree.

Period
2026
Role
Workflow design, extraction logic and reconciliation
Platform
Python, PDF parsing and Excel
Outcome
Reconciled annual accounts

Problem

Monthly self-bill PDFs mixed NHS, private, commission, pension and adjustment rules that were being retyped into accounts by hand.

Solution

A local tool that reads all twelve invoices, keeps the source figures and checks every monthly result against the PDF.

Impact

The full year can be rebuilt in one run, while damaged files and mismatched totals are surfaced for review.
Dental accounts workflowFrom monthly PDFs to reconciled figures.
12 source invoicesAPRSEP+10
Extraction rulesNHS incomePrivate incomeCommissionAdjustments
Accounts workbookCalculated vs invoice
MonthNet calculationInvoice totalVariance
April£12,486.20£12,486.20£0.00
March£11,934.75£11,934.75£0.00
Illustrative figures. Every month retains its extracted source sheet.

The problem

My wife works as a self-employed dental associate. Her monthly Bupa self-bill invoices contain the figures needed for annual accounts, but the useful values are spread across summary pages, payment calculations, deductions, adjustments and NHS UDA detail.

The manual process meant reading twelve PDFs, classifying each line and copying everything into a spreadsheet. Each monthly result had to agree with the invoice, not merely look plausible.

The solution

I built a local Python tool that reads the whole invoice folder, extracts the income, deductions and adjustments, then produces an annual Excel summary with a source sheet for every month. The formulas remain visible, so the accountant can follow the calculation.

The awkward exceptions became rules

The invoices contain cases a generic table extractor would miss: superannuation adjustments, UDA rate changes, Finance Scheme income, administration charges and variable private commission. Private commission uses the rate printed on that month’s invoice instead of assuming it never changes.

The evidence

Each month shows the calculated value beside the Net Amount Due from the PDF. A variance column exposes missing adjustments immediately and points the review back to one invoice.

One damaged PDF cannot spoil the year

If a PDF is damaged, the batch records the failure and continues. Every accepted row keeps its source month and detail, allowing a reviewer to move from the annual summary back to the invoice.

Privacy and control

The workflow runs locally. No invoice values are uploaded, and a person still reviews and signs off the accounts.

The impact

A manual annual exercise became a repeatable, reviewable workflow. The entire year can be rebuilt when a rule changes, with every exception made visible.

The result

A year of invoices rebuilt and checked in one run.

Start a conversation
Next case studyCompareStockISA