ONGOING PROJECT ยท JULY 2026 TO PRESENT
Turning a fragmented property billing process into one system the team can run and trust
Internal tool ยท Product design and build

01 ยท CONTEXT
The business wanted to grow, but every new property meant more disconnected work
Majella Properties relied on a 12-year-old Access database for billing, then moved information through CSV exports, PDF creation, manual email and separate payment tracking. The team wanted one system that could support the current portfolio and eventually bring its other property companies into the same operation.
I joined as the sole product designer and builder. I owned the stakeholder research, workflow mapping, legacy-system audit, information architecture, interface design, coded prototype, testing and ongoing build.
Role
Sole Product Designer & Builder
Stakeholders
Owner, manager and bookkeeper
Timeline
July 2026 to present
Status
Building and testing
First rollout
Majellaโs 52 commercial units
Tools
Claude Design, Cowork and Code
Designed for the first rollout, structured for more organisations
The current build focuses on Majella. The data model and organisation switcher are prepared for future expansion, but the clientโs other property companies have not been migrated yet.
02 ยท THE PROBLEM
The problem was bigger than an old database
The calculation logic was invisible, but the work around it was equally costly. Staff could produce invoices without seeing why each figure was correct, then had to move the result through several manual tools before the month was complete.
Invisible calculation logic
No screen explained a figure, showed a change history or warned the team when an allocation was wrong.
A fragmented monthly operation
Database work, exports, documents, email and payment tracking lived in separate steps and systems.
THE WORKFLOW I OBSERVED
01 ยท Access database
Generate billing without seeing the calculation
02 ยท CSV export
Move the output into another file
03 ยท PDF creation
Turn exported data into tenant documents
04 ยท Manual email
Send each document through a separate step
05 ยท Payment tracking
Work out who had paid outside the billing flow
06 ยท Accounting handoff
Move records into the accounting process
Where visibility broke
Access database
Billing logic lived where only one operator could see it.
Export chain
CSV files became PDFs before anything could be sent.
Manual tracking
Email delivery and payment status were checked separately.
The workflow moved forward, but status and responsibility disappeared between tools.
HOW MIGHT WE
Help a non-technical property team run, check, correct and send billing from one place, without needing to understand the legacy database?
03 ยท RESEARCH AND REFRAME
I started by sitting beside the people who run the process
I interviewed the owner, manager and bookkeeper, watched how they completed the monthly cycle and mapped the handoffs, delays and workarounds. I also inspected the Access database, traced the billing rules and compared reconstructed outputs with historical invoices and VAT records.
Contextual observation
Shadowed real monthly work and noted where people stopped, switched tools or relied on memory.
Stakeholder interviews
Spoke with the owner, manager and bookkeeper about responsibility, risk and exceptions.
Workflow and IA mapping
Mapped recurring billing, documents, corrections, tenant records and governance.
Database and data audit
Traced legacy rules, inspected records and checked reconstructed results against issued invoices.
How four kinds of evidence converged
Work as observed
Stakeholder language
Handoffs and rules
Records and billing logic
One operating problem, seen from four angles
Hidden rules, fragmented handoffs and risky exceptions all pointed to the same need: one visible system of record.
The database was not simply broken. The team had no safe way to understand or operate it.
The reconstructed engine matched the selected historical electricity run, but the audit also exposed a live 133.33% zone allocation. The product challenge became visibility, control and recovery, not a cosmetic replacement of the old interface.
04 ยท INFORMATION ARCHITECTURE
One place for recurring work, records and control
I separated frequent monthly tasks from configuration. The biller sees the work that is due. Settings and audit history stay available without crowding the main path.
Organisation switcher keeps each companyโs data and settings separate
One structure for several property organisations
Organisation and property context
Shared operating record
Tenancies, units, meters, documents and billing history stay connected.
Dashboard
Billing
Tenants
Units
Documents
Reports
Settings and audit log govern the system without blocking monthly work.
Dashboard
Due work and real problems
Billing
Prepare, check, approve and send
Tenants
Tenancies, invoices and activity
Units
Meters, zones and occupancy
Documents
Generated files and reprints
Reports
Operational and accounting views
Settings
Rates, zones, meters, exports, backups and organisation controls.
Audit log
Who changed what, when it changed and why.
The first rollout is Majella. Multi-organisation onboarding, live Xero connection and the AI assistant remain later stages, not current product outcomes.
05 ยท FLAGSHIP FLOW
I designed the difficult month, not only the happy path
Electricity billing carries the most risk, so I used it to define the shared pattern for every billing run. Problems interrupt the flow only when they are real, and every warning links to a clear recovery action.
A staged run with one deliberate control gate
01
Prepare readings
02
Resolve held items
03
Review and Check
04
Approve and post
05
Documents and export
01 ยท Prepare readings
Enter or import readings. Drafts save as the user works.
02 ยท Resolve held items
Confirm rollover, re-enter a value or record a reason.
03 ยท Review & Check
Preview every invoice and run safety checks.
04 ยท Approve & post
Post only after the unresolved checks are clear.
05 ยท Documents & export
Create PDFs, email records and a previewed CSV export.
If a zone is unbalanced, the user opens the zone editor, corrects it or records an authorised override, then returns to Review & Check.
06 ยท PRODUCT DECISIONS
The controls had to fit the way the business actually works
The legacy system hid important choices inside calculations. I turned those choices into visible product decisions so the team can understand what happened and recover when something is wrong.
The interaction pattern behind the product
Detect risk
Surface it early
Explain cause
Keep logic visible
Choose action
Support judgement
Record outcome
Leave an audit trail
Governed override, not a hard block
A suspicious value is held for review. An authorised user can continue only after recording a reason, so a real exception does not stop the whole month.
Name the landlord share
The product shows where a landlord or owner share applies instead of silently turning it into zero. The decision stays visible in the invoice breakdown.
Review in three passes
Summary, exceptions and invoice detail support different checks. The team can scan the month first, then investigate only the items that need attention.
Correct forward, keep history
Configuration changes are effective-dated. Posted invoices stay intact, and any correction creates a visible trail rather than rewriting the past.
THE PRINCIPLE
Make the normal path quick, but never hide the difficult month.
07 ยท THE PRODUCT
The coded prototype turns one monthly job into a visible sequence
These screens use anonymised portfolio names, but they run on realistic property data. The interface keeps status, checks and next actions close to the work instead of asking the user to remember what happened elsewhere.

The dashboard answers three questions first: what is due, what needs attention and where should I continue?

The run keeps progress visible and separates held readings from the rest, so one problem does not erase the work already completed.

A named allocation model makes the split understandable. Invalid totals are surfaced before they affect a posted invoice.

The wording stayed close to the teamโs language. Summary, exceptions and detail support quick scanning without hiding the calculation.

Tenant and unit records move out of disconnected spreadsheets and become part of the same operating system.

The audit log shows what changed, who changed it and when. It gives the owner visibility without making the monthly biller explain every step.
08 ยท TESTING
I tested the working prototype with the people who will use it
The owner, manager and bookkeeper worked through realistic billing tasks. I watched where the non-technical user paused, what she understood without explanation and how she recovered after a problem.
Functional coded prototype ยท realistic property data ยท portfolio names anonymised
THE TASKS
Run electricity billing
Move from readings to a prepared run without me narrating the interface.
Resolve held readings
Identify why an item stopped and decide whether to fix or override it.
Correct an allocation
Find the zone problem, update it and return to the interrupted task.
Check the output
Review totals, exceptions and invoice detail before posting.
WHAT THE FIRST ROUND CHANGED
Use โReview & Checkโ
The team understood this wording more quickly than accounting language such as โreconcile.โ
Keep a controlled override
A strict block was too rigid for legitimate exceptions. The product now asks for a reason and records the decision.
Return people to the task
Fixing a setting is not the end of the job. The flow returns the user to the exact billing step that was interrupted.
Support scanning
Numbers, status and exceptions stay aligned in tables because this work depends on comparison, not decorative cards.
Testing is still in progress. I am refining the prototype after each round and will update this case study when the team completes the next full parallel run.
09 ยท WHERE IT IS NOW
Separate what is verified from what is still being tested
This is an ongoing build, so I am not presenting targets as outcomes. The evidence below reflects what the team and I have actually checked so far.
Verified
A selected May electricity run reproduced 38 of 38 invoices to the penny. The audit also exposed a 133.33% allocation, and the prototype now surfaces that condition before posting.
Testing now
Can a non-technical stakeholder complete the full cycle, understand held items and recover after a correction? The coded prototype is being refined around those tasks.
Later, not yet shipped
Live Xero integration, onboarding for multiple organisations and an AI assistant over historical records remain later-stage work.
A TARGET, NOT A RESULT
Completing the monthly billing cycle in under 30 minutes is an acceptance target for rollout. It has not yet been measured as an outcome.
10 ยท REFLECTION
The hardest part was not automating the happy path
It was deciding how the product should behave when the data is incomplete, the business rule has an exception or a user needs to correct work that already happened.
Exceptions are part of the product
A useful internal tool does not pretend every month is clean. It gives legitimate exceptions a controlled path and leaves evidence behind.
Visibility creates trust
People trust the result when they can see the source, the rule, the calculation and the person who approved a change.
HOW AI SUPPORTED THE BUILD
Claude helped me inspect legacy code and move faster while prototyping and building. I carried out the research, made the product decisions, tested the work with stakeholders and remain accountable for the result.