check / check (push) Canceled after 0s
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
117 lines
3.3 KiB
TOML
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"
|