P3: odd cents split the same running way everywhere (defect 17, D-38)
check / check (push) Canceled after 0s

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
This commit is contained in:
swaitsandClaude Opus 5.5 committed 2026-10-20 21:35:00 -06:00
1 parent 2390dc6553
commit a7f3cc09a9
44 files changed
+6636 -195

No files matched your search

+12 -6
View File
@@ -63,9 +63,11 @@ requirement conflict, the requirement wins.
(loss), distributions (debits), ending — plus a total that equals
balance-sheet equity. Earnings not yet distributed (retained earnings and
unclosed income) and the period's income are allocated by ownership share
to the cent by largest remainder (the odd cent goes to the largest
remainder, ties to the earlier member; the owner, 2026-10-13), so every
row's total is exact. Any equity change the roll-forward doesn't explain is shown as
to the currency's minor unit by largest remainder (the odd cent goes to
the largest remainder, ties to the earlier member; the owner, 2026-10-13),
earnings not yet closed the way their close will split them (D-38,
rules.md B-13), so every row's total is exact and a member's capital on a
day never changes when its month is closed. Any equity change the roll-forward doesn't explain is shown as
"other", never hidden.
- **R-9d — Tax categories.** Revenue and expense accounts map to stable
tax categories (`ledger_core::tax::CATEGORIES`: key, label, income /
@@ -127,9 +129,13 @@ requirement conflict, the requirement wins.
end** (later-dated entries belong to later periods) and puts the net in
`to`: `CloseTo::RetainedEarnings` (`3999`, the corporate convention;
`close_period` is shorthand) or `CloseTo::Members` (each member's capital
account by share, to the cent, odd cents by largest remainder: the
partnership convention; closes journaled before 2026-10-13 replay with
the rule they were made under, the last member absorbing rounding), or `CloseTo::Account` (any equity account, e.g.
account by share, to the currency's minor unit, odd units by largest
remainder, cumulatively from the first members close with these members
and shares, so no member is ever a unit from their exact share: the
partnership convention, rules.md B-13; closes journaled under earlier
rules replay with the rule they were made under: `CloseTo::MembersRun`,
the run rule of 2026-10-13 to P3, `CloseTo::MembersPerClose`, and
before 2026-10-13 the last member absorbing rounding), or `CloseTo::Account` (any equity account, e.g.
a sole proprietor's capital). Every target can sweep owner-pay equity
accounts — draws, distributions, dividends — into it: a member's
distributions account into their own capital. The members' equity