Files
wanderbooks/bookspec/examples/p3-party-members-equity-and-k1.toml
T
swaitsandClaude Opus 5.5 c2ceabbae9 P3: party totals by what moved the money, once (defects 14, 11, 24)
Each party's part of an entry is signed as its own account would show it,
with a direction and its cash and in-kind amounts; a reversal is its
original negated. Totals on a cash or all basis: for a member, all equals
the members' equity statement and cash the K-1's cash. Money is cash,
cards and the financing accounts, and a liability credit never pays its
own creditor (creditor_of), so accruals and declared distributions count
once. tin_last4 from the TIN or W-9 facts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01T3gXMVt7XJPi6ens1or9Dj
2026-10-21 12:12:26 -06:00

220 lines
6.5 KiB
TOML

# P3 defect 14, settled in design (wanderbooks plan/served.md P3): party
# totals count a member's entry by what moved their capital, so basis all
# is the statement of members' equity and basis cash means what it means
# on the K-1 worksheet. Regression tests: ledger-core
# tests/spec_party_totals.rs a_members_mixed_entry_splits_as_the_k1_does,
# basis_all_is_the_members_equity_statement_and_cash_the_k1s, and the
# property member_totals_are_the_members_equity_statement. The shape:
# bookspec/README.md.
id = "p3-party-members-equity-and-k1"
title = "A member's totals are their capital account: basis all the statement of members' equity, basis cash the K-1's cash"
rule = """
An entry naming only members that moves their equity counts what moved
their capital: a contribution received, a distribution paid. The
property in it (asset accounts that are neither cash nor receivables) is
in kind, shared among the members in proportion to their parts, to the
cent, leftover cents by largest remainder, ties to the member listed
first; the rest is cash, as the K-1 worksheet counts it: money, or what a
member paid for the company (an expense booked straight to capital, a
debt to them converted to capital).
"""
status = "CHOICE"
sources = [
"Treas. Reg. §1.704-1(b)(2)(iv)(b)(1)-(2), (c)(1): money and property contributed; a partnership liability a partner pays is money contributed (wanderbooks docs/spec/sources/irs-capital-accounts.md)",
"Partner's Instructions for Schedule K-1 (Form 1065), Item L: the capital contributed during the year (docs/spec/sources/irs-capital-accounts.md)",
"DECISION (owner, 2026-10-15): what a member paid for the company is cash on the K-1 (wanderbooks ledger-core k1 INVARIANT 3); DECISION (owner, 2026-10-20): a member's entry counts what moved their capital (rules.md B-35)",
]
tags = ["parties", "members", "k1", "members-equity", "in-kind", "rounding"]
[setup]
currency = "USD"
fiscal_year_start = "01-01"
basis = "accrual"
rounding = "largest-remainder"
cash_accounts = ["1000"]
financing_accounts = ["2100"]
[[setup.accounts]]
code = "1000"
name = "Checking"
type = "asset"
[[setup.accounts]]
code = "1500"
name = "Equipment"
type = "asset"
[[setup.accounts]]
code = "2100"
name = "Due to Members"
type = "liability"
[[setup.accounts]]
code = "3000"
name = "Capital — Tobin Harlow"
type = "equity"
[[setup.accounts]]
code = "3001"
name = "Capital — Morgan Ellis"
type = "equity"
[[setup.accounts]]
code = "6050"
name = "Domain & Hosting"
type = "expense"
[[setup.parties]]
name = "Tobin Harlow"
roles = ["member"]
[[setup.parties]]
name = "Morgan Ellis"
roles = ["member"]
[[setup.members]]
name = "Tobin Harlow"
share = "0.5"
capital_account = "3000"
[[setup.members]]
name = "Morgan Ellis"
share = "0.5"
capital_account = "3001"
# 1. A joint contribution of cash and property (the K-1 worksheet's
# SCENARIO 3): 500.00 each, of it 300.00 cash and 200.00 in kind.
[[events]]
date = "2026-02-01"
description = "Joint contribution, cash and equipment"
parties = [{ party = "Morgan Ellis" }, { party = "Tobin Harlow" }]
lines = [
{ account = "1000", side = "debit", amount = "600.00" },
{ account = "1500", side = "debit", amount = "400.00" },
{ account = "3000", side = "credit", amount = "500.00" },
{ account = "3001", side = "credit", amount = "500.00" },
]
# 2. One cent of property shared by two equal parts: the cent goes to the
# member listed first in the company's members (Tobin), whatever the
# order the entry names them in.
[[events]]
date = "2026-02-02"
description = "A cent of property"
parties = [{ party = "Morgan Ellis" }, { party = "Tobin Harlow" }]
lines = [
{ account = "1000", side = "debit", amount = "0.99" },
{ account = "1500", side = "debit", amount = "0.01" },
{ account = "3000", side = "credit", amount = "0.50" },
{ account = "3001", side = "credit", amount = "0.50" },
]
# 3. An expense Morgan paid, booked straight to capital: cash.
[[events]]
date = "2026-02-03"
description = "Hosting Morgan paid"
parties = [{ party = "Morgan Ellis" }]
lines = [
{ account = "6050", side = "debit", amount = "50.00" },
{ account = "3001", side = "credit", amount = "50.00" },
]
# 4. What the company owed Tobin, converted to capital: cash.
[[events]]
date = "2026-02-04"
description = "Advance converted"
parties = [{ party = "Tobin Harlow" }]
lines = [
{ account = "2100", side = "debit", amount = "70.00" },
{ account = "3000", side = "credit", amount = "70.00" },
]
[[expect]]
query = "party_part"
entry = 1
party = "Tobin Harlow"
values = { resolved = "-500.00", direction = "received", cash = "-300.00", in_kind = "-200.00" }
[[expect]]
query = "party_part"
entry = 2
party = "Tobin Harlow"
values = { resolved = "-0.50", direction = "received", cash = "-0.49", in_kind = "-0.01" }
[[expect]]
query = "party_part"
entry = 2
party = "Morgan Ellis"
values = { resolved = "-0.50", direction = "received", cash = "-0.50", in_kind = "0.00" }
[[expect]]
query = "party_part"
entry = 3
party = "Morgan Ellis"
values = { resolved = "-50.00", direction = "received", cash = "-50.00", in_kind = "0.00" }
[[expect]]
query = "party_part"
entry = 4
party = "Tobin Harlow"
values = { resolved = "-70.00", direction = "received", cash = "-70.00", in_kind = "0.00" }
# Tobin: cash 300.00 + 0.49 + 70.00; in kind 200.00 + 0.01.
[[expect]]
query = "party_totals"
party = "Tobin Harlow"
basis = "cash"
from = "2026-01-01"
to = "2026-12-31"
values = { paid = "0.00", received = "370.49" }
[[expect]]
query = "party_totals"
party = "Tobin Harlow"
basis = "all"
from = "2026-01-01"
to = "2026-12-31"
values = { paid = "0.00", received = "570.50" }
# Morgan: cash 300.00 + 0.50 + 50.00; in kind 200.00.
[[expect]]
query = "party_totals"
party = "Morgan Ellis"
basis = "cash"
from = "2026-01-01"
to = "2026-12-31"
values = { paid = "0.00", received = "350.50" }
[[expect]]
query = "party_totals"
party = "Morgan Ellis"
basis = "all"
from = "2026-01-01"
to = "2026-12-31"
values = { paid = "0.00", received = "550.50" }
[[expect]]
query = "members_equity"
from = "2026-01-01"
to = "2026-12-31"
values = { "Tobin Harlow.contributions" = "570.50", "Tobin Harlow.distributions" = "0.00" }
[[expect]]
query = "members_equity"
from = "2026-01-01"
to = "2026-12-31"
values = { "Morgan Ellis.contributions" = "550.50", "Morgan Ellis.distributions" = "0.00" }
[[expect]]
query = "k1"
from = "2026-01-01"
to = "2026-12-31"
values = { "Tobin Harlow.contributions_cash" = "370.49", "Tobin Harlow.contributions_property" = "200.01" }
[[expect]]
query = "k1"
from = "2026-01-01"
to = "2026-12-31"
values = { "Morgan Ellis.contributions_cash" = "350.50", "Morgan Ellis.contributions_property" = "200.00" }