ByteBook Training Handbook

Start here

The twelve businesses you can practise on

Chapter 37 min read

Each simulation sets up a different New Zealand business, trades it, banks it and files it — then checks the books from the raw rows.

The exercises in this handbook run on simulated businesses. Each one is a real shape of New Zealand business, with the tax settings and the awkward transactions that go with it.

SimulationBusinessWhat makes it worth practising
hairdresserBright CutsNot registered for GST, so no GST appears anywhere on the documents
consultantKōwhai AdvisoryPayments-basis GST, monthly filing, one invoice paid late
builderTasman Builders LtdStage payments against a single contract, so one job produces several invoices
cafeHarbour Cafe & CoHigh volume of small sales and a large daily banking pattern
onlinestoreLoom & LightRefunds and returns, which reverse revenue after the fact
landlordMarine Parade RentalsExempt rent beside taxable supplies, so the GST return needs care
horticultureWhirinaki ContractingSix-monthly GST, so a period spans a lot of trading
startupFoundry LabsNo GST registration and no revenue, so the books are mostly costs
dentalMarine Parade DentalSecurity switched on, so you work with roles and passwords
plumberNgata Plumbing LtdA busy bank statement with many lines to code
wholesalerPacific Trading LtdInventory bought and sold, with a six-monthly return
roundingPrecision Engineering LtdAmounts chosen to break the arithmetic that rounds the wrong way

Ask for the list at any time:

python scripts/simulate.py --list

What a simulation actually does

Running one is not a script that types transactions into the screen. It drives the real application. It sets the business up, sends its invoices, records its bills, imports a bank statement, codes the lines, files a GST period and takes a backup — through the same pages you will use.

Then it goes back over what it did, reading the database directly, and checks:

  • every entry balances, so money in equals money out;
  • every invoice's lines add up to its total;
  • the GST in the return equals the GST in the ledger;
  • the balance sheet balances;
  • nothing is stored off the cent;
  • a voided entry cancels itself out;
  • the fingerprint chain has no breaks.

Every round draws different prices, dates, GST bases and filing frequencies from that round's seed, so two runs are never quite the same. Run one business in detail:

python scripts/simulate.py consultant

Or run all twelve, ten times over:

python scripts/simulate.py --rounds 10

Why this matters more than it sounds

A rule that is easy to state is often hard to apply. Inventory is measured at the lower of cost and net realisable value NZ IAS 2.9 is one sentence. Knowing when a selling price has fallen far enough that the book value has to come down is a judgement, and judgement needs practice on something that behaves like a real business.

The simulations give you a business where the awkward cases are present on purpose:

  • a customer who pays late, so the aged debtors report has something in it;
  • a payment made twice, which the duplicate-payment procedure should catch;
  • a manual journal, which an auditor will ask about;
  • a bank statement that has to be reconciled, and can be made not to agree;
  • a period that can be closed, and then quietly tested by backdating an entry into it.

Choosing where to start

If you are new to bookkeeping, start with the consultant. It is a small business with ordinary transactions and one late payment.

If you are here for the audit side, start with the plumber. A busy bank statement produces more coding decisions, more opportunities to make a mistake, and a more interesting reconciliation.

If you are teaching, use the rounding business last. It is built from the amounts that break naive rounding, and it is the one that shows why money has to be handled as decimal cents rather than as a floating-point number.

Arrow keys, or the buttons