Chapter 1: The equation & the transaction

Subtitle: The physics of business

Before we touch debits/credits, we learn the law that must always hold:

\[\text{Assets} = \text{Liabilities} + \text{Equity}\]

LedgerLoom exists to enforce this law.

In this workbook, you will draft the accounting in a spreadsheet, then verify it with LedgerLoom.

Why do this?

  • A spreadsheet is great for exploration.

  • A verifier is great for proof.

  • When the two agree, you know you didn’t “balance by accident.”

The assignment: “Sparkle Cleaners”

Scenario

On January 1, 2026, Sarah opens Sparkle Cleaners, a local cleaning business.

Record these transactions:

  1. Jan 1: Sarah invests $10,000 cash into the business bank account.

  2. Jan 2: The business buys cleaning equipment for $3,000 (paid from the bank).

  3. Jan 3: The business buys cleaning supplies for $500 (paid from the bank).

Your goal

After each transaction, show that the equation remains balanced.

Draft the solution in Google Sheets

Create a sheet with these asset sub-columns:

  • Cash

  • Equipment

  • Supplies

And these right-side columns:

  • Liabilities (none yet in this chapter)

  • Equity (Owner capital)

Work each transaction step-by-step:

1) Owner investment (Jan 1)

  • Cash increases by 10,000 (asset up)

  • Capital increases by 10,000 (equity up)

2) Equipment purchase (Jan 2)

  • Cash decreases by 3,000

  • Equipment increases by 3,000

This is a pure asset swap.

3) Supplies purchase (Jan 3)

  • Cash decreases by 500

  • Supplies increases by 500

The gotcha: asset vs expense

Many students instinctively record the $500 as an expense (“we bought stuff to use”).

For this chapter, treat the supplies as an asset:

  • On Jan 3, the supplies are sitting on a shelf.

  • They become an expense later, when used up.

Translation box — what a spreadsheet hides

In a spreadsheet, you can “make it balance” by changing a cell. LedgerLoom won’t let you: the postings must sum to zero, every time.

Verify with LedgerLoom (v0.2.0 workflow)

In the workbook profile, we verify using the accounting-cycle artifacts that match what you do in class:

transactions.csv → (optional) adjustments.csv → entries → trial balances → closing

Step 1 — Initialize a workbook project

ledgerloom init --profile workbook sparkle_cleaners
cd sparkle_cleaners

Tip

If your terminal can’t find the ledgerloom command, use:

python -m ledgerloom init --profile workbook sparkle_cleaners

Step 2 — Add the accounts you need

Open config/chart_of_accounts.yaml and make sure it contains at least:

  • Assets:Cash

  • Assets:Equipment

  • Assets:Supplies

  • Equity:OwnerCapital

Keep it simple

In Chapter 1 we do not record expenses yet. Supplies are an asset here. (You’ll see supplies become an expense later, when used up.)

Step 3 — Enter the journal lines in transactions.csv

Open inputs/<period>/transactions.csv (the folder name is your period, e.g. 2026-01) and enter these lines:

entry_id,date,narration,account,debit,credit
T1,2026-01-01,Owner investment,Assets:Cash,10000.00,0.00
T1,2026-01-01,Owner investment,Equity:OwnerCapital,0.00,10000.00
T2,2026-01-02,Buy equipment,Assets:Equipment,3000.00,0.00
T2,2026-01-02,Buy equipment,Assets:Cash,0.00,3000.00
T3,2026-01-03,Buy supplies,Assets:Supplies,500.00,0.00
T3,2026-01-03,Buy supplies,Assets:Cash,0.00,500.00

Each entry_id groups the lines of a single transaction. LedgerLoom enforces that each entry balances.

Step 4 — Run check, then build

ledgerloom check --project .
ledgerloom build --project . --run-id ch01

Now open these artifacts under outputs/ch01/artifacts/:

  • entries.csv (your cleaned, canonical entries)

  • trial_balance_unadjusted.csv

Tip

If you are using Excel/Sheets, you can import the trial balance CSV and compare it directly to your spreadsheet totals.

Reconciling with your Google Sheet

Your sheet and LedgerLoom should agree on the ending balances:

  • Cash = 6,500

  • Equipment = 3,000

  • Supplies = 500

  • OwnerCapital = 10,000

If they don’t match, treat it like a programming bug:

  • locate the first place the two diverge,

  • inspect the transaction lines (wrong account? wrong sign? swapped debit/credit?),

  • fix the CSV,

  • re-run ledgerloom build.

That’s the Hybrid Method: draft fast, verify strict, reconcile to proof.