A year of slips becomes a ledger you can post.
Set a workspace year to Ledger and the same pipeline that builds medical claim packs builds bookkeeping input instead. Till slips, supplier invoices and bank statements go in. A categorised ledger with the VAT split out per line comes out, as CSV and XLSX, with the source document referenced on every row.
Ten categories. A rule table decides, not a model.
Each line is categorised by deterministic rules: merchant first, then the description, then the line items. The rules know that a fuel brand on the slip header means travel while the same brand word inside a shopping list does not, and that a hardware store can be office supplies or repairs depending on what was bought. A line that matches no rule is left uncategorised and flagged. The ledger never guesses a category.
The fixed category list
A fixed list means the ledger maps cleanly onto your chart of accounts once, and stays mapped. Your bookkeeper decides where other goes, not the AI.
One CSV, one workbook, no surprises
The export is Expense_Ledger.csv and Expense_Ledger.xlsx. The workbook carries a Ledger sheet and a Line items sheet, so a till slip’s individual items stay attached to their total. Free-text cells are defused against spreadsheet formula injection before they reach you.
| Column | What it holds |
|---|---|
| ref | the line's stable reference |
| date | transaction date |
| merchant | who was paid |
| description | what the slip says |
| total | the full amount paid |
| vat | the VAT inside that total |
| currency | per line, so mixed years stay honest |
| category | one of the ten fixed categories |
| payment method | card, cash, EFT where the slip shows it |
| confidence | how sure the read is |
| source files | the document each line came from |
| needs review | flagged lines say so in the export too |
Medical slips do not leak into the ledger
A slip that looks medical in a ledger year is flagged, not claimed. You move it to the client’s medical year with one click, convert the whole year to Medical, or say it is not medical and it lands in the ledger. A ledger year never quietly absorbs a claimable medical expense, and never claims one either.
Doubt is printed, not hidden
Every line carries a confidence figure and a needs-review flag, in the export itself. A low-confidence read reaches you as a flagged line next to its source document, so the two minutes of human checking land exactly where they matter.
Same privacy posture as the medical stream: documents are read by private, local AI on machines in South Africa, never by a third-party AI service. The details are on the practices page and in the privacy policy.
Ledger pricing is per practice
Ledger volumes differ too much between practices for one published number to be honest. Tell us how many clients and roughly how many slips a year, and we will quote a flat fee up front. Never a percentage of anything.