Files
bookspec/examples/members-close.statement-before-and-after-a-close.toml
swaitsandClaude Opus 5.5 01c920c4a7 P3 review: the surface, docs and proofs
Split kernel::entry_flows into entry_movements and flows_of so the
reversal-mirror proof fits CI; prove runs the fast harnesses, prove-slow
the 8 slow ones (own job in scheduled CI), prove-all both. Laws in
verification.md renumbered 1-31 with a table of all 55 harnesses.

MCP docs checked against the 115 tools (about 60 fixes) with a test that
every tool is documented; rules.md cross-references fixed; bookspec
statuses and loader tightened; viewer notes wrap and accounts sort by
code; STATUS.md says P3 is built, cutover pending.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01T3gXMVt7XJPi6ens1or9Dj
2026-10-22 02:13:08 -06:00

117 lines
3.3 KiB
TOML

id = "members-close.statement-before-and-after-a-close"
title = "A member's capital on a day is the same before and after its month closes"
rule = "The statement of members' equity MUST split earnings not yet closed the way the next close to the members will (each member's split of everything closed plus those earnings, less their split of what was closed), so a member's capital as of a day MUST NOT change when a period ending on or before it is closed."
status = "CHOICE"
sources = [
"Treas. Reg. §1.704-1(b)(2)(iv)(b)",
"DECISION D-38 (owner, 2026-10-20): the statement splits unclosed earnings the same running way as the closes (wanderbooks rules.md B-13)",
]
tags = ["partnership", "close", "rounding", "statement", "book", "us"]
# Two members at 50/50; January's cent is closed to them, February's is
# earned but not yet closed (event 3), then closed (event 4).
#
# By hand, from the rule:
# January's close: 0.01 is 0.005 each; the tied cent to A (listed first):
# A 0.01, B 0.00.
# As of Feb 28, February not yet closed: closed 0.01, unclosed 0.01. The
# split of everything, 0.02, is 0.01 / 0.01; of the closed part, 0.01 /
# 0.00; so the unclosed cent is B's: A 0.01 + 0.00, B 0.00 + 0.01.
# (Splitting February's cent on its own would give it to A: A 0.02,
# B 0.00, and the close would then move it to B.)
# February's close gives the running 0.02, 0.01 each, less 0.01 / 0.00:
# B 0.01. As of Feb 28: A 0.01, B 0.01, as before the close.
[setup]
currency = "USD"
fiscal_year_start = "01-01"
basis = "accrual"
rounding = "largest-remainder"
[[setup.accounts]]
code = "1000"
name = "Cash"
type = "asset"
[[setup.accounts]]
code = "3000"
name = "Capital, A"
type = "equity"
[[setup.accounts]]
code = "3001"
name = "Capital, B"
type = "equity"
[[setup.accounts]]
code = "4000"
name = "Sales"
type = "revenue"
[[setup.members]]
name = "A"
capital_account = "3000"
share = "0.5"
[[setup.members]]
name = "B"
capital_account = "3001"
share = "0.5"
[[events]] # event 1
date = "2026-01-10"
description = "January's sale"
lines = [
{ account = "1000", side = "debit", amount = "0.01" },
{ account = "4000", side = "credit", amount = "0.01" },
]
[[events]] # event 2
date = "2026-01-31"
description = "Close January to the members"
close = { start = "2026-01-01", to = "members" }
[[events]] # event 3
date = "2026-02-10"
description = "February's sale"
lines = [
{ account = "1000", side = "debit", amount = "0.01" },
{ account = "4000", side = "credit", amount = "0.01" },
]
[[events]] # event 4
date = "2026-02-28"
description = "Close February to the members"
close = { start = "2026-02-01", to = "members" }
[[expect]]
query = "members_equity"
from = "2026-01-01"
to = "2026-02-28"
after = 3 # the books before February's close
[expect.values]
"A.ending" = "0.01"
"B.ending" = "0.01"
"A.net_income" = "0.01"
"B.net_income" = "0.01"
[[expect]]
query = "members_equity"
from = "2026-01-01"
to = "2026-02-28" # after every event: February closed
[expect.values]
"A.ending" = "0.01"
"B.ending" = "0.01"
"A.net_income" = "0.01"
"B.net_income" = "0.01"
[[expect]]
query = "entry"
entry = 4
[expect.values]
"4000.debit" = "0.01"
"3001.credit" = "0.01"