STRDeduct

How the numbers are computed

Every number STRDeduct shows carries a trace: the rule that was applied, the inputs it saw, and the citations behind it. When a result surprises you, the trace is the answer to why.

This page is generated from the same machinery. The checklist, the hours doctrine, and the thresholds below are imported from the engine that computes your numbers — not retyped as marketing copy.

The correctness checklist

The 21 items the engine must get right, kept as data inside the engine itself. Every item is enforced by tests in CI — a stage cannot ship while its items fail.

C1
Average stay = Σ nights ÷ reservations, per property — never ÷ 365
C2
7-day test needs no services; only the 30-day test needs significant personal services
C3
All 7 material-participation tests; test 3 vs single highest other; spouse counts; travel/on-call/investor hours don't; a real-time log is required (§1.469-5T(f)(4) — the S5 hours ledger IS that log: real-time capture, append-only in the database)
C4
Non-passive ≠ Schedule C — qualifying STR stays on Schedule E, no SE tax
C5
STR path does not require REPS; lead with the 100-hour test
C6
Bonus rate keyed to acquisition AND placed-in-service date (100% after 19 Jan 2025; 40% 1–19 Jan 2025; TCJA phase-down before)
C7
Land not depreciated; ≤30-day average → 39-yr nonresidential shell, >30-day → 27.5-yr; 5/7-yr §1245 and 15-yr buckets
C8
§461(l) excess-loss cap year-indexed ($256k/$512k for 2026); excess becomes NOL, never lost
C9
Recapture split: §1245 at ordinary rates, unrecaptured §1250 at ≤25% — never cap §1245 at 25%
C10
QBI: trade-or-business / 250-hr safe-harbor gate; year-indexed thresholds; negative-QBI carryforward
C11
Separate federal vs state depreciation with bonus add-backs (CA rejects §168(k); §179 capped there)
C12
1099-NEC threshold $2,000 for 2026 payments (not $600); W-9 up front; 24% backup withholding
C13
Loss ordering: basis → at-risk (§465) → passive (§469) → §461(l) → NOL; qualified nonrecourse RE debt is at-risk
C14
Gross platform payout is income; platform fees are an expense — never book the net deposit
C15
Occupancy tax carried separately from income tax: platform-remitted tax never enters income; host-remitted stays in gross and deducts (Sch E L16) when paid — per-jurisdiction rates and collection status arrive with the occupancy module
C16
All thresholds in year-indexed lookup tables — a new year is a data update, not a release
C17
§280A personal-use: over greater(14 days, 10% of rented days) → residence, loss capped at rental income — strategy voids
C18
NIIT §1411 3.8%: material participation in a trade-or-business STR keeps net income and sale gain out of the surtax
C19
The Mirch linter runs on the real log: non-contemporaneous and bulk-backfill patterns, round numbers and identical durations, on-call/travel/investor time, totals contradicted by the books, implausible daily loads — seeded bad logs (including the Mirch fact pattern) are caught, and a clean log stays clean
C20
The product never manufactures a Mirch tell: a prompt proposes NO duration (the tap chooses it, so identical durations cannot accumulate) and never a category the books contradict (coordination, not cleaning, where paid cleaning is deducted); a prompt-confirmed entry is dated the day the work happened, is contemporaneous by construction, and is evidence-backed only when it cites an external record — a bare reminder is refused as evidence
C21
The binder asserts only what the record supports: every gate of the finding carries its verdict AND its citation, a gate whose data was never captured reads unproven (never passed), an hours entry claiming the evidence-backed tier names the record it cites while an estimate says so, an unopposed comparison set (comparisonSetIncomplete) and the ledger's exclusions appear on the face of the binder, and every section of the docs/06 Part 4 spec this product cannot yet supply is printed as a stated absence rather than dropped from the document

Hours that never count

Unknown categories of work count toward participation by default; these three never do.

Investor-capacity work

  • Reg. §1.469-5T(f)(2)(ii) — work in an investor capacity — reviewing financials, studying reports, monitoring in a non-managerial capacity — is not participation
  • Barniskis v. Commissioner, T.C. Memo 1999-258 — investor-type bookkeeping hours could not beat the management company

On-call availability

  • Mirch v. Commissioner, T.C. Memo 2025-128 — 744.5 claimed 'site management / on-call' hours disallowed — being available does not count, only actual work performed
  • Moss v. Commissioner, 135 T.C. 365 (2010) — on-call time is not participation; regs do not allow a post-event ballpark guesstimate

Travel time

  • Lucero v. Commissioner, T.C. Memo 2020-136 — travel time to a distant, manager-run STR did not count toward material participation
  • IRS Passive Activity Loss Audit Technique Guide — travel time 'generally should not be considered' in the hour tests

Year-indexed thresholds

Dollar limits move, so the engine keeps them in per-year tables. A new tax year is a data update, not a release.

Threshold2026
§461(l) excess business loss cap — single$256,000
§461(l) excess business loss cap — married filing jointly$512,000
1099-NEC reporting minimum$2,000
1099-K reporting minimum — gross payments$20,000
1099-K reporting minimum — transactions200
QBI phase-out start — single$201,750
QBI phase-out start — married filing jointly$403,500
QBI safe-harbor rental service hours250
NIIT MAGI threshold — single$200,000
NIIT MAGI threshold — married filing jointly$250,000
NIIT rate3.8%

What we do not claim

Our word is defensible: a record built to hold up under review, with the rule and the evidence attached to every number.

We promise process, never outcomes. What a return produces depends on facts and review that no software controls — and the product never files anything without a human confirming it.

Try the estimatorRead the disclaimers