Files
wanderbooks/bookspec/examples/cash-flow.two-member-llc-first-year.toml
T
swaitsandClaude Opus 5.5 eb4329bb2a
check / check (push) Canceled after 0s
P3: the cash flow statement by ASC 230 (defect 1, D-35, D-42)
Direct method with the operating reconciliation and noncash schedules; it
foots by construction (Lean and Kani). Every non-cash account belongs to
one section; reversals net; a member or lender paying for the company is
cash borrowed and spent (D-42, constructive receipt and disbursement);
property a member contributes stays noncash. The bookspec seed: one loader
checks every example.

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

444 lines
13 KiB
TOML

id = "cash-flow.two-member-llc-first-year"
title = "A two-member LLC's first weeks: contributions, member-paid expenses, property contributed, corrections"
rule = "The statement of cash flows MUST report cash receipts and payments, by section, with each reversal netted against its original in the period; expenses members paid personally on credit to them MUST be shown as cash borrowed from the members and spent, on each payment's date; property the members contributed MUST be disclosed as a noncash activity; the sections MUST sum to the change in cash."
# CHOICE: the member-paid expenses. ASC 230 doesn't address a payment made
# on the entity's behalf; the firm guides present it by substance as a
# constructive receipt and disbursement (a financing inflow and an
# operating outflow), and the owner chose that (D-42, revising D-35's
# noncash presentation). The rest is the Codification's.
status = "CHOICE"
sources = [
"ASC 230-10-10-1",
"ASC 230-10-45-14(a)",
"ASC 230-10-45-14(b)",
"ASC 230-10-45-15(b)",
"ASC 230-10-45-17(b)",
"ASC 230-10-45-24",
"ASC 230-10-45-28",
"ASC 230-10-45-30",
"ASC 230-10-50-3",
"ASC 230-10-50-4",
"PwC Viewpoint, Financial statement presentation 6.9.3.1 (cash a third party receives or pays on the entity's behalf is included as though through the entity's accounts)",
"Deloitte Roadmap, Statement of cash flows 7.2 (constructive receipt and disbursement)",
"BDO Blueprint, Statement of cash flows under ASC 230 (December 2025) 3.4 (a parent paying a subsidiary's expenses)",
"wanderbooks D-42 (owner, 2026-10-20: a member or lender paying for the company is cash borrowed and spent)",
]
tags = ["accrual", "book", "us", "cash-flow", "partnership", "constructive", "regression:p3-defect-1"]
# A two-member LLC's first weeks, in the shape of the books P3 defect 1
# was found in: the same 23 entries in the same order, on the same
# accounts and roles (two contributions in cash, expenses the members paid
# personally through Due to Members and two reimbursements, a domain
# expensed then corrected to a prepaid, two card charges, four devices the
# members owned contributed, two of them first entered wrongly and
# reversed), with every amount and date this example's own. Before the fix
# the statement didn't foot: the reversals' credits to equipment (#13,
# #18) belonged to no section, and the contributed devices read as
# purchases.
[setup]
currency = "USD"
fiscal_year_start = "01-01"
basis = "accrual"
rounding = "half-even"
cash_accounts = ["1000"]
financing_accounts = ["2100"]
[[setup.accounts]]
code = "1000"
name = "Checking"
type = "asset"
[[setup.accounts]]
code = "1300"
name = "Prepaid Expenses"
type = "asset"
[[setup.accounts]]
code = "1500"
name = "Equipment"
type = "asset"
[[setup.accounts]]
code = "1510"
name = "Accumulated Depreciation"
type = "asset"
[[setup.accounts]]
code = "2050"
name = "Business Card"
type = "liability"
[[setup.accounts]]
code = "2100"
name = "Due to Members"
type = "liability"
[[setup.accounts]]
code = "3000"
name = "Capital — Member A"
type = "equity"
[[setup.accounts]]
code = "3001"
name = "Capital — Member B"
type = "equity"
[[setup.accounts]]
code = "6000"
name = "Organizational Costs"
type = "expense"
[[setup.accounts]]
code = "6050"
name = "Domain & Hosting"
type = "expense"
[[setup.accounts]]
code = "6200"
name = "Developer Fees"
type = "expense"
[[setup.accounts]]
code = "6300"
name = "Software & Subscriptions"
type = "expense"
[[setup.accounts]]
code = "6400"
name = "Memberships & Licenses"
type = "expense"
[[setup.accounts]]
code = "6500"
name = "Depreciation Expense"
type = "expense"
[[setup.fixed_assets]]
cost_account = "1500"
accumulated_account = "1510"
expense_account = "6500"
[[setup.members]]
name = "Member A"
capital_account = "3000"
[[setup.members]]
name = "Member B"
capital_account = "3001"
# Entry 1.
[[events]]
date = "2026-03-02"
description = "Formation filing fee, paid by the members"
lines = [
{ account = "6000", side = "debit", amount = "85.00" },
{ account = "2100", side = "credit", amount = "85.00" },
]
# Entry 2.
[[events]]
date = "2026-03-03"
description = "Domain, 1 year, paid by the members"
lines = [
{ account = "6050", side = "debit", amount = "12.97" },
{ account = "2100", side = "credit", amount = "12.97" },
]
# Entry 3.
[[events]]
date = "2026-03-05"
description = "Developer registration, paid by the members"
lines = [
{ account = "6200", side = "debit", amount = "99.00" },
{ account = "2100", side = "credit", amount = "99.00" },
]
# Entry 4.
[[events]]
date = "2026-03-09"
description = "Contribution — Member A"
lines = [
{ account = "1000", side = "debit", amount = "1200.00" },
{ account = "3000", side = "credit", amount = "1200.00" },
]
# Entry 5.
[[events]]
date = "2026-03-10"
description = "Contribution — Member B"
lines = [
{ account = "1000", side = "debit", amount = "800.00" },
{ account = "3001", side = "credit", amount = "800.00" },
]
# Entry 6.
[[events]]
date = "2026-03-11"
description = "Subscription top-up, paid by the members"
lines = [
{ account = "6300", side = "debit", amount = "7.49" },
{ account = "2100", side = "credit", amount = "7.49" },
]
# Entry 7.
[[events]]
date = "2026-03-16"
description = "Developer membership, paid by the members"
lines = [
{ account = "6400", side = "debit", amount = "129.00" },
{ account = "2100", side = "credit", amount = "129.00" },
]
# Entry 8.
[[events]]
date = "2026-03-23"
description = "Reimburse members"
lines = [
{ account = "2100", side = "debit", amount = "333.46" },
{ account = "1000", side = "credit", amount = "333.46" },
]
# Entry 9.
[[events]]
date = "2026-03-20"
description = "Domain, 2 years, paid by the members"
lines = [
{ account = "6050", side = "debit", amount = "46.38" },
{ account = "2100", side = "credit", amount = "46.38" },
]
# Entry 10.
[[events]]
date = "2026-03-25"
description = "API credits on the card"
lines = [
{ account = "6300", side = "debit", amount = "14.20" },
{ account = "2050", side = "credit", amount = "14.20" },
]
# Entry 11.
[[events]]
date = "2026-03-26"
description = "Reimburse members"
lines = [
{ account = "2100", side = "debit", amount = "46.38" },
{ account = "1000", side = "credit", amount = "46.38" },
]
# Entry 12.
[[events]]
date = "2026-03-27"
description = "Laptop contributed by Member A"
lines = [
{ account = "1500", side = "debit", amount = "1480.00" },
{ account = "3000", side = "credit", amount = "1480.00" },
]
# Entry 13.
[[events]]
date = "2026-03-27"
description = "Reverse entry 12: contributed jointly"
reverses = 12
# Entry 14.
[[events]]
date = "2026-03-27"
description = "Laptop contributed jointly"
lines = [
{ account = "1500", side = "debit", amount = "1480.00" },
{ account = "3000", side = "credit", amount = "740.00" },
{ account = "3001", side = "credit", amount = "740.00" },
]
# Entry 15.
[[events]]
date = "2026-03-27"
description = "Laptop contributed jointly"
lines = [
{ account = "1500", side = "debit", amount = "1190.00" },
{ account = "3000", side = "credit", amount = "595.00" },
{ account = "3001", side = "credit", amount = "595.00" },
]
# Entry 16.
[[events]]
date = "2026-03-27"
description = "Desktop contributed jointly"
lines = [
{ account = "1500", side = "debit", amount = "2210.00" },
{ account = "3000", side = "credit", amount = "1105.00" },
{ account = "3001", side = "credit", amount = "1105.00" },
]
# Entry 17.
[[events]]
date = "2026-03-27"
description = "Tablet contributed jointly"
lines = [
{ account = "1500", side = "debit", amount = "630.00" },
{ account = "3000", side = "credit", amount = "315.00" },
{ account = "3001", side = "credit", amount = "315.00" },
]
# Entry 18.
[[events]]
date = "2026-03-27"
description = "Reverse entry 15: the service plan is separate"
reverses = 15
# Entry 19.
[[events]]
date = "2026-03-27"
description = "Laptop and its service plan contributed jointly"
lines = [
{ account = "1500", side = "debit", amount = "1151.00" },
{ account = "1300", side = "debit", amount = "39.00" },
{ account = "3000", side = "credit", amount = "595.00" },
{ account = "3001", side = "credit", amount = "595.00" },
]
# Entry 20.
[[events]]
date = "2026-03-20"
description = "Domain, 2 years, paid by the members, prepaid"
lines = [
{ account = "1300", side = "debit", amount = "46.38" },
{ account = "2100", side = "credit", amount = "46.38" },
]
# Entry 21.
[[events]]
date = "2026-03-12"
description = "Subscription, paid by the members"
lines = [
{ account = "6300", side = "debit", amount = "216.40" },
{ account = "2100", side = "credit", amount = "216.40" },
]
# Entry 22.
[[events]]
date = "2026-03-20"
description = "Reverse entry 9: prepaid, not expensed"
reverses = 9
# Entry 23.
[[events]]
date = "2026-03-30"
description = "API credits on the card"
lines = [
{ account = "6300", side = "debit", amount = "42.75" },
{ account = "2050", side = "credit", amount = "42.75" },
]
# By hand, the year to 2026-03-31 (rules.md B-14; D-42 for what the
# members paid). Cash is 1000; 2100 (Due to Members) is financing.
# - Operating: the members paid #1 85.00, #2 12.97, #3 99.00, #6 7.49,
# #21 216.40, #7 129.00 and #20 46.38 (the prepaid domain) for the
# company through 2100, each borrowed (financing, 45-14(b)) and spent
# (operating, 45-17(b)) on its date: 85.00 + 12.97 + 99.00 + 7.49 +
# 216.40 + 129.00 + 46.38 = 596.24, so operating -596.24, all cash paid
# to suppliers. #9 and its reversal #22 net out (rule 6). The card's #10
# and #23 moved no cash and 2050 is not financing: no line.
# - Investing 0.00: every device was property the members owned (50-4),
# disclosed below; #12/#13 and #15/#18 net out.
# - Financing: #4 +1,200.00 and #5 +800.00 (contributions, 45-14(a));
# +596.24 borrowed from the members (the seven above); the
# reimbursements #8 -333.46 (#1, #2, #3, #6 and #7: 85.00 + 12.97 +
# 99.00 + 7.49 + 129.00) and #11 -46.38 (#20), 45-15(b): 1,200.00 +
# 800.00 + 596.24 - 333.46 - 46.38 = +2,216.40.
# - Sum: -596.24 + 0.00 + 2,216.40 = +1,620.16, the change in cash (in
# 1,200.00 + 800.00, out 333.46 + 46.38; 0.00 to 1,620.16); difference
# 0.00.
# - Reconciliation (45-28 to 45-30): net income is minus the expenses,
# 85.00 + 12.97 + 99.00 + 7.49 + 129.00 + 46.38 - 46.38 + 14.20 + 216.40
# + 42.75 = 606.81, so -606.81; other noncash +39.00 (#19's service
# plan, contributed with the laptop); increase in 1300, 39.00 + 46.38,
# so -85.38; increase in 2050, 14.20 + 42.75, so +56.95. Total -606.81 +
# 39.00 - 85.38 + 56.95 = -596.24, the operating section.
# - Disclosed (50-3, 50-4), the property contributed: #14 1,480.00, #16
# 2,210.00, #17 630.00, #19 1,190.00 (1,151.00 equipment and 39.00 a
# prepaid service plan), 5,510.00 in all; #12/#13 and #15/#18 drop out.
[[expect]]
query = "cash_flow"
from = "2026-01-01"
to = "2026-03-31"
[expect.values]
operating = "-596.24"
investing = "0.00"
financing = "2216.40"
net_change = "1620.16"
cash_beginning = "0.00"
cash_ending = "1620.16"
difference = "0.00"
net_income = "-606.81"
"operating.1" = "-85.00"
"operating.2" = "-12.97"
"operating.3" = "-99.00"
"operating.6" = "-7.49"
"operating.7" = "-129.00"
"operating.20" = "-46.38"
"operating.21" = "-216.40"
"operating.count" = "7"
"investing.count" = "0"
"financing.1" = "85.00"
"financing.1.on_behalf" = "85.00"
"financing.2" = "12.97"
"financing.3" = "99.00"
"financing.4" = "1200.00"
"financing.4.on_behalf" = "0.00"
"financing.5" = "800.00"
"financing.6" = "7.49"
"financing.7" = "129.00"
"financing.8" = "-333.46"
"financing.11" = "-46.38"
"financing.20" = "46.38"
"financing.20.on_behalf" = "46.38"
"financing.21" = "216.40"
"financing.count" = "11"
"reconciliation.other_noncash" = "39.00"
"reconciliation.balance_change.1300" = "-85.38"
"reconciliation.balance_change.2050" = "56.95"
"noncash.14" = "1480.00"
"noncash.16" = "2210.00"
"noncash.17" = "630.00"
"noncash.19" = "1190.00"
"noncash.count" = "4"
# The same books to 2026-03-18: #1 to #7 and #21 are dated by then (#9,
# #20 and #22 on 03-20, the rest later). The members paid #1, #2, #3, #6,
# #7 and #21 for the company, 85.00 + 12.97 + 99.00 + 7.49 + 129.00 +
# 216.40 = 549.86: operating -549.86; financing #4 +1,200.00, #5 +800.00
# and the 549.86 borrowed, +2,549.86; the change in cash 2,000.00
# (-549.86 + 2,549.86); net income -549.86 with no reconciling item (no
# operating balance has moved yet); nothing disclosed.
[[expect]]
query = "cash_flow"
from = "2026-01-01"
to = "2026-03-18"
[expect.values]
operating = "-549.86"
investing = "0.00"
financing = "2549.86"
net_change = "2000.00"
difference = "0.00"
net_income = "-549.86"
"operating.1" = "-85.00"
"operating.2" = "-12.97"
"operating.3" = "-99.00"
"operating.6" = "-7.49"
"operating.7" = "-129.00"
"operating.21" = "-216.40"
"operating.count" = "6"
"financing.1" = "85.00"
"financing.2" = "12.97"
"financing.3" = "99.00"
"financing.4" = "1200.00"
"financing.5" = "800.00"
"financing.6" = "7.49"
"financing.7" = "129.00"
"financing.21" = "216.40"
"financing.count" = "8"
"noncash.count" = "0"