Scenario introduction

Scenario introduction

Consider Alice, a freelance consultant using BusDK to run bookkeeping in a dedicated repository workspace. She uses the bus dispatcher and a small set of focused modules (accounts, entities, journal, invoices, bank, reconcile, VAT, reports) to keep her CSV-based records validated, auditable, and reproducible, while handling version control operations outside BusDK.

In practice her workflow is a small sequence of repeatable module commands that produce and validate repository data:

  1. She bootstraps the workspace datasets and schemas:
bus init
  1. She configures master data such as the chart of accounts:
bus accounts add --code 3000 --name "Sales income 25.5%" --type income
bus entities add --id CUST-ACME --name "Acme Oy"
  1. She records day-to-day activity using subledger commands and append-only journal postings:
bus invoices add --type sales --invoice-id INV-1001 --invoice-date 2026-02-14 --due-date 2026-03-14 --customer "Acme Oy"
bus journal add --date 2026-02-14 --desc "Sales invoice INV-1001" --debit 1700=125.50 --credit 3000=100.00 --credit 2930=25.50
  1. She imports evidence such as bank statements, then records the ledger impact explicitly:
bus bank import --file 202602-bank-statement.csv
bus reconcile match --bank-id BANK-2026-02-14-001 --invoice-id INV-1001
  1. She closes reporting periods by computing VAT and producing report outputs:
bus vat report --period 2026-02
bus reports trial-balance --as-of 2026-02-28

The full, module-level flow is summarized in workflow/accounting-workflow-overview.md, and the rest of this section walks through concrete examples of how the pieces fit together.