tax summary: Schedule K items stated separately; XLSX never shows a wrong amount
From the IRS form instructions (now quoted in docs/spec/sources/ irs-tax-lines.md): - On Forms 1065 and 1120-S, Schedule K takes "only taxable portfolio interest", and charitable contributions are among the items the entity "must state separately". The tax summary counted both in ordinary income and deductions; they now go in TaxSummary::separately_stated, outside book_net and tax_net, and the report, MCP export, and viewer list them under "Separately stated to owners (Schedule K)". - Schedule C: "Do not include charitable contributions". The category no longer applies to Schedule C (a sole proprietor's gift is personal, an owner draw). - interest_income's note: interest earned in the business itself is ordinary income (other_income). XLSX: a cell number is a binary double and Excel honors 15 significant digits (Microsoft, "Excel specifications and limits"), so an amount over $9,999,999,999,999.99 or finer than a cent is written as its exact text, right-aligned, instead of a number Excel would show wrong. The old conversion also fell back to 0.0 silently; gone. Property test: every whole-cent amount up to 15 digits round-trips exactly. 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
d99589e6c1
commit
96c70f727a
9 files changed
+195
-8
No files matched your search
@@ -3994,6 +3994,7 @@ impl BooksServer {
|
||||
"income": ts.income.iter().map(line).collect::<Vec<_>>(),
|
||||
"cost_of_goods": ts.cost_of_goods.iter().map(line).collect::<Vec<_>>(),
|
||||
"deductions": ts.deductions.iter().map(line).collect::<Vec<_>>(),
|
||||
"separately_stated": ts.separately_stated.iter().map(line).collect::<Vec<_>>(),
|
||||
"uncategorized": ts.uncategorized.iter().map(|u| serde_json::json!({
|
||||
"account": u.account, "book": money(u.book),
|
||||
})).collect::<Vec<_>>(),
|
||||
@@ -4007,6 +4008,7 @@ impl BooksServer {
|
||||
("income", &ts.income),
|
||||
("cost_of_goods", &ts.cost_of_goods),
|
||||
("deductions", &ts.deductions),
|
||||
("separately_stated", &ts.separately_stated),
|
||||
] {
|
||||
for l in lines {
|
||||
csv.push_str(&format!(
|
||||
|
||||
Reference in new issue
Block a user