Members' shares of earnings are split cumulatively by largest remainder in the closes, the members' equity statement, the K-1 worksheet and the viewer, so a member's capital on a given day never moves by a cent when its month is later closed. Old closes replay as they were; the first P3 close carries any true-up. Feature members_cumulative. Kani and Lean proofs of the bounded drift; bookspec examples. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01T3gXMVt7XJPi6ens1or9Dj
158 lines
4.2 KiB
TOML
158 lines
4.2 KiB
TOML
id = "members-close.true-up-of-a-per-close-split"
|
||
title = "Closes rounded one at a time, trued up by the first cumulative close"
|
||
rule = "When earlier closes split each close's net on its own, the first cumulative close that posts an entry MUST give each member their split of everything closed to the members, less what the earlier closes gave them, so it trues up the rounding they left; until it posts, the statement of members' equity MUST show the capital those closes posted, not the pending true-up."
|
||
status = "CHOICE"
|
||
sources = ["Treas. Reg. §1.704-1(b)(2)(iv)(b)"]
|
||
tags = ["partnership", "close", "rounding", "statement", "book", "us"]
|
||
|
||
# Books migrated from an engine that rounded each close on its own: three
|
||
# months of one cent at 50/50, each tie to A. April's cent is closed by the
|
||
# cumulative rule, counting from the first close.
|
||
#
|
||
# By hand, from the rule:
|
||
# January to March, each close on its own: 0.005 each, the tie to A, so
|
||
# A 0.03, B 0.00 (exact: 0.015 each).
|
||
# As of Apr 30, April's cent not yet closed: the split of everything,
|
||
# 0.04, is 0.02 / 0.02; of the closed 0.03, 0.02 / 0.01 (the tie to
|
||
# A); the unclosed cent is B's (0.02 − 0.01): A 0.03, B 0.01. The
|
||
# rounding the earlier closes left (A 0.01 ahead) shows only once
|
||
# posted.
|
||
# April's close: the running 0.04 is 0.02 / 0.02, less what was given
|
||
# (0.03 / 0.00): A −0.01, B +0.02. The entry: Dr 4000 0.01, Dr 3000
|
||
# 0.01, Cr 3001 0.02. As of Apr 30: A 0.02, B 0.02, each exact; as of
|
||
# Mar 31, still A 0.03, B 0.00.
|
||
|
||
[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, rounded on its own"
|
||
close = { start = "2026-01-01", to = "members", rounding = "per-close" }
|
||
|
||
[[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, rounded on its own"
|
||
close = { start = "2026-02-01", to = "members", rounding = "per-close" }
|
||
|
||
[[events]] # event 5
|
||
date = "2026-03-10"
|
||
description = "March's sale"
|
||
lines = [
|
||
{ account = "1000", side = "debit", amount = "0.01" },
|
||
{ account = "4000", side = "credit", amount = "0.01" },
|
||
]
|
||
|
||
[[events]] # event 6
|
||
date = "2026-03-31"
|
||
description = "Close March, rounded on its own"
|
||
close = { start = "2026-03-01", to = "members", rounding = "per-close" }
|
||
|
||
[[events]] # event 7
|
||
date = "2026-04-10"
|
||
description = "April's sale"
|
||
lines = [
|
||
{ account = "1000", side = "debit", amount = "0.01" },
|
||
{ account = "4000", side = "credit", amount = "0.01" },
|
||
]
|
||
|
||
[[events]] # event 8
|
||
date = "2026-04-30"
|
||
description = "Close April, cumulatively"
|
||
close = { start = "2026-04-01", to = "members" }
|
||
|
||
[[expect]]
|
||
query = "balances"
|
||
as_of = "2026-03-31"
|
||
after = 6
|
||
|
||
[expect.values]
|
||
"3000" = "0.03"
|
||
"3001" = "0.00"
|
||
|
||
[[expect]]
|
||
query = "members_equity"
|
||
from = "2026-01-01"
|
||
to = "2026-04-30"
|
||
after = 7
|
||
|
||
[expect.values]
|
||
"A.ending" = "0.03"
|
||
"B.ending" = "0.01"
|
||
|
||
[[expect]]
|
||
query = "entry"
|
||
entry = 8
|
||
|
||
[expect.values]
|
||
"4000.debit" = "0.01"
|
||
"3000.debit" = "0.01"
|
||
"3001.credit" = "0.02"
|
||
|
||
[[expect]]
|
||
query = "members_equity"
|
||
from = "2026-01-01"
|
||
to = "2026-04-30"
|
||
|
||
[expect.values]
|
||
"A.ending" = "0.02"
|
||
"B.ending" = "0.02"
|
||
|
||
[[expect]]
|
||
query = "members_equity"
|
||
from = "2026-01-01"
|
||
to = "2026-03-31"
|
||
|
||
[expect.values]
|
||
"A.ending" = "0.03"
|
||
"B.ending" = "0.00"
|