@paro.io/expert-shared-components 1.14.66 → 1.14.68
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/DocumentCenter/MultiFileUploadSection.js +220 -121
- package/lib/components/TaxAxis/TaxAxisApi.d.ts +0 -1
- package/lib/components/TaxAxis/TaxAxisShell.js +5 -80
- package/lib/components/shared/UploadClient.d.ts +2 -1
- package/lib/components/shared/UploadClient.js +6 -2
- package/lib/index.d.ts +1 -13
- package/lib/index.js +1 -27
- package/lib/tax-axis/components/clientReport/ExecutiveSummary.d.ts +4 -1
- package/lib/tax-axis/components/clientReport/ExecutiveSummary.js +10 -6
- package/lib/tax-axis/components/clientReport/Methodology.js +2 -2
- package/lib/tax-axis/components/clientReport/RecommendedStrategies.d.ts +6 -1
- package/lib/tax-axis/components/clientReport/RecommendedStrategies.js +26 -24
- package/lib/tax-axis/components/clientReport/StrategyCard.d.ts +1 -1
- package/lib/tax-axis/components/clientReport/StrategyCard.js +39 -23
- package/lib/tax-axis/components/clientReport/TaxAxisClientReport.d.ts +5 -2
- package/lib/tax-axis/components/clientReport/TaxAxisClientReport.js +9 -7
- package/lib/tax-axis/components/dashboard/DashboardActions.js +6 -5
- package/lib/tax-axis/components/dashboard/DashboardSummary.d.ts +6 -1
- package/lib/tax-axis/components/dashboard/DashboardSummary.js +19 -10
- package/lib/tax-axis/components/dashboard/StrategyDetailPanel.d.ts +1 -1
- package/lib/tax-axis/components/dashboard/StrategyDetailPanel.js +122 -95
- package/lib/tax-axis/components/dashboard/TaxAxisDashboard.d.ts +58 -4
- package/lib/tax-axis/components/dashboard/TaxAxisDashboard.js +375 -56
- package/lib/tax-axis/components/documents/DocumentCard.d.ts +6 -3
- package/lib/tax-axis/components/documents/DocumentCard.js +72 -15
- package/lib/tax-axis/components/documents/DocumentReviewModal.d.ts +3 -2
- package/lib/tax-axis/components/documents/DocumentReviewModal.js +109 -295
- package/lib/tax-axis/components/documents/DocumentTier.d.ts +5 -4
- package/lib/tax-axis/components/documents/DocumentTier.js +2 -2
- package/lib/tax-axis/components/documents/TaxAxisDocuments.d.ts +28 -8
- package/lib/tax-axis/components/documents/TaxAxisDocuments.js +335 -172
- package/lib/tax-axis/components/documents/qbo/QboAvailableReportsModal.d.ts +13 -0
- package/lib/tax-axis/components/documents/qbo/QboAvailableReportsModal.js +180 -0
- package/lib/tax-axis/components/documents/qbo/QboClientSelectorModal.d.ts +10 -0
- package/lib/tax-axis/components/documents/qbo/QboClientSelectorModal.js +155 -0
- package/lib/tax-axis/components/documents/qbo/QboConnectBanner.d.ts +9 -0
- package/lib/tax-axis/components/documents/qbo/QboConnectBanner.js +55 -0
- package/lib/tax-axis/components/documents/qbo/QboDocumentMappingModal.d.ts +10 -0
- package/lib/tax-axis/components/documents/qbo/QboDocumentMappingModal.js +202 -0
- package/lib/tax-axis/components/documents/qbo/QboImportingModal.d.ts +8 -0
- package/lib/tax-axis/components/documents/qbo/QboImportingModal.js +75 -0
- package/lib/tax-axis/components/documents/qbo/QboPermissionsModal.d.ts +8 -0
- package/lib/tax-axis/components/documents/qbo/QboPermissionsModal.js +126 -0
- package/lib/tax-axis/components/documents/qbo/index.d.ts +8 -0
- package/lib/tax-axis/components/documents/qbo/index.js +17 -0
- package/lib/tax-axis/components/documents/qbo/qboConstants.d.ts +24 -0
- package/lib/tax-axis/components/documents/qbo/qboConstants.js +71 -0
- package/lib/tax-axis/components/documents/qbo/types.d.ts +43 -0
- package/lib/tax-axis/components/documents/qbo/types.js +3 -0
- package/lib/tax-axis/components/documents/qbo/useQboFlow.d.ts +19 -0
- package/lib/tax-axis/components/documents/qbo/useQboFlow.js +207 -0
- package/lib/tax-axis/components/intake/ClientParametersSection.js +11 -30
- package/lib/tax-axis/components/intake/CpaIntakeQuestionsSection.js +3 -3
- package/lib/tax-axis/components/intake/IntakeCtaCards.d.ts +1 -2
- package/lib/tax-axis/components/intake/IntakeCtaCards.js +6 -13
- package/lib/tax-axis/components/intake/RefineAnalysisSection.js +7 -7
- package/lib/tax-axis/components/intake/StrategyRadar.js +25 -4
- package/lib/tax-axis/components/intake/TaxAxisIntake.js +7 -95
- package/lib/tax-axis/components/intake/intakeSchema.d.ts +3 -3
- package/lib/tax-axis/components/intake/intakeSchema.js +4 -4
- package/lib/tax-axis/components/preparerWorkpaper/TaxAxisPreparerWorkpaper.d.ts +23 -4
- package/lib/tax-axis/components/preparerWorkpaper/TaxAxisPreparerWorkpaper.js +15 -4
- package/lib/tax-axis/components/processing/TaxAxisProcessing.d.ts +2 -1
- package/lib/tax-axis/components/processing/TaxAxisProcessing.js +102 -31
- package/lib/tax-axis/components/prospectReport/ProspectPrintView.js +0 -2
- package/lib/tax-axis/components/prospectReport/ProspectStrategyCard.d.ts +1 -8
- package/lib/tax-axis/components/prospectReport/ProspectStrategyCard.js +5 -5
- package/lib/tax-axis/components/prospectReport/TaxAxisProspectReport.d.ts +1 -27
- package/lib/tax-axis/components/prospectReport/TaxAxisProspectReport.js +25 -43
- package/lib/tax-axis/index.d.ts +3 -1
- package/lib/tax-axis/index.js +4 -3
- package/lib/tax-axis/lib/adapters/useEngineOutput.d.ts +60 -21
- package/lib/tax-axis/lib/adapters/useEngineOutput.js +51 -7
- package/lib/tax-axis/lib/compute/index.js +6 -0
- package/lib/tax-axis/lib/data/documents.d.ts +3 -2
- package/lib/tax-axis/lib/data/documents.js +225 -25
- package/lib/tax-axis/lib/data/strategies.js +53 -55
- package/lib/tax-axis/lib/documentFieldCatalog.d.ts +5 -10
- package/lib/tax-axis/lib/documentFieldCatalog.js +193 -8
- package/lib/tax-axis/lib/types/index.d.ts +14 -2
- package/package.json +1 -1
- package/lib/README.md +0 -2
- package/lib/package.json +0 -68
|
@@ -1,33 +1,233 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// ═══════════════════════════════════════════════════════════════════
|
|
3
|
-
// TaxAxis — Document
|
|
4
|
-
//
|
|
3
|
+
// TaxAxis — Document catalog (v2, aligned with parser v2 / LLM parser)
|
|
4
|
+
//
|
|
5
|
+
// documentType values are the canonical lowercase snake-case keys that the
|
|
6
|
+
// backend documentCatalog uses. These are sent verbatim on the
|
|
7
|
+
// uploadTaxAxisDocument mutation.
|
|
5
8
|
// ═══════════════════════════════════════════════════════════════════
|
|
6
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
10
|
exports.DOC_SPECS_BASE = void 0;
|
|
8
11
|
exports.getDocSpecs = getDocSpecs;
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
12
|
+
const DOC_META = {
|
|
13
|
+
federal_tax_return: {
|
|
14
|
+
name: "Federal Tax Return (1120S / 1065 / 1040 / 1120)",
|
|
15
|
+
strategies: ["QBI §199A", "S-Corp Structure", "§179 Expensing", "Bonus Depreciation", "Business Interest §163(j)"],
|
|
16
|
+
tier: "recommended",
|
|
17
|
+
help: "Improves accuracy of every strategy. Startups may not have prior returns.",
|
|
18
|
+
},
|
|
19
|
+
profit_loss: {
|
|
20
|
+
name: "Profit & Loss Statement (Current Year)",
|
|
21
|
+
strategies: ["QBI §199A", "R&D Credit", "Business Meals", "Professional Fees", "Home Office"],
|
|
22
|
+
tier: "required",
|
|
23
|
+
help: "Required — current year P&L is the minimum input for savings calculations.",
|
|
24
|
+
},
|
|
25
|
+
balance_sheet: {
|
|
26
|
+
name: "Balance Sheet (Current Year)",
|
|
27
|
+
strategies: ["Business Interest §163(j)", "§179 Expensing", "Opportunity Zone"],
|
|
28
|
+
tier: "required",
|
|
29
|
+
help: "Required — needed for asset-based strategies and financial health assessment.",
|
|
30
|
+
},
|
|
31
|
+
payroll_records: {
|
|
32
|
+
name: "Payroll Records (W-3 / 941)",
|
|
33
|
+
strategies: ["S-Corp Salary", "HSA Maximization", "WOTC", "Overtime Deduction"],
|
|
34
|
+
tier: "recommended",
|
|
35
|
+
help: "Critical for Entity Structure and QBI calculations.",
|
|
36
|
+
},
|
|
37
|
+
fixed_asset_schedule: {
|
|
38
|
+
name: "Fixed Asset Schedule",
|
|
39
|
+
strategies: ["§179", "Bonus Depreciation §168(k)", "Cost Segregation"],
|
|
40
|
+
tier: "conditional",
|
|
41
|
+
help: "Required for real estate clients (cost segregation). Optional otherwise.",
|
|
42
|
+
},
|
|
43
|
+
state_tax_return: {
|
|
44
|
+
name: "State Return(s)",
|
|
45
|
+
strategies: ["SALT / PTE Optimization", "State Nexus Analysis"],
|
|
46
|
+
tier: "conditional",
|
|
47
|
+
help: "Required if client operates in income-tax states.",
|
|
48
|
+
},
|
|
49
|
+
schedule_k1_s_corp: {
|
|
50
|
+
name: "Schedule K-1 (S-Corp, 1120S)",
|
|
51
|
+
strategies: ["QBI §199A", "S-Corp Basis", "Distributions"],
|
|
52
|
+
tier: "recommended",
|
|
53
|
+
help: "One per shareholder — needed for QBI and basis calculations.",
|
|
54
|
+
},
|
|
55
|
+
schedule_k1_partnership: {
|
|
56
|
+
name: "Schedule K-1 (Partnership, 1065)",
|
|
57
|
+
strategies: ["QBI §199A", "SE Tax", "At-Risk Basis"],
|
|
58
|
+
tier: "recommended",
|
|
59
|
+
help: "One per partner — needed for SE tax and QBI calculations.",
|
|
60
|
+
},
|
|
61
|
+
schedule_se: {
|
|
62
|
+
name: "Schedule SE (Self-Employment Tax)",
|
|
63
|
+
strategies: ["SE Tax Deduction", "S-Corp Conversion"],
|
|
64
|
+
tier: "conditional",
|
|
65
|
+
help: "Required for sole props and GP partners with SE income.",
|
|
66
|
+
},
|
|
67
|
+
form_8829: {
|
|
68
|
+
name: "Form 8829 (Home Office)",
|
|
69
|
+
strategies: ["Home Office Deduction"],
|
|
70
|
+
tier: "conditional",
|
|
71
|
+
help: "Only for sole proprietors who use part of their home for business.",
|
|
72
|
+
},
|
|
73
|
+
form_2553: {
|
|
74
|
+
name: "Form 2553 (S-Corp Election)",
|
|
75
|
+
strategies: ["S-Corp Structure", "Entity Restructuring"],
|
|
76
|
+
tier: "conditional",
|
|
77
|
+
help: "Confirms S-Corp election date and effective year — needed for entity analysis.",
|
|
78
|
+
},
|
|
79
|
+
w3: {
|
|
80
|
+
name: "W-3 (Transmittal of W-2s)",
|
|
81
|
+
strategies: ["S-Corp Salary", "HSA Maximization", "WOTC"],
|
|
82
|
+
tier: "recommended",
|
|
83
|
+
help: "Total wages across all employees — cross-checks payroll records.",
|
|
84
|
+
},
|
|
85
|
+
form_1099_nec_summary: {
|
|
86
|
+
name: "1099-NEC Summary",
|
|
87
|
+
strategies: ["Contractor vs Employee", "R&D Credit"],
|
|
88
|
+
tier: "conditional",
|
|
89
|
+
help: "Required if client paid $600+ to contractors.",
|
|
90
|
+
},
|
|
91
|
+
form_4562: {
|
|
92
|
+
name: "Form 4562 (Depreciation & Amortization)",
|
|
93
|
+
strategies: ["§179", "Bonus Depreciation", "Cost Segregation"],
|
|
94
|
+
tier: "conditional",
|
|
95
|
+
help: "Detailed depreciation schedule — unlocks Section 179 and bonus dep strategies.",
|
|
96
|
+
},
|
|
97
|
+
form_8889: {
|
|
98
|
+
name: "Form 8889 (HSA)",
|
|
99
|
+
strategies: ["HSA Maximization"],
|
|
100
|
+
tier: "conditional",
|
|
101
|
+
help: "Only if client has or is considering an HSA-eligible HDHP.",
|
|
102
|
+
},
|
|
103
|
+
rent_roll: {
|
|
104
|
+
name: "Rent Roll",
|
|
105
|
+
strategies: ["Real Estate — Cost Segregation", "QBI §199A (Rental)"],
|
|
106
|
+
tier: "conditional",
|
|
107
|
+
help: "Required for real estate clients to assess rental income and vacancy.",
|
|
108
|
+
},
|
|
109
|
+
mortgage_loan_documents: {
|
|
110
|
+
name: "Mortgage / Loan Documents",
|
|
111
|
+
strategies: ["Business Interest §163(j)", "Real Estate Strategies"],
|
|
112
|
+
tier: "conditional",
|
|
113
|
+
help: "1098s and loan statements — needed for interest limitation analysis.",
|
|
114
|
+
},
|
|
115
|
+
operating_agreement: {
|
|
116
|
+
name: "Operating Agreement / Partnership Agreement",
|
|
117
|
+
strategies: ["Entity Restructuring", "Special Allocations §704(b)"],
|
|
118
|
+
tier: "conditional",
|
|
119
|
+
help: "LLCs and partnerships — confirms ownership %, distributions, elections.",
|
|
120
|
+
},
|
|
121
|
+
rd_activity_documentation: {
|
|
122
|
+
name: "R&D Activity Documentation",
|
|
123
|
+
strategies: ["R&D Credit §41"],
|
|
124
|
+
tier: "conditional",
|
|
125
|
+
help: "Only if client conducts qualifying research activities.",
|
|
126
|
+
},
|
|
127
|
+
vehicle_mileage_log: {
|
|
128
|
+
name: "Vehicle Mileage Log",
|
|
129
|
+
strategies: ["Vehicle Deduction", "Standard vs Actual Method"],
|
|
130
|
+
tier: "conditional",
|
|
131
|
+
help: "Required for sole props claiming vehicle deductions.",
|
|
132
|
+
},
|
|
133
|
+
};
|
|
134
|
+
// ---------------------------------------------------------------------------
|
|
135
|
+
// Accepted file types — aligned with BE ALLOWED_EXTENSIONS (no .doc)
|
|
136
|
+
// ---------------------------------------------------------------------------
|
|
137
|
+
const ACCEPT_PDF_DOCX = [".pdf", ".docx"];
|
|
138
|
+
const ACCEPT_PDF_DOCX_XLSX = [".pdf", ".docx", ".xlsx", ".xls", ".csv"];
|
|
139
|
+
const ACCEPT_PDF_DOCX_XLSX_IMG = [".pdf", ".docx", ".xlsx", ".xls", ".csv", ".png", ".jpg", ".jpeg"];
|
|
140
|
+
const ACCEPT_BY_TYPE = {
|
|
141
|
+
federal_tax_return: ACCEPT_PDF_DOCX,
|
|
142
|
+
profit_loss: ACCEPT_PDF_DOCX_XLSX,
|
|
143
|
+
balance_sheet: ACCEPT_PDF_DOCX_XLSX,
|
|
144
|
+
payroll_records: ACCEPT_PDF_DOCX_XLSX,
|
|
145
|
+
fixed_asset_schedule: ACCEPT_PDF_DOCX_XLSX,
|
|
146
|
+
state_tax_return: ACCEPT_PDF_DOCX,
|
|
147
|
+
schedule_k1_s_corp: ACCEPT_PDF_DOCX,
|
|
148
|
+
schedule_k1_partnership: ACCEPT_PDF_DOCX,
|
|
149
|
+
schedule_se: ACCEPT_PDF_DOCX,
|
|
150
|
+
form_8829: ACCEPT_PDF_DOCX,
|
|
151
|
+
form_2553: ACCEPT_PDF_DOCX,
|
|
152
|
+
w3: ACCEPT_PDF_DOCX_XLSX_IMG,
|
|
153
|
+
form_1099_nec_summary: ACCEPT_PDF_DOCX_XLSX,
|
|
154
|
+
form_4562: ACCEPT_PDF_DOCX,
|
|
155
|
+
form_8889: ACCEPT_PDF_DOCX,
|
|
156
|
+
rent_roll: ACCEPT_PDF_DOCX_XLSX,
|
|
157
|
+
mortgage_loan_documents: ACCEPT_PDF_DOCX,
|
|
158
|
+
operating_agreement: ACCEPT_PDF_DOCX,
|
|
159
|
+
rd_activity_documentation: ACCEPT_PDF_DOCX_XLSX,
|
|
160
|
+
vehicle_mileage_log: ACCEPT_PDF_DOCX_XLSX,
|
|
161
|
+
};
|
|
162
|
+
// ---------------------------------------------------------------------------
|
|
163
|
+
// Entity → document types map (mirrors BE ENTITY_DOCUMENT_MAP exactly)
|
|
164
|
+
// ---------------------------------------------------------------------------
|
|
165
|
+
const S_CORP_TYPES = [
|
|
166
|
+
"profit_loss", "balance_sheet",
|
|
167
|
+
"federal_tax_return", "payroll_records", "w3", "schedule_k1_s_corp",
|
|
168
|
+
"form_2553", "form_1099_nec_summary", "state_tax_return", "form_4562",
|
|
169
|
+
"form_8889", "fixed_asset_schedule", "rent_roll", "mortgage_loan_documents",
|
|
170
|
+
"operating_agreement", "rd_activity_documentation",
|
|
19
171
|
];
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
172
|
+
const C_CORP_TYPES = [
|
|
173
|
+
"profit_loss", "balance_sheet",
|
|
174
|
+
"federal_tax_return", "payroll_records", "w3",
|
|
175
|
+
"form_1099_nec_summary", "state_tax_return", "form_4562", "form_8889",
|
|
176
|
+
"fixed_asset_schedule", "rent_roll", "mortgage_loan_documents",
|
|
177
|
+
"operating_agreement", "rd_activity_documentation",
|
|
178
|
+
];
|
|
179
|
+
const PARTNERSHIP_TYPES = [
|
|
180
|
+
"profit_loss", "balance_sheet",
|
|
181
|
+
"federal_tax_return", "payroll_records", "w3", "schedule_k1_partnership",
|
|
182
|
+
"schedule_se", "form_1099_nec_summary", "state_tax_return", "form_4562",
|
|
183
|
+
"form_8889", "fixed_asset_schedule", "rent_roll", "mortgage_loan_documents",
|
|
184
|
+
"operating_agreement", "rd_activity_documentation",
|
|
185
|
+
];
|
|
186
|
+
const SOLE_PROP_TYPES = [
|
|
187
|
+
"profit_loss", "balance_sheet",
|
|
188
|
+
"federal_tax_return", "schedule_se", "form_8829", "form_1099_nec_summary",
|
|
189
|
+
"state_tax_return", "form_4562", "form_8889", "fixed_asset_schedule",
|
|
190
|
+
"vehicle_mileage_log", "rent_roll", "mortgage_loan_documents",
|
|
191
|
+
"rd_activity_documentation",
|
|
192
|
+
];
|
|
193
|
+
const LLC_TYPES = Array.from(new Set([
|
|
194
|
+
...S_CORP_TYPES, ...C_CORP_TYPES, ...PARTNERSHIP_TYPES, ...SOLE_PROP_TYPES,
|
|
195
|
+
]));
|
|
196
|
+
const ENTITY_DOCUMENT_TYPES = {
|
|
197
|
+
S_CORP: S_CORP_TYPES,
|
|
198
|
+
C_CORP: C_CORP_TYPES,
|
|
199
|
+
PARTNERSHIP: PARTNERSHIP_TYPES,
|
|
200
|
+
SOLE_PROP: SOLE_PROP_TYPES,
|
|
201
|
+
LLC: LLC_TYPES,
|
|
202
|
+
};
|
|
203
|
+
// ---------------------------------------------------------------------------
|
|
204
|
+
// Build DocSpec list for a given entity type key
|
|
205
|
+
// ---------------------------------------------------------------------------
|
|
206
|
+
function buildDocSpec(documentType) {
|
|
207
|
+
const meta = DOC_META[documentType];
|
|
208
|
+
if (!meta)
|
|
209
|
+
return null;
|
|
210
|
+
return {
|
|
211
|
+
id: documentType,
|
|
212
|
+
documentType,
|
|
213
|
+
name: meta.name,
|
|
214
|
+
accept: ACCEPT_BY_TYPE[documentType] || ACCEPT_PDF_DOCX,
|
|
215
|
+
strategies: meta.strategies,
|
|
216
|
+
required: meta.tier === "required" ? true : meta.tier === "recommended" ? "optional" : "conditional",
|
|
217
|
+
tier: meta.tier,
|
|
218
|
+
help: meta.help,
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
// All doc specs across all entity types — used for reverse-mapping strategy → document needs.
|
|
222
|
+
exports.DOC_SPECS_BASE = LLC_TYPES
|
|
223
|
+
.map(buildDocSpec)
|
|
224
|
+
.filter((s) => s !== null);
|
|
225
|
+
function getDocSpecs(entityType) {
|
|
226
|
+
var _a;
|
|
227
|
+
const types = entityType
|
|
228
|
+
? ((_a = ENTITY_DOCUMENT_TYPES[entityType]) !== null && _a !== void 0 ? _a : LLC_TYPES)
|
|
229
|
+
: LLC_TYPES;
|
|
230
|
+
return types
|
|
231
|
+
.map(buildDocSpec)
|
|
232
|
+
.filter((s) => s !== null);
|
|
33
233
|
}
|
|
@@ -7,31 +7,31 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
7
7
|
exports.ADDITIONAL = exports.STRATEGIES = void 0;
|
|
8
8
|
/* ═══ 25 FEDERAL STRATEGIES (L2-1, OBBBA-Updated) ═══ */
|
|
9
9
|
exports.STRATEGIES = [
|
|
10
|
-
{ rank: 1, name: "Business Entity Structure", code: "§3121", cat: "entity", needsOwnerComp: true, lo:
|
|
10
|
+
{ rank: 1, name: "Business Entity Structure", code: "§3121", cat: "entity", needsOwnerComp: true, lo: 8400, hi: 12100, score: 72, priority: "HIGH", timeline: "30 days", timelineBucket: "30d",
|
|
11
11
|
authority: "IRC §3121 · Rev. Rul. 74-44", forms: "BLS comp memo", warning: "Salary below 50%-of-profit threshold. BLS memo required.", entities: ["S-Corporation"],
|
|
12
12
|
abstract: "S-Corporation distributions above a 'reasonable salary' bypass 15.3% self-employment tax. Salary benchmarked against BLS industry reference ranges — NOT a 40% heuristic.",
|
|
13
13
|
sources: [{ doc: "Form W-3", line: "Box 1", value: "$65,000", field: "Officer W-2 Salary" }, { doc: "Form 1120S", line: "Line 1", value: "$142,000", field: "Net Profit" }, { doc: "BLS OES 2025", line: "NAICS 54", value: "$58.2K–$112.6K", field: "Industry Range" }],
|
|
14
14
|
trace: [{ n: 1, step: "Current salary", formula: "Form W-3", result: "$65,000", src: "W-3" }, { n: 2, step: "BLS benchmark", formula: "25th pctl", result: "$58,200", src: "BLS" }, { n: 3, step: "50% threshold", formula: "50% × $142K", result: "$71,000", src: "Rev. Rul. 74-44" }, { n: 4, step: "SE tax avoided", formula: "$77K × 14.13%", result: "$10,881/yr", src: "IRC §3111" }],
|
|
15
15
|
clientBrief: "Your S-Corp structure saves significant employment taxes. We document why your salary is reasonable.", action: "Prepare BLS documentation memo before next payroll cycle", cost: "$300–$500" },
|
|
16
|
-
{ rank: 2, name: "Section 179 Expensing", code: "§179", cat: "depreciation", lo:
|
|
16
|
+
{ rank: 2, name: "Section 179 Expensing", code: "§179", cat: "depreciation", lo: 4200, hi: 18500, score: 88, priority: "HIGH", timeline: "File now", timelineBucket: "now",
|
|
17
17
|
authority: "IRC §179 · Rev. Proc. 2025-32", forms: "Form 4562", warning: null, entities: ["S-Corporation", "C-Corporation", "Partnership/LLC", "Sole Proprietorship"],
|
|
18
18
|
abstract: "Immediately expense qualifying equipment and software up to $1,250,000 for 2026. Phase-out begins at $3,130,000.",
|
|
19
19
|
sources: [{ doc: "Fixed Asset Schedule", line: "2026 additions", value: "$87,000", field: "Equipment Purchases" }, { doc: "Rev. Proc. 2025-32", line: "Table 4", value: "$1,250,000", field: "2026 §179 Limit" }],
|
|
20
20
|
trace: [{ n: 1, step: "Qualifying purchases", formula: "Fixed asset schedule", result: "$87,000", src: "Asset Sched." }, { n: 2, step: "Phase-out check", formula: "$87K << $3.13M", result: "Full deduction", src: "Rev. Proc." }, { n: 3, step: "Immediate deduction", formula: "$87,000 × 100%", result: "$87,000", src: "IRC §179" }],
|
|
21
21
|
clientBrief: "All qualifying equipment purchases can be fully expensed this year instead of depreciated over time.", action: "Claim on return — confirm asset list with preparer", cost: "$0" },
|
|
22
|
-
{ rank: 3, name: "Bonus Depreciation §168(k)", code: "§168(k)", cat: "depreciation", lo:
|
|
22
|
+
{ rank: 3, name: "Bonus Depreciation §168(k)", code: "§168(k)", cat: "depreciation", lo: 6800, hi: 32000, score: 90, priority: "HIGH", timeline: "File now", timelineBucket: "now",
|
|
23
23
|
authority: "IRC §168(k) · OBBBA §70301", forms: "Form 4562", warning: null, entities: ["S-Corporation", "C-Corporation", "Partnership/LLC", "Sole Proprietorship"],
|
|
24
24
|
abstract: "OBBBA made 100% bonus depreciation PERMANENT for property placed in service after Jan 19, 2025. No more phase-down.",
|
|
25
25
|
sources: [{ doc: "Fixed Asset Schedule", line: "2026 additions", value: "$87,000", field: "Qualifying Property" }, { doc: "OBBBA §70301", line: "Sec. 1", value: "100%", field: "Permanent Rate" }],
|
|
26
26
|
trace: [{ n: 1, step: "Qualifying property", formula: "Recovery period ≤ 20 yrs", result: "$87,000", src: "Asset Sched." }, { n: 2, step: "Bonus rate", formula: "OBBBA permanent 100%", result: "100%", src: "OBBBA §70301" }],
|
|
27
27
|
clientBrief: "100% bonus depreciation is now permanent under OBBBA. All qualifying assets get full first-year write-off.", action: "Review fixed asset schedule for qualifying additions", cost: "$0" },
|
|
28
|
-
{ rank: 4, name: "QBI Deduction §199A", code: "§199A", cat: "income", lo:
|
|
28
|
+
{ rank: 4, name: "QBI Deduction §199A", code: "§199A", cat: "income", lo: 18200, hi: 24700, score: 87, priority: "HIGH", timeline: "File now", timelineBucket: "now",
|
|
29
29
|
authority: "IRC §199A · OBBBA §70105 · Rev. Proc. 2025-32", forms: "Form 8995", warning: null, entities: ["S-Corporation", "Partnership/LLC", "Sole Proprietorship"],
|
|
30
30
|
abstract: "OBBBA-updated §199A: 23% rate, three-branch formula based on entity type, SSTB status, and W-2 wages or property basis.",
|
|
31
31
|
sources: [{ doc: "Form 1120S", line: "Line 1", value: "$142,000", field: "QBI Base" }, { doc: "Form W-3", line: "Box 1", value: "$48,000", field: "W-2 Wages" }, { doc: "Rev. Proc. 2025-32", line: "Table 3", value: "$191,950", field: "Phase-Out" }],
|
|
32
32
|
trace: [{ n: 1, step: "QBI", formula: "Net income from 1120S", result: "$142,000", src: "1120S" }, { n: 2, step: "Branch selection", formula: "$184K < $191,950 → Branch 1", result: "Branch 1", src: "Rev. Proc." }, { n: 3, step: "Tentative deduction", formula: "$142,000 × 23%", result: "$32,660", src: "OBBBA §70105" }, { n: 4, step: "W-2 wage cap", formula: "50% × $48,000", result: "$24,000 ← binding", src: "W-3" }, { n: 5, step: "Net savings", formula: "$24,000 × rate", result: "$21,276", src: "Eff. rate" }],
|
|
33
33
|
clientBrief: "The QBI deduction shelters up to 23% of your business income. Nothing changes about how you run your business.", action: "Claim on return — no client action required", cost: "$0" },
|
|
34
|
-
{ rank: 5, name: "R&D Credit §41", code: "§41", cat: "credits", excludeIndustry: ["Restaurant / Hospitality", "Education", "Agriculture", "Retail / E-Commerce"], lo:
|
|
34
|
+
{ rank: 5, name: "R&D Credit §41", code: "§41", cat: "credits", excludeIndustry: ["Restaurant / Hospitality", "Education", "Agriculture", "Retail / E-Commerce"], lo: 8500, hi: 45000, score: 82, priority: "HIGH", timeline: "90 days", timelineBucket: "90d",
|
|
35
35
|
authority: "IRC §41 · OBBBA §174A", forms: "Form 6765", warning: "R&D documentation required.", entities: ["S-Corporation", "C-Corporation", "Partnership/LLC"],
|
|
36
36
|
abstract: "OBBBA restored immediate expensing for domestic R&E. The R&D credit provides dollar-for-dollar reduction. Small businesses can offset payroll taxes.",
|
|
37
37
|
sources: [{ doc: "Client intake", line: "R&D activities", value: "Yes", field: "R&D Eligible" }, { doc: "Expense Report", line: "R&D categories", value: "$120,000", field: "Qualified Research Expenses" }],
|
|
@@ -43,19 +43,19 @@ exports.STRATEGIES = [
|
|
|
43
43
|
sources: [{ doc: "Payroll", line: "New hires", value: "3", field: "2026 Hires" }, { doc: "DOL", line: "Target groups", value: "2 qualifying", field: "Eligible" }],
|
|
44
44
|
trace: [{ n: 1, step: "Qualifying hires", formula: "Screening", result: "2 employees", src: "Payroll" }, { n: 2, step: "Credit", formula: "40% × qualifying wages", result: "$4,800", src: "§51(a)" }],
|
|
45
45
|
clientBrief: "Two recent hires may qualify for the Work Opportunity Tax Credit worth up to $9,600.", action: "Submit Form 8850 within 28 days of hire", cost: "$200–$500" },
|
|
46
|
-
{ rank: 7, name: "Retirement Plan Upgrade", code: "§401(k)", cat: "retirement", lo:
|
|
46
|
+
{ rank: 7, name: "Retirement Plan Upgrade", code: "§401(k)", cat: "retirement", lo: 12500, hi: 16800, score: 91, priority: "HIGH", timeline: "90 days", timelineBucket: "90d",
|
|
47
47
|
authority: "IRC §401(k) · SECURE 2.0 · Rev. Proc. 2025-32", forms: "Solo 401(k) · Form 5500-EZ", warning: null, entities: ["S-Corporation", "Partnership/LLC", "Sole Proprietorship"],
|
|
48
48
|
abstract: "Solo 401(k) unlocks $23,500 employee deferral + 25% employer match. SECURE 2.0 adds startup credit up to $5,000/yr for 3 years.",
|
|
49
49
|
sources: [{ doc: "K-1", line: "Line 13", value: "$14,500", field: "Current SEP-IRA" }, { doc: "W-3", line: "Box 1", value: "$65,000", field: "W-2 Comp" }, { doc: "Rev. Proc.", line: "Table 1", value: "$23,500", field: "2026 Deferral" }],
|
|
50
50
|
trace: [{ n: 1, step: "Current SEP", formula: "K-1 Line 13", result: "$14,500", src: "K-1" }, { n: 2, step: "Solo 401(k) EE", formula: "2026 deferral", result: "$23,500", src: "Rev. Proc." }, { n: 3, step: "Solo 401(k) ER", formula: "25% × $65K", result: "$16,250", src: "§415(c)" }, { n: 4, step: "Incremental", formula: "$39,750 − $14,500", result: "$25,250", src: "Calc." }],
|
|
51
51
|
clientBrief: "Switching retirement account type shelters an extra $25,000.", action: "Open Solo 401(k) by Dec 31, 2026", cost: "$200–$400" },
|
|
52
|
-
{ rank: 8, name: "Cost Segregation", code: "§168", cat: "depreciation", preferIndustry: ["Real Estate", "Construction"], lo:
|
|
52
|
+
{ rank: 8, name: "Cost Segregation", code: "§168", cat: "depreciation", preferIndustry: ["Real Estate", "Construction"], lo: 15000, hi: 85000, score: 89, priority: "HIGH", timeline: "90 days", timelineBucket: "90d",
|
|
53
53
|
authority: "IRC §168 · OBBBA §70301", forms: "Form 4562 · Engineering Study", warning: "Property ≥ $500K. Combined with 100% bonus depreciation.", entities: ["S-Corporation", "C-Corporation", "Partnership/LLC"],
|
|
54
54
|
abstract: "Reclassifies building components from 39-year to 5/7/15-year recovery. Massive first-year deductions with permanent 100% bonus depreciation.",
|
|
55
55
|
sources: [{ doc: "Intake", line: "Property value", value: "$1,200,000", field: "Commercial RE" }, { doc: "Intake", line: "Year acquired", value: "2024", field: "Acquisition Year" }],
|
|
56
56
|
trace: [{ n: 1, step: "Eligible property", formula: "Value ≥ $500K", result: "$1.2M", src: "Intake" }, { n: 2, step: "Reclassifiable", formula: "20–40% typical", result: "$300,000", src: "Industry avg" }, { n: 3, step: "Bonus depreciation", formula: "100% permanent", result: "$300K yr 1", src: "OBBBA" }],
|
|
57
57
|
clientBrief: "A cost segregation study on your commercial property could accelerate $300K+ in deductions to this year.", action: "Engage cost segregation engineer. 4–8 weeks.", cost: "$5,000–$15,000" },
|
|
58
|
-
{ rank: 9, name: "HSA Maximization", code: "§223", cat: "benefits", lo:
|
|
58
|
+
{ rank: 9, name: "HSA Maximization", code: "§223", cat: "benefits", lo: 1800, hi: 2400, score: 94, priority: "QUICK WIN", timeline: "This week", timelineBucket: "now",
|
|
59
59
|
authority: "IRC §223 · Rev. Proc. 2025-32", forms: "Form 8889", warning: null, entities: ["S-Corporation", "C-Corporation", "Partnership/LLC", "Sole Proprietorship"],
|
|
60
60
|
abstract: "HSA contributions are triple-tax-advantaged. $4,350 remaining below the 2026 family limit of $8,550.",
|
|
61
61
|
sources: [{ doc: "Payroll", line: "HSA election", value: "$4,200", field: "Current YTD" }, { doc: "Benefits", line: "Plan type", value: "HDHP", field: "Family" }, { doc: "Rev. Proc.", line: "Table 2", value: "$8,550", field: "2026 Limit" }],
|
|
@@ -67,66 +67,66 @@ exports.STRATEGIES = [
|
|
|
67
67
|
sources: [{ doc: "QBO", line: "Meals", value: "$8,400", field: "Annual Meals" }],
|
|
68
68
|
trace: [{ n: 1, step: "Total meals", formula: "QBO", result: "$8,400", src: "QBO" }, { n: 2, step: "Business meals", formula: "Estimated", result: "$6,200", src: "Review" }, { n: 3, step: "Deduction", formula: "$6,200 × 50%", result: "$3,100", src: "§274" }],
|
|
69
69
|
clientBrief: "Properly documenting business meals recovers $800–$2,200 in tax savings.", action: "Implement meal documentation protocol", cost: "$0" },
|
|
70
|
-
{ rank: 11, name: "
|
|
71
|
-
authority: "IRC §162", forms: "Schedule C / 1120S", warning: null, entities: ["S-Corporation", "C-Corporation", "Partnership/LLC", "Sole Proprietorship"],
|
|
72
|
-
abstract: "Legal, accounting, consulting fees are fully deductible as ordinary and necessary business expenses.",
|
|
73
|
-
sources: [{ doc: "QBO", line: "Professional fees", value: "$24,000", field: "Annual Fees" }],
|
|
74
|
-
trace: [{ n: 1, step: "Total fees", formula: "QBO + invoices", result: "$24,000", src: "QBO" }, { n: 2, step: "Business allocation", formula: "Categorization review", result: "$22,500", src: "Review" }],
|
|
75
|
-
clientBrief: "Ensure all professional service fees are properly categorized and deducted.", action: "Review and categorize all professional service invoices", cost: "$0" },
|
|
76
|
-
{ rank: 12, name: "Home Office Deduction", code: "§280A", cat: "deductions", excludeIndustry: ["Construction", "Manufacturing", "Restaurant / Hospitality"], lo: 2100, hi: 3200, score: 80, priority: "QUICK WIN", timeline: "This week", timelineBucket: "now",
|
|
70
|
+
{ rank: 11, name: "Home Office Deduction", code: "§280A", cat: "deductions", excludeIndustry: ["Construction", "Manufacturing", "Restaurant / Hospitality"], lo: 2100, hi: 3200, score: 80, priority: "QUICK WIN", timeline: "This week", timelineBucket: "now",
|
|
77
71
|
authority: "IRC §280A(c)(1) · Rev. Proc. 2013-13", forms: "Form 8829", warning: null, entities: ["S-Corporation", "Partnership/LLC", "Sole Proprietorship"],
|
|
78
72
|
abstract: "Actual expense method produces higher deduction than the $5/sqft simplified method for dedicated workspace.",
|
|
79
73
|
sources: [{ doc: "Intake", line: "Office sqft", value: "280 sqft", field: "Workspace" }, { doc: "Intake", line: "Total", value: "2,100 sqft", field: "Home" }, { doc: "QBO", line: "Home costs", value: "$43,200", field: "Mortgage + Utils" }],
|
|
80
74
|
trace: [{ n: 1, step: "Business use %", formula: "280 ÷ 2,100", result: "13.33%", src: "Intake" }, { n: 2, step: "Simplified", formula: "280 × $5", result: "$1,400", src: "Rev. Proc." }, { n: 3, step: "Actual", formula: "13.33% × $43,200", result: "$5,747", src: "QBO" }],
|
|
81
75
|
clientBrief: "Your home office qualifies for a $5,700 deduction using the actual expense method.", action: "Photograph workspace. Collect mortgage + utility bills.", cost: "$0" },
|
|
82
|
-
{ rank:
|
|
83
|
-
authority: "IRC §
|
|
84
|
-
abstract: "
|
|
85
|
-
sources: [{ doc: "
|
|
86
|
-
trace: [{ n: 1, step: "
|
|
87
|
-
clientBrief: "
|
|
88
|
-
{ rank:
|
|
89
|
-
authority: "IRC §
|
|
90
|
-
abstract: "
|
|
91
|
-
sources: [{ doc: "
|
|
92
|
-
trace: [{ n: 1, step: "
|
|
93
|
-
clientBrief: "
|
|
76
|
+
{ rank: 12, name: "Accountable Plan", code: "§62", cat: "entity", lo: 1200, hi: 3500, score: 75, priority: "MEDIUM", timeline: "30 days", timelineBucket: "30d",
|
|
77
|
+
authority: "IRC §62 · Treas. Reg. §1.62-2", forms: "Board resolution + plan document", warning: null, entities: ["S-Corporation", "C-Corporation", "Partnership/LLC"],
|
|
78
|
+
abstract: "Reimburse business expenses tax-free through an accountable plan. Expenses must be substantiated and business-connected.",
|
|
79
|
+
sources: [{ doc: "QBO", line: "Unreimbursed expenses", value: "$8,500", field: "Employee Expenses" }],
|
|
80
|
+
trace: [{ n: 1, step: "Eligible expenses", formula: "Unreimbursed biz expenses", result: "$8,500", src: "QBO" }, { n: 2, step: "Tax savings", formula: "$8,500 × marginal rate", result: "$2,350", src: "Calc." }],
|
|
81
|
+
clientBrief: "An accountable plan lets you reimburse business expenses tax-free instead of taking them as taxable compensation.", action: "Adopt accountable plan via board resolution", cost: "$200–$500" },
|
|
82
|
+
{ rank: 13, name: "Augusta Rule", code: "§280A(g)", cat: "deductions", lo: 1500, hi: 6000, score: 70, priority: "MEDIUM", timeline: "30 days", timelineBucket: "30d",
|
|
83
|
+
authority: "IRC §280A(g) · Rev. Rul. 2002-25", forms: "Rental agreement + FMV documentation", warning: null, entities: ["S-Corporation", "C-Corporation", "Partnership/LLC", "Sole Proprietorship"],
|
|
84
|
+
abstract: "Rent your personal residence to your business for up to 14 days per year tax-free. Rental income excluded from owner's return; business deducts rent.",
|
|
85
|
+
sources: [{ doc: "Intake", line: "Home FMV rental", value: "$500/day", field: "FMV Rate" }, { doc: "Intake", line: "Business use days", value: "12 days", field: "Meeting Days" }],
|
|
86
|
+
trace: [{ n: 1, step: "FMV rental rate", formula: "Comparable rental survey", result: "$500/day", src: "Market data" }, { n: 2, step: "Annual rental", formula: "12 × $500", result: "$6,000", src: "Calc." }],
|
|
87
|
+
clientBrief: "Renting your home to your business for board meetings creates a tax-free deduction for the company.", action: "Document FMV rental rate and schedule business use days", cost: "$0" },
|
|
88
|
+
{ rank: 14, name: "Family Employment", code: "§73", cat: "entity", lo: 500, hi: 4000, score: 60, priority: "LOW", timeline: "Year-end", timelineBucket: "90d",
|
|
89
|
+
authority: "IRC §73 · IRC §3121(b)(3) · Rev. Rul. 73-348", forms: "W-4 + payroll documentation", warning: null, entities: ["S-Corporation", "Partnership/LLC", "Sole Proprietorship"],
|
|
90
|
+
abstract: "Hiring family members shifts income to lower brackets. Children under 18 employed by sole proprietor are exempt from FICA.",
|
|
91
|
+
sources: [{ doc: "Intake", line: "Family members", value: "2", field: "Eligible Family" }, { doc: "Intake", line: "Ages", value: "16, 19", field: "Children" }],
|
|
92
|
+
trace: [{ n: 1, step: "Eligible family", formula: "Children working in business", result: "2 family members", src: "Intake" }, { n: 2, step: "FICA savings", formula: "Under-18 exemption", result: "Up to $2,400", src: "§3121(b)(3)" }],
|
|
93
|
+
clientBrief: "Employing family members in your business can shift income to lower brackets and reduce employment taxes.", action: "Document bona fide job duties and arm's-length wages", cost: "$0" },
|
|
94
94
|
{ rank: 15, name: "SALT / PTE Optimization", code: "OBBBA §70109", cat: "state", lo: 3200, hi: 5800, score: 92, priority: "HIGH", timeline: "File now", timelineBucket: "now", needsPTE: true,
|
|
95
95
|
authority: "OBBBA §70109 · IRC §164 · IRS Notice 2020-75", forms: "Schedule A · State PTE Election", warning: null, entities: ["S-Corporation", "Partnership/LLC"],
|
|
96
96
|
abstract: "OBBBA raised SALT cap to $40,400 for 2026. PTE elections convert entity-level state tax into an unlimited federal business deduction. 30% phase-out above $500K MAGI (MFJ).",
|
|
97
97
|
sources: [{ doc: "State Return", line: "Tax paid", value: "$9,108", field: "State Tax" }, { doc: "OBBBA §70109", line: "Table 1", value: "$40,400", field: "SALT Cap" }, { doc: "Intake", line: "Property tax", value: "$9,200", field: "Property Tax" }],
|
|
98
98
|
trace: [{ n: 1, step: "PTE election", formula: "Entity-level state tax", result: "$7,029", src: "Notice 2020-75" }, { n: 2, step: "PTET bypasses cap", formula: "Entity-level deduction", result: "$7,029", src: "Notice" }, { n: 3, step: "Remaining SALT", formula: "$9,200 property tax", result: "$9,200", src: "Intake" }, { n: 4, step: "New regime", formula: "All deducted", result: "$0 lost", src: "OBBBA + PTE" }],
|
|
99
99
|
clientBrief: "New federal law raised your SALT cap, and your state's PTE workaround bypasses it entirely for business income.", action: "Elect PTE for 2026. Claim full SALT cap.", cost: "$0" },
|
|
100
|
-
{ rank: 16, name: "
|
|
101
|
-
authority: "IRC §163(j) · OBBBA §70306", forms: "Form 8990", warning: null, entities: ["S-Corporation", "C-Corporation", "Partnership/LLC"],
|
|
102
|
-
abstract: "OBBBA restored EBITDA computation. Full deduction if gross receipts ≤$27M.",
|
|
103
|
-
sources: [{ doc: "1120S", line: "Interest", value: "$18,000", field: "Business Interest" }, { doc: "1120S", line: "3-yr avg", value: "$480,000", field: "Gross Receipts" }],
|
|
104
|
-
trace: [{ n: 1, step: "Gross receipts test", formula: "$480K ≤ $27M", result: "Exempt", src: "§163(j)(3)" }, { n: 2, step: "Full deduction", formula: "All interest deductible", result: "$18,000", src: "§163(j)" }],
|
|
105
|
-
clientBrief: "Your business qualifies for full interest deduction under the small business exception.", action: "No additional action — claim full deduction", cost: "$0" },
|
|
106
|
-
{ rank: 17, name: "Income Deferral & Timing", code: "§451", cat: "income", lo: 1500, hi: 8000, score: 66, priority: "MEDIUM", timeline: "Year-end", timelineBucket: "90d",
|
|
107
|
-
authority: "IRC §451 · IRC §448", forms: "Form 3115", warning: null, entities: ["S-Corporation", "C-Corporation", "Partnership/LLC", "Sole Proprietorship"],
|
|
108
|
-
abstract: "Cash method taxpayers (≤$27M) defer income through billing timing. §451 advance payment deferral allows one-year deferral on prepaid income.",
|
|
109
|
-
sources: [{ doc: "1120S", line: "Revenue", value: "$500,000", field: "Revenue" }, { doc: "QBO", line: "AR aging", value: "$42,000", field: "Receivables" }],
|
|
110
|
-
trace: [{ n: 1, step: "Cash method", formula: "Revenue ≤ $27M", result: "Eligible", src: "§448" }, { n: 2, step: "Deferral", formula: "Q4 timing", result: "$20K–$40K", src: "QBO" }],
|
|
111
|
-
clientBrief: "Strategic timing of invoicing can defer $20K–$40K of income to next year.", action: "Review Q4 billing schedule", cost: "$0" },
|
|
112
|
-
{ rank: 18, name: "Opportunity Zone §1400Z", code: "§1400Z", cat: "investment", lo: 0, hi: 0, score: 55, priority: "LOW", timeline: "Year-end", timelineBucket: "90d",
|
|
113
|
-
authority: "IRC §1400Z · OBBBA transition rules", forms: "Form 8996 · Form 8997", warning: "Confirm deferred gain recognition under OBBBA transition rules.", entities: ["S-Corporation", "C-Corporation", "Partnership/LLC", "Sole Proprietorship"],
|
|
114
|
-
abstract: "Rural QOZ improvement threshold reduced to 50%. QOF investments defer and potentially eliminate capital gains.",
|
|
115
|
-
sources: [{ doc: "Brokerage", line: "Gains", value: "$85,000", field: "Cap Gains" }],
|
|
116
|
-
trace: [{ n: 1, step: "Cap gains", formula: "Brokerage + sales", result: "$85,000", src: "Brokerage" }, { n: 2, step: "QOF window", formula: "180 days", result: "Up to $85K", src: "§1400Z" }],
|
|
117
|
-
clientBrief: "Investing capital gains into an Opportunity Zone fund defers taxes and potentially eliminates gains on the new investment.", action: "Identify QOF within 180 days of gain", cost: "$1,000–$3,000" },
|
|
118
|
-
{ rank: 19, name: "Energy Credits §179D", code: "§179D", cat: "credits", preferIndustry: ["Real Estate", "Construction"], lo: 2500, hi: 25000, score: 58, priority: "MEDIUM", timeline: "90 days", timelineBucket: "90d",
|
|
100
|
+
{ rank: 16, name: "§179D Energy Deduction", code: "§179D", cat: "credits", preferIndustry: ["Real Estate", "Construction"], lo: 2500, hi: 25000, score: 58, priority: "MEDIUM", timeline: "90 days", timelineBucket: "90d",
|
|
119
101
|
authority: "IRC §179D · OBBBA §70507", forms: "Form 7205", warning: "ELIMINATED for construction after June 30, 2026.", entities: ["S-Corporation", "C-Corporation", "Partnership/LLC"],
|
|
120
102
|
abstract: "$0.50–$5.00/sqft for energy-efficient improvements. Eliminated for new construction after June 30, 2026.",
|
|
121
103
|
sources: [{ doc: "Intake", line: "Sqft", value: "8,000", field: "Commercial Sqft" }],
|
|
122
104
|
trace: [{ n: 1, step: "Rate", formula: "$0.50–$5.00/sqft", result: "$2.50 est.", src: "Prevailing wage" }, { n: 2, step: "Credit", formula: "8,000 × $2.50", result: "$20,000", src: "Calc." }],
|
|
123
105
|
clientBrief: "Energy-efficient improvements qualify for up to $5.00/sqft. This credit is being eliminated — act before June 30, 2026.", action: "Commission energy study", cost: "$3,000–$8,000" },
|
|
124
|
-
{ rank:
|
|
125
|
-
authority: "IRC §
|
|
126
|
-
abstract: "
|
|
127
|
-
sources: [{ doc: "
|
|
128
|
-
trace: [{ n: 1, step: "
|
|
129
|
-
clientBrief: "
|
|
106
|
+
{ rank: 17, name: "Vehicle Expense Optimization", code: "§274", cat: "deductions", lo: 800, hi: 3200, score: 66, priority: "MEDIUM", timeline: "30 days", timelineBucket: "30d",
|
|
107
|
+
authority: "IRC §274(d) · Rev. Proc. 2025-32", forms: "Mileage log or actual expense records", warning: null, entities: ["S-Corporation", "C-Corporation", "Partnership/LLC", "Sole Proprietorship"],
|
|
108
|
+
abstract: "Compare standard mileage rate (70¢/mi for 2026) vs. actual expenses. Heavy SUVs (GVWR > 6,000 lbs) eligible for full §179.",
|
|
109
|
+
sources: [{ doc: "Mileage log", line: "Business miles", value: "12,000", field: "Annual Miles" }, { doc: "Rev. Proc.", line: "Rate", value: "$0.70/mi", field: "2026 Rate" }],
|
|
110
|
+
trace: [{ n: 1, step: "Mileage method", formula: "12,000 × $0.70", result: "$8,400", src: "Rev. Proc." }, { n: 2, step: "Actual method", formula: "Fuel + ins + dep", result: "$7,200", src: "QBO" }, { n: 3, step: "Better method", formula: "Higher of two", result: "$8,400 mileage", src: "Calc." }],
|
|
111
|
+
clientBrief: "Choosing the right vehicle expense method maximizes your deduction — mileage rate wins for your usage.", action: "Maintain contemporaneous mileage log", cost: "$0" },
|
|
112
|
+
{ rank: 18, name: "Insurance Optimization", code: "§79, §264", cat: "deductions", lo: 1500, hi: 6000, score: 55, priority: "MEDIUM", timeline: "90 days", timelineBucket: "90d",
|
|
113
|
+
authority: "IRC §79 · IRC §264 · IRC §162", forms: "Plan documents · Premium records", warning: null, entities: ["S-Corporation", "C-Corporation", "Partnership/LLC"],
|
|
114
|
+
abstract: "Group term life up to $50K is tax-free (§79). Key-person and buy-sell insurance premiums may be deductible. Proper structuring avoids AMT traps.",
|
|
115
|
+
sources: [{ doc: "Benefits", line: "Group term", value: "$50,000", field: "Coverage" }, { doc: "Insurance", line: "Premium", value: "$3,600", field: "Annual Premium" }],
|
|
116
|
+
trace: [{ n: 1, step: "Group term exclusion", formula: "≤ $50K coverage", result: "Tax-free", src: "§79" }, { n: 2, step: "Key-person premium", formula: "Deductible if structured", result: "$3,600", src: "§162" }, { n: 3, step: "Total benefit", formula: "Premium + exclusion", result: "$3,600–$6,000", src: "Calc." }],
|
|
117
|
+
clientBrief: "Restructuring your business insurance produces tax-free benefits and deductible premiums.", action: "Review group term life and key-person policies with advisor", cost: "$300–$800" },
|
|
118
|
+
{ rank: 19, name: "§1031 Like-Kind Exchange", code: "§1031", cat: "deferral", preferIndustry: ["Real Estate"], lo: 5000, hi: 50000, score: 58, priority: "MEDIUM", timeline: "Year-end", timelineBucket: "90d",
|
|
119
|
+
authority: "IRC §1031 · Treas. Reg. §1.1031", forms: "Form 8824", warning: "Only real property qualifies post-TCJA. 45-day ID / 180-day close.", entities: ["S-Corporation", "C-Corporation", "Partnership/LLC", "Sole Proprietorship"],
|
|
120
|
+
abstract: "Defer capital gains on real property by exchanging into like-kind replacement property. Strict identification and closing deadlines apply.",
|
|
121
|
+
sources: [{ doc: "Intake", line: "Property", value: "$400,000", field: "Relinquished FMV" }, { doc: "Intake", line: "Basis", value: "$180,000", field: "Adjusted Basis" }],
|
|
122
|
+
trace: [{ n: 1, step: "Realized gain", formula: "$400K − $180K", result: "$220,000", src: "Intake" }, { n: 2, step: "Deferred", formula: "Full deferral if boot = 0", result: "$220,000", src: "§1031" }, { n: 3, step: "Tax avoided", formula: "$220K × 23.8%", result: "$52,360", src: "Calc." }],
|
|
123
|
+
clientBrief: "Exchanging your investment property into a like-kind replacement defers $52K+ in capital gains taxes.", action: "Engage qualified intermediary before closing", cost: "$1,500–$3,000" },
|
|
124
|
+
{ rank: 20, name: "QSBS §1202 Exclusion", code: "§1202", cat: "exclusions", lo: 0, hi: 250000, score: 62, priority: "MEDIUM", timeline: "Year-end", timelineBucket: "90d",
|
|
125
|
+
authority: "IRC §1202 · Rev. Proc. 2025-32", forms: "Stock documentation · Form 1040 Sch D", warning: "Must hold stock ≥ 5 years. C-Corp only. $50M gross assets cap.", entities: ["C-Corporation"],
|
|
126
|
+
abstract: "Exclude up to 100% of gain (max $10M or 10× basis) on sale of qualified small business stock held 5+ years.",
|
|
127
|
+
sources: [{ doc: "Intake", line: "Entity", value: "C-Corp", field: "Entity Type" }, { doc: "Intake", line: "Assets", value: "$8M", field: "Gross Assets" }, { doc: "Intake", line: "Held since", value: "2020", field: "Acquisition Year" }],
|
|
128
|
+
trace: [{ n: 1, step: "QSBS eligibility", formula: "C-Corp, < $50M assets", result: "Eligible", src: "§1202(d)" }, { n: 2, step: "Holding period", formula: "2020 → 2026 = 6 yrs", result: "≥ 5 yrs ✓", src: "§1202(a)" }, { n: 3, step: "Exclusion", formula: "100% of gain", result: "Up to $10M", src: "§1202(a)(1)" }],
|
|
129
|
+
clientBrief: "Your C-Corp stock may qualify for 100% gain exclusion on sale — up to $10M tax-free.", action: "Document original issuance, gross asset test, and holding period", cost: "$500–$2,000" },
|
|
130
130
|
{ rank: 21, name: "Qualified Tips Deduction", code: "OBBBA", cat: "obbba_new", onlyIndustry: ["Restaurant / Hospitality"], lo: 3000, hi: 25000, score: 78, priority: "HIGH", timeline: "File now", timelineBucket: "now",
|
|
131
131
|
authority: "OBBBA Qualified Tips Provision", forms: "Form 1040 / Schedule C", warning: "Tipping occupations only. Max $25K. Effective 2025–2028.", entities: ["Sole Proprietorship", "Partnership/LLC"],
|
|
132
132
|
abstract: "New OBBBA deduction up to $25,000 for qualifying tip income. Tipping occupations only. Effective 2025–2028.",
|
|
@@ -134,7 +134,7 @@ exports.STRATEGIES = [
|
|
|
134
134
|
trace: [{ n: 1, step: "Tip income", formula: "Payroll", result: "$32,000", src: "Payroll" }, { n: 2, step: "Cap", formula: "Lesser of tips or $25K", result: "$25,000", src: "OBBBA" }],
|
|
135
135
|
clientBrief: "New OBBBA provision lets you deduct up to $25,000 of tip income through 2028.", action: "Document and categorize all tip income", cost: "$0" },
|
|
136
136
|
{ rank: 22, name: "Overtime Pay Deduction", code: "OBBBA", cat: "obbba_new", minEmployees: 1, lo: 2000, hi: 12500, score: 74, priority: "HIGH", timeline: "File now", timelineBucket: "now",
|
|
137
|
-
authority: "OBBBA Overtime Provision", forms: "Form 1040", warning: "MAGI phase-out: $150K/$300K. Effective 2025–2028.", entities: ["S-Corporation", "
|
|
137
|
+
authority: "OBBBA Overtime Provision", forms: "Form 1040", warning: "MAGI phase-out: $150K/$300K. Effective 2025–2028.", entities: ["S-Corporation", "Partnership/LLC", "Sole Proprietorship"],
|
|
138
138
|
abstract: "New OBBBA deduction for overtime: $12,500 single / $25,000 MFJ. Phase-out at $150K/$300K MAGI.",
|
|
139
139
|
sources: [{ doc: "Payroll", line: "OT hours", value: "320 hrs", field: "Overtime" }, { doc: "W-2", line: "OT comp", value: "$18,000", field: "OT Pay" }],
|
|
140
140
|
trace: [{ n: 1, step: "OT compensation", formula: "W-2 overtime", result: "$18,000", src: "W-2" }, { n: 2, step: "Cap", formula: "$12,500 / $25K MFJ", result: "$12,500", src: "OBBBA" }],
|
|
@@ -159,8 +159,6 @@ exports.STRATEGIES = [
|
|
|
159
159
|
clientBrief: "New provision allows tax-deductible contributions to employee child savings accounts.", action: "Monitor IRS guidance. Plan contributions.", cost: "$200–$500" },
|
|
160
160
|
];
|
|
161
161
|
exports.ADDITIONAL = [
|
|
162
|
-
{ name: "Accountable Plan", savings: "$1,200–$3,500", priority: "MEDIUM" },
|
|
163
162
|
{ name: "Estimated Tax Timing", savings: "$200–$800", priority: "LOW" },
|
|
164
163
|
{ name: "Business Insurance Review", savings: "$400–$2,000", priority: "LOW" },
|
|
165
|
-
{ name: "Vehicle Expense Optimization", savings: "$800–$3,200", priority: "MEDIUM" },
|
|
166
164
|
];
|
|
@@ -1,18 +1,13 @@
|
|
|
1
|
-
export interface
|
|
2
|
-
label
|
|
1
|
+
export interface FieldDef {
|
|
2
|
+
label: string;
|
|
3
3
|
sourceRef?: string;
|
|
4
4
|
}
|
|
5
5
|
export interface CatalogSection {
|
|
6
6
|
head: string;
|
|
7
7
|
fields: string[];
|
|
8
8
|
}
|
|
9
|
-
export interface
|
|
9
|
+
export interface DocumentCatalogEntry {
|
|
10
10
|
sections: CatalogSection[];
|
|
11
|
-
fields: Record<string,
|
|
11
|
+
fields: Record<string, FieldDef>;
|
|
12
12
|
}
|
|
13
|
-
|
|
14
|
-
* Keyed by documentType string (e.g. "1040", "W2", "1099").
|
|
15
|
-
* Empty for now — DocumentReviewModal falls back to flat field rendering
|
|
16
|
-
* when the documentType has no catalog entry (line 84-96).
|
|
17
|
-
*/
|
|
18
|
-
export declare const DOCUMENT_FIELD_CATALOG: Record<string, CatalogEntry>;
|
|
13
|
+
export declare const DOCUMENT_FIELD_CATALOG: Record<string, DocumentCatalogEntry>;
|