---
name: finance-for-developers-checks
description: 16 rules from the Noesa course "Building an Accounting Ledger". For backend developers on finance/billing teams who want the domain, not an accounting degree.
---

# Building an Accounting Ledger — the rules

Use with: Claude Code or Claude (save as a skill), Cursor (save under .cursor/rules as .mdc), ChatGPT or any other assistant (paste the text below into custom instructions or a project's instructions).

16 rules, taken from the course at https://noesa.leafsoft.online/c/finance-for-developers

Each heading is one thing the course teaches. Most are checks to run on your own output before presenting it as done; a few are background you are expected to have. 9 also name a mistake models make by default, under "Watch for".

Apply these to the thing you are producing — the type, the schema, the query, the copy — not only to how you explain it. Where a rule names a field, a format or an identifier, that name belongs in the output.

## The ledger: accounting as an append-only event log

Read any accounting entry and say what moved where.

## Five account types and the one equation

Classify any account into one of five types and predict which direction increases it.

## Journal entries & JVs: the write API of accounting

Explain what a Journal Voucher is, when a human writes one, and why systems mostly shouldn't.

## The chart of accounts: finance's schema

Navigate a chart of accounts and explain why posting to the right account matters as much as the right amount.

## Accrual vs cash: when is money real?

State the revenue-recognition principle and apply it to a subscription.

**Watch for:** If you asked an AI to post the company's annual payment, what timing mistake might still look perfectly plausible?

It may credit revenue when cash arrives because payment-equals-income is the common pattern. It cannot infer the company's service obligation from the amount alone. You check what was delivered, then keep the unearned amount in Deferred Revenue until the service is earned.

## The trial balance: the system's checksum

Read a trial balance and know what it proves — and what it can't.

**Watch for:** An AI tells you the ledger is correct because the trial balance agrees. What must you challenge before accepting that answer?

Balance proves only that debits equal credits. Fluent output can mistake a checksum for full correctness and miss wrong accounts, early recognition, or an absent transaction. You check classification, timing, and completeness with separate reconciliations and review.

## P&L and Balance Sheet: two reports, one link

Explain what each statement answers and how profit flows from one into the other.

## Deferred revenue I: earning money you already collected

Post the full lifecycle of a prepaid subscription: collection, monthly recognition, and the closing balance.

**Watch for:** If an AI writes the monthly recognition job, what might make correct-looking entries post twice?

It may optimize for the happy-path loop and omit a durable idempotency latch. Retries and overlapping workers then consume the same schedule row more than once. You check the unique period key, the posted-entry link, and the invariant that remaining schedules equal the deferred balance.

## Deferred revenue II: upgrades, refunds, and the edge cases

Reason out the correct posting for mid-term plan changes, cancellations, and refunds — from the principle, not a lookup table.

**Watch for:** You ask an AI to refund a cancelled subscription. What context can make its balanced entry financially wrong?

Without the company's delivery history and refund policy, it may debit Revenue for the whole contract because that is the shortest reversal. You check which part was earned and leave it untouched; only the unearned obligation is refunded or re-planned.

## Invoices, AR, and credit notes: the billing state machine

Trace an invoice through its states and name the entry each transition writes.

**Watch for:** If an AI implements "mark invoice paid," what boundary might its code leave between the state change and the ledger?

The shortest working path may update the invoice and post the journal entry in separate operations. A crash or retry can leave one without the other. You check that the transition and entry commit atomically, with an idempotency key and an application-total guard.

## Opening balance: day zero of a ledger

Explain what opening balances are, why migrations depend on them, and what "Opening Balance Equity" is doing in the COA.

**Watch for:** You hand an AI the old trial balance and the open-invoice export. What migration error can still pass a balanced opening entry?

It may import both the AR total and the invoices that already compose that total because it lacks your source-of-truth decision. The opening JV can still balance while AR is doubled. You choose one authoritative source per account and verify that document detail rolls up to the opening line.

## The financial year: periods, locking, and closing

Explain fiscal years and period locks, and post the year-end close.

**Watch for:** If you ask an AI to fix a March posting after March is locked, what dangerous shortcut might it take?

Missing your lock policy, it may back-date the correction or silently move the date to make the write succeed. The first rewrites published history; the second lies about event time. You require an explicit current-period correction with narration and preserve both dates.

## Reconciliation: when your books meet the bank

Describe bank and gateway reconciliation and what a suspense account is for.

## Multi-currency: one transaction, two values

Post a foreign-currency invoice and its payment, including the exchange difference.

**Watch for:** An AI generates the foreign-currency posting from today's exchange rate. What could make the numbers look current but the ledger wrong?

It may re-derive old base amounts from the latest rate or use floating-point arithmetic because those are common implementation defaults. You preserve the rate actually used at posting, store exact money values, and test the rounding policy and zero-difference case.

## Audit: proving the books to a stranger

Explain what an audit verifies and derive the engineering requirements it imposes.

**Watch for:** An AI scaffolds a normal create-read-update-delete service for invoices. Which rule of bookkeeping does “update” quietly break?

Common CRUD defaults favor updates and deletes, while an auditable ledger needs immutable postings, versioned documents, actor-and-reason trails, and separate approval powers. You review the generated design from the auditor's replay path, not from whether create, read, update, and delete appear to work.

## Capstone: one subscription, end to end

Trace a single customer through every concept in this course, and keep the decision checklist that makes you autonomous.
