spec: ASC paragraphs read directly (360, 340, 210, 230, 606); all confirm the rules
check / check (push) Canceled after 0s

Read in the ASC basic view and vendored as short quotes with paragraph
numbers (docs/spec/sources/fasb-asc.md). Depreciation: any systematic and
rational allocation of cost less salvage (360-10-35-4); prepaids are
current assets with no prescribed expensing method (340-10-05-4,
210-10-45-1/2); cash flows gross and classified three ways, owners'
advances financing (230-10-45-7/10/14(b)/15(b)); a principal's revenue
is gross (606-10-55-37B). Citation fixed: 230-10-45-14(b), not (2).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GWVo7x3UHw5kwCUaWxiejX
This commit is contained in:
swaitsandClaude Opus 5.5 committed 2026-10-14 14:11:59 -06:00
1 parent fe9625502f
commit 9a1f009f98
9 files changed
+86 -18

No files matched your search

+1 -1
View File
@@ -102,7 +102,7 @@ pub struct BooksSettings {
pub cash_accounts: Vec<String>,
/// `[books] financing_accounts`: liability account codes the cash flow
/// statement treats as financing (loans, and what owners advanced:
/// ASC 230-10-45-14(2)). Empty: callers decide.
/// ASC 230-10-45-14(b)). Empty: callers decide.
pub financing_accounts: Vec<String>,
/// `[books] investing_accounts`: asset account codes the cash flow
/// statement treats as investing (loans the company makes, investments
+1 -1
View File
@@ -1091,7 +1091,7 @@ pub struct CashFlowParams {
/// Accounts treated as cash. Their net change is the reconciling total.
pub cash_accounts: Vec<crate::AccountId>,
/// Liability accounts treated as financing (debt, including what the
/// owners advanced: ASC 230-10-45-14(2) "other short- or long-term
/// owners advanced: ASC 230-10-45-14(b) "other short- or long-term
/// borrowing"). Default empty: all liabilities are operating working
/// capital. All equity is financing.
pub financing_accounts: Vec<crate::AccountId>,
+1 -1
View File
@@ -1332,7 +1332,7 @@ fn lines(ls: &[ledger_core::reports::CashFlowLine]) -> Vec<(String, Decimal)> {
/// Oracle: ASC 230-10-45-7 ("information about the gross amounts of cash
/// receipts and cash payments during a period is more relevant than
/// information about the net amounts"), 230-10-45-14(2) (proceeds from
/// information about the net amounts"), 230-10-45-14(b) (proceeds from
/// "other short- or long-term borrowing") and 45-15(2) ("Repayments of
/// amounts borrowed"): borrowing and repayment are separate lines.
#[test]
+1 -1
View File
@@ -650,7 +650,7 @@ pub struct CashFlowParams {
#[serde(default)]
pub cash_accounts: Vec<String>,
/// Account codes for liabilities treated as financing (loans, and what
/// owners advanced: ASC 230-10-45-14(2)). Defaults to `[books]
/// owners advanced: ASC 230-10-45-14(b)). Defaults to `[books]
/// financing_accounts`, else empty (liabilities are working capital).
#[serde(default)]
pub financing_accounts: Vec<String>,
+1 -1
View File
@@ -38,7 +38,7 @@ footers, and `[books] receipt_threshold` sets the receipt policy unless
and `close_sweep` (draw, distribution, or dividend accounts closed into it).
The cash flow statement's account roles are `[books] cash_accounts` (what
it reconciles to), `financing_accounts` (loans, and money the owners
advanced, such as a "Due to owners" liability: ASC 230-10-45-14(2)), and
advanced, such as a "Due to owners" liability: ASC 230-10-45-14(b)), and
`investing_accounts` (loans the company makes, investments it buys: ASC
230-10-20); the tools and the viewer both read them, and a call may pass
its own (docs/spec/rules.md B-14).
+3 -5
View File
@@ -61,8 +61,6 @@ later; new commands go through the checked ones. Pinned by
Read on 2026-10-13 through Deloitte's free DART roadmaps, which reproduce
ASC text: ASC 230-10-45-16 and -28, 326-20-55-37/38, 606-10-25-23, 45-2,
55-37/38, 830-20-30-1. Not yet verified (the ASC's free basic view needs a
login): ASC 360-10-35-4 (depreciation), 340-10 (prepaids), 230-10-45-10,
606-10-55-37B, 210 (balance sheet). Until someone with a FASB basic-view
account reads them, the rules that would cite them cite the textbook and
say so.
55-37/38, 830-20-30-1. Read directly in the ASC basic view on 2026-10-14
(`sources/fasb-asc.md`): 360-10-35-4, 340-10-05-2/4/5, 210-10-45-1/2/5,
230-10-45-7/10/12/13/14/15, 606-10-55-36 through 55-38. None left open.
+17 -6
View File
@@ -257,14 +257,16 @@ inflows from operating activities: Cash receipts from sales of goods or
services…". A closing entry is not income or spending (B-11), so period
statements exclude it.
Investing and financing are gross (ASC 230-10-45-7, via Deloitte DART:
Investing and financing are gross (ASC 230-10-45-7, read directly
2026-10-14, `sources/fasb-asc.md`:
"information about the gross amounts of cash receipts and cash payments
during a period is more relevant than information about the net
amounts"; 45-8 allows netting only where "the turnover is quick, the
amounts are large, and the maturities are short"). Financing inflows
include "Proceeds from issuing equity instruments" and "other short- or
long-term borrowing" (45-14(1), (2)); outflows include "distributions to
owners" and "Repayments of amounts borrowed" (45-15(1), (2)). Investing
long-term borrowing" (45-14(a), (b)); outflows include "distributions to
owners" and "Repayments of amounts borrowed" (45-15(a), (b)). Every cash
flow is investing, financing, or operating (45-10). Investing
"include[s] making and collecting loans and acquiring and disposing of
debt or equity instruments and property, plant, and equipment" (ASC
230-10-20). Which accounts hold loans made, investments, and debt is a
@@ -300,7 +302,11 @@ life of the asset," with "(Cost – salvage value)/Useful life"; partial
periods: "A common method is to allocate depreciation expense based on the
number of months the asset is owned in a year." wanderbooks prorates
partial months by days, including a schedule through a mid-month date
(DECISION, Stephen 2026-10-13). ASC 360-10-35-4 not yet verified (see README).
(DECISION, Stephen 2026-10-13). ASC 360-10-35-4 (read 2026-10-14,
`sources/fasb-asc.md`) prescribes no method: cost less salvage is spread
over the useful life "in a systematic and rational manner," as equitably
as possible to the periods served; straight line by days is one such
allocation.
Tax conventions (half-year, mid-month, mid-quarter): IRS Pub. 946
(`sources/irs-depreciation.md`), for the CPA.
@@ -316,7 +322,10 @@ ASC 606-10-45-2 (cited): payment before transfer → "the entity shall
present the contract as a contract liability"; 606-10-25-23: "An entity
shall recognize revenue when (or as) the entity satisfies a performance
obligation by transferring a promised good or service." Prepaids: OpenStax
§4.2 (cited). Tax: the 12-month rule, Treas. Reg. §1.263(a)-4(f)
§4.2 (cited); ASC 340-10-05-4 and 210-10-45-1(g), -2 (read 2026-10-14,
`sources/fasb-asc.md`): a prepaid is an asset paid in advance of its use,
current within the operating cycle; the ASC prescribes no expensing
method, so monthly expensing stays a convention. Tax: the 12-month rule, Treas. Reg. §1.263(a)-4(f)
(`sources/irs-capitalization.md`).
**Enforced:** `schedules`. **Checked:** `a_prepaid_expense_is_expensed_month_by_month`,
@@ -329,7 +338,9 @@ obligation by transferring a promised good or service." Prepaids: OpenStax
ASC 606-10-55-37 (cited): "An entity is a principal if it controls the
specified good or service before that good or service is transferred to a
customer." 606-10-55-38: an agent "recognizes revenue in the amount of any
fee or commission to which it expects to be entitled." Whether an app
fee or commission to which it expects to be entitled." 606-10-55-37B
(read 2026-10-14, `sources/fasb-asc.md`): a principal recognizes revenue
"in the gross amount of consideration." Whether an app
developer is principal for app-store sales is a judgment under 55-39; the
CPA confirms.
+59
View File
@@ -0,0 +1,59 @@
# FASB Accounting Standards Codification: paragraphs read directly
Read 2026-10-14 in the ASC's basic view (asc.fasb.org, Stephen's login).
The Codification is copyrighted by the Financial Accounting Foundation,
so this file keeps only short quotes and paraphrase, with the paragraph
numbers to look up. Earlier ASC paragraphs were read through Deloitte's
DART roadmaps (see README).
## 360-10-35-4 (Property, plant, and equipment: depreciation)
A productive facility's cost is spread over its expected useful life,
allocated "as equitably as possible" to the periods that get its
services. Depreciation distributes cost, "less salvage (if any)", over
the estimated useful life "in a systematic and rational manner"; it is
"a process of allocation, not of valuation." No method is prescribed.
→ B-15: straight line, salvage never depreciated, partial months by
days (each day of service bears the same cost) is one systematic and
rational allocation.
## 340-10-05-2, -05-4, -05-5 (Other assets and deferred costs: prepaids)
Prepaid expenses are assets "typically used up or expire within the
normal operating cycle," paid "in advance of their use or consumption"
(05-4); examples include insurance, interest, rents, taxes, and
advertising not yet received (05-5). The Subtopic covers only their
nature (05-2): it prescribes no expensing method.
→ B-16: a prepaid is an asset, expensed over the months it covers
(a convention; the ASC is silent on the method).
## 210-10-45-1, -45-2, -45-5 (Balance sheet: current assets and liabilities)
Prepaid expenses are among current assets (45-1(g)), not because they
become cash but because they would otherwise use current assets in the
operating cycle (45-2). A total of current liabilities "shall be
presented in classified balance sheets" (45-5): the rule applies when a
balance sheet is classified.
→ wanderbooks' balance sheet is unclassified (by element), which this
Subtopic permits; a classified layout would need current/noncurrent
account roles.
## 230-10-45-7, -10, -12(a), -13(a), -14(b), -15(b) (Statement of cash flows)
Gross amounts are "more relevant" than net (45-7). Cash receipts and
payments are classified "as resulting from investing, financing, or
operating activities" (45-10). Collections on, and disbursements for,
loans the entity makes are investing (45-12(a), 45-13(a)). Proceeds of
"other short- or long-term borrowing" are financing inflows (45-14(b));
"repayments of amounts borrowed" are financing outflows (45-15(b)).
→ B-14: money owners advance (Due to Shareholders) is borrowing, so
financing, gross; a loan the company makes is investing, gross.
## 606-10-55-36 through 55-38 (Revenue: principal or agent)
An entity controlling the specified good or service before transfer is
the principal (55-37) and recognizes revenue "in the gross amount of
consideration" it expects (55-37B); an agent recognizes only its fee or
commission (55-38).
→ B-17: an app seller is the principal for its app, so its revenue is
the gross price; the platform's commission is an expense.
+2 -2
View File
@@ -89,7 +89,7 @@ accounting question), CHANGE (a source says otherwise; work pending).
| 6 | Reconciliation balances | CONFIRMED | Signed by the account's normal side (a card reads as owed), as statements show it; `reconciling_a_card_reads_its_normal_side_...` |
| 7 | A member's ending on one equity statement may differ by a cent from the next statement's beginning | CHANGED 2026-10-13 | A capital account is one running balance (Form 1065 K-1 instructions, Item L). Undistributed earnings now split cumulatively as of each date, so each member's capital chains exactly (`each_members_capital_chains_across_statements`; it fails on the old code); rules.md B-13 |
| 8 | Cash flow nets one line per account; investing comes only from registered assets | CHANGED 2026-10-13 | ASC 230-10-45-7: gross receipts and payments "more relevant" than net; 45-8 limits netting to quick-turnover items. Financing and investing are now gross; loans made and investments bought are investing (230-10-20, 45-13) via `[books] investing_accounts`. Owner-advanced expenses: PwC 6.9.3.1 constructive treatment via `[books] financing_accounts` (rules.md B-14) |
| 9 | An asset's life ends at purchase + life months, that day not held; day-count proration | CONVENTION | Exactly N months of service; day proration and the mid-month convention are both accepted book policies (ASC 360-10-35-4 not read: login) |
| 9 | An asset's life ends at purchase + life months, that day not held; day-count proration | CONVENTION | Exactly N months of service; day proration and the mid-month convention are both accepted book policies (ASC 360-10-35-4, read 2026-10-14: any systematic and rational allocation) |
| 10 | A payroll entry has one line per account total | CONFIRMED | The per-employee detail the IRS requires ("Amounts and dates of all wage ... payments", Employment Tax Recordkeeping) is kept in the run; a summary entry is standard |
| 11 | A period with exactly the dates of an existing one is allowed | DESIGN | Nothing governs duplicate periods; harmless (the second close locks only). Refusing exact duplicates is an option |
| 12 | Each close into members' capital rounds on its own (ties to the earlier member) | CHANGED 2026-10-13 | Twelve monthly 50/50 closes could leave one member several cents ahead. A run of members closes now splits cumulatively (rules.md B-13; Lean `runPart_telescopes`; property `each_member_stays_within_a_cent_of_their_share` fails on the per-close rule); journaled `"cumulative"`, older closes replay as booked |
@@ -110,7 +110,7 @@ B-14) are the first.
| Security properties | SKIP for the core (no roles, no secrets) | the first permission concept, or a secret-bearing field |
| Concurrency stress | SKIP for the core (no shared state); DONE for the store's writer + viewer (found the false "differs") | the first `Arc`, atomic, or lock in the core; the MCP server's HTTP transport shares one store across sessions (next) |
| Lean: apportion's sum law for any n | DONE (2026-10-14) | verify/lean/Wanderbooks/Apportion.lean: ranks are a permutation of 0..n-1 (strict total order + pigeonhole, core Lean only), so exactly u parts get a unit and one the fraction; `apportion_sum` and `apportion_sum_of_shortfall`, standard axioms only |
| ASC paragraphs not yet read | OPEN | ASC 360-10-35-4, 340-10, 230-10-45-10, 606-10-55-37B, 210: needs a FASB basic-view login |
| ASC paragraphs not yet read | DONE (2026-10-14) | read in the ASC basic view (`docs/spec/sources/fasb-asc.md`): all confirm the rules; one citation fixed (230-10-45-14(b), not (2)) |
| GnuCash's own close | OPEN | the oracle books closes as ordinary entries; comparing GnuCash's Close Book needs its Scheme API |
| Import: spec-blind suite, footing properties, mutation | DONE | sources vendored (Intuit bank CSV and IIF, ECMA-376/Excel numbers, IRS form lines); specs on every module; tests/spec_import.rs (spec-blind, footing and round-trip properties, XLSX read back from its XML, layout and styles); fuzz_import_csv; templates checked against the engine's control accounts; mutation one equivalent left |
| MCP, config, GUI crates | NEXT | the same playbook |