Files
wanderbooks/bookspec/spec/period.md
T
swaitsandClaude Fable 5.1 1fbc1383cb feat(bookspec): the specification text and an example for the ledger's own laws (P13 step 4)
bookspec/spec holds the first edition: the model and the five laws
(00-model.md) and one file per area, each B-rule a section with its
status, a MUST/MAY statement, sources pinned either to a vendored source
with a verbatim quotation or to an exact external paragraph, its symbolic
form, its examples and its applicability. B-39, B-40, B-43 and B-45 are
reserved sections (allocated, not yet stated in rules.md); B-44 is stated
in rules.md and now carries its bookspec id and CONVENTION status.

Eight new examples show the laws that had none, each figure worked by
hand: an unbalanced entry is refused (Pacioli ch. 36, Pub. 583), a
negative or zero line is refused, a fraction of a cent is refused (ISO
4217), a child account takes its parent's type, the trial balance and the
accounting equation on one small book (cash 6550.25 = loan 2000 + capital
5000 + (sales 750.50 - rent 1200.25)), a reversal leaves the original
standing and a second reversal is refused, a close sweeps revenue and
expenses into Retained Earnings (3999) and the closed quarter takes no
late entry, and cents add exactly. The refusal vocabulary gains
unbalanced, negative_amount, zero_amount, too_few_lines,
finer_than_minor_unit, parent_type_mismatch, already_reversed and
period_closed; a refused entry may carry a non-positive amount.

The checker's spec.rs fails the build on a rule without its section, a
statement without MUST/SHOULD/MAY, a pin that is not verbatim in its
vendored source, examples that differ from the catalogue, or more than 60
pages.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HS8WZziDnyxunC23MUxrLp
2026-10-29 12:51:30 -06:00

2.5 KiB

Area: period

Periods and closes, and what an omitted date means.

BS-period-1: Revenue and expenses close into profit and loss, and that into capital (B-11)

  • Status: AUTHORITY (the mechanics); the account the net lands in depends on the entity
  • Statement: Closing a period MUST post an entry that brings every revenue and expense account's balance through the period's last day to zero and credits equity with exactly revenue less expenses; the entry MUST balance. A corporation closes into retained earnings, a partnership into each partner's capital (BS-partner-1).
  • Sources:
    • vendored sources/pacioli-1494.md: "must then be transferred for its closing (saldo) into the capital account"
    • external: OpenStax, Principles of Accounting, Volume 1, section 5.1: temporary accounts are closed at the end of each accounting period
  • Symbolic form: for nominal n: bal_n(close) = 0; E' = E + (R - X) (Bookspec.law_net_income_articulates).
  • Examples: period-a-close-sweeps-the-year-into-capital
  • Applicability: every entity; the target account differs by entity type.

BS-period-2: A closed period takes no new postings; periods close in order (B-12)

  • Status: CONVENTION
  • Statement: An entry dated within a closed period MUST be refused. Periods MUST close in order, and MUST nest (a month in a quarter in a year) and never partially overlap.
  • Sources:
    • vendored sources/irs-periods-and-methods.md: "A tax year is an annual accounting period for keeping records and reporting income and expenses"
  • Symbolic form: date(E) in closed(P) implies post(E) is refused; P, Q periods: nested or disjoint.
  • Examples: period-a-close-sweeps-the-year-into-capital
  • Applicability: every engine that closes.

BS-period-3: A report asked for without dates covers this fiscal year so far (B-30)

  • Status: AUTHORITY (the period); CHOICE (the default, the owner, 2026-10-20)
  • Statement: A report asked for with no dates MUST cover the fiscal year containing today, from its first day through today; an omitted start is the first day of the fiscal year holding the end; a start after today with no end MUST be refused; an end before the start MUST be refused.
  • Sources:
    • vendored sources/irs-periods-and-methods.md: "A tax year is an annual accounting period for keeping records and reporting income and expenses"
  • Symbolic form: to = today; from = fiscal_year_start(to); from <= to.
  • Examples: default-period-fiscal-year-to-date
  • Applicability: every engine with a fiscal-year setting.