spec: ASC paragraphs read directly (360, 340, 210, 230, 606); all confirm the rules
check / check (push) Canceled after 0s
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:
1 parent
fe9625502f
commit
9a1f009f98
9 files changed
+86
-18
No files matched your search
@@ -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
|
||||
|
||||
@@ -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>,
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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>,
|
||||
|
||||
@@ -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
@@ -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
@@ -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.
|
||||
|
||||
|
||||
@@ -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
@@ -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 |
|
||||
Reference in new issue
Block a user