100% Bonus Depreciation is BACK: How to Track Capital Asset Decisions Now That OBBBA Made It Permanent

The OBBBA (One Big Beautiful Bill Act) just made one of the biggest changes to business tax planning in years—and most small business owners don’t even know it yet. 100% bonus depreciation is BACK and it’s PERMANENT.

What Changed (And Why This Matters)

For those who haven’t been tracking the depreciation rollercoaster:

  • 2023: 80% bonus depreciation (phase-down begins)
  • 2024: 60% bonus depreciation
  • 2025: 40% bonus depreciation
  • 2026 and beyond: 100% bonus depreciation PERMANENTLY (thanks to OBBBA)

This isn’t just a temporary extension. Congress made it a permanent feature of the tax code. That fundamentally changes how businesses should think about capital purchases.

What Qualifies for 100% Bonus Depreciation?

The rules are generally consistent with prior bonus depreciation provisions:

  • Tangible property with a recovery period of 20 years or less
  • New AND used equipment (both qualify)
  • Must be placed in service after January 19, 2025
  • Examples: machinery, equipment, computers, vehicles, furniture

What DOESN’T qualify:

  • Buildings (real property uses different rules)
  • Land
  • Property used outside the U.S.
  • Certain vehicles over 6,000 lbs (luxury vehicle limits may apply)

The Business Decision Impact

Before permanence, there was always this pressure: “Buy before the percentage drops!” Businesses accelerated purchases to lock in higher deduction percentages. Now with 100% permanent, you can make capital investment decisions based on business need, not tax deadline panic.

The Tracking Challenge: Section 179 vs Bonus Depreciation vs Regular Depreciation

Here’s where it gets interesting for Beancount users. You now have THREE options for deducting equipment purchases:

1. Section 179 Expensing

  • Deduction limit: $2,560,000 (2026)
  • Phase-out begins: $4,090,000 in purchases
  • Cannot exceed taxable income (can’t create a loss)
  • Elective (you choose which assets)

2. Bonus Depreciation

  • No dollar limit
  • CAN create or increase NOL (net operating loss)
  • Generally automatic unless you elect out
  • More flexible for businesses with losses

3. Regular Depreciation

  • Spread deduction over 5-7 years (depending on asset class)
  • Sometimes preferable if you want to smooth income/deductions

How I Track This in Beancount

When a client purchases qualifying equipment, here’s my tracking approach:

2026-03-15 * "ABC Equipment Supply" "Industrial printer for business"
  Assets:Equipment:Printer                    50,000.00 USD
    bonus-depreciation-eligible: TRUE
    placed-in-service: 2026-03-15
    cost-recovery-period: "5-year property"
    depreciation-election: "100% bonus"
  Assets:Checking                            -50,000.00 USD

Then for the tax deduction:

2026-12-31 * "Tax: Bonus depreciation deduction" 
  Expenses:Tax-Deductions:Depreciation        50,000.00 USD
    asset-reference: "Assets:Equipment:Printer"
  Income:Tax-Benefit                         -50,000.00 USD

The metadata is critical: you need to track placed-in-service dates, not just purchase dates, because the deduction happens in the year the asset is USED, not purchased.

When to Elect OUT of Bonus Depreciation

Counterintuitively, sometimes you DON’T want the 100% deduction:

  • If you’re in a loss position: Creating/increasing an NOL might not help if you can’t use it
  • If you expect higher future tax rates: Better to depreciate over time when rates are higher
  • If you want to smooth income: Regular depreciation provides steady deductions

Beancount lets you track these elections with metadata like @depreciation-election: "5-year MACRS" if you elect out.

My Question to the Community

How are other tax professionals and bookkeepers tracking bonus depreciation elections in Beancount?

Specifically:

  • Do you track the tax benefit calculation separately or integrate it into the ledger?
  • How do you handle the “what-if” analysis when clients ask “should I elect out?”
  • Anyone building Python scripts to calculate optimal depreciation strategy?

The permanence of 100% bonus depreciation is great news for businesses, but it adds another layer of planning complexity. Would love to hear how others are handling this.


References:

Great writeup on the OBBBA changes! As a CPA who’s been advising clients through the phase-down years, I can’t tell you how nice it is to have permanence back in tax planning conversations.

The “Buy Before Year-End” Panic is Over

From 2023-2025, every Q4 became this stressful scramble: clients frantically asking “should I accelerate this equipment purchase before bonus drops further?” Now we can have rational conversations about whether the purchase makes business sense, not just tax sense.

Section 179 vs Bonus: Strategic Layering

You laid out the technical differences well. Here’s how I typically advise clients to layer these deductions:

Step 1: Apply Section 179 first (up to $2.56M in 2026)

  • Best for: Assets you specifically want to expense immediately
  • Limitation: Cannot exceed taxable business income (can’t create loss)
  • Benefit: You control which assets get the election

Step 2: Apply Bonus Depreciation to remainder

  • Best for: Additional qualifying property beyond Section 179 limit
  • Benefit: Can create or increase NOL (carryforward to future years)
  • Generally automatic unless you elect out

Real Client Example: S-Corp with $200k Equipment Purchase

Client runs manufacturing S-corp, bought $200k in new machinery in 2026:

Scenario A: Use 100% Bonus (default)

  • Full $200k deduction in 2026
  • Tax savings: $200k × 37% = $74k (if in top bracket)
  • Cash flow: huge immediate benefit

Scenario B: Client has $150k taxable income, wants to avoid NOL

  • Section 179: Elect $150k (brings income to zero)
  • Remaining $50k: Take regular depreciation over 5 years ($10k/year)
  • Preserves future deductions when rates might be higher

My Beancount Tracking Approach

I use metadata slightly differently than your example—I track the depreciation election decision and the tax benefit calculation:

2026-04-01 * "Equipment purchase - CNC machine"
  Assets:FixedAssets:Equipment:CNC-Machine     200,000.00 USD
    asset-class: "7-year property"
    placed-in-service: 2026-04-01
    qualified-property: TRUE
    section-179-elected: 150,000.00 USD
    bonus-depreciation-elected: FALSE
    depreciation-method: "MACRS 5-year" 
  Liabilities:Equipment-Loan                  -200,000.00 USD

2026-12-31 * "Tax deduction: Section 179 expensing"
  Expenses:Tax-Deductions:Section179           150,000.00 USD
    asset-ref: "Assets:FixedAssets:Equipment:CNC-Machine"
  Income:Tax-Benefit:Section179               -150,000.00 USD

The key metadata: section-179-elected and bonus-depreciation-elected let me track what the client actually chose, not just what they were eligible for.

Question Back to You

How do you track situations where a client elects OUT of bonus depreciation? I’ve had clients in loss positions who want to preserve the depreciation deductions for future profitable years. Do you create separate accounts for “elected out” assets or handle it purely with metadata?

Also curious: are you building any BQL queries to run “what-if” scenarios comparing bonus vs regular depreciation? Would love to collaborate on optimization scripts.

This is such a timely discussion! As a bookkeeper working with 20+ small business clients, I’m dealing with a lot of confusion around bonus depreciation right now. The permanence is great, but clients don’t understand the rules and make wrong assumptions.

Common Client Misconceptions I’m Fighting

Misconception #1: “100% deduction means ALL purchases qualify”

Clients hear “100% bonus depreciation” and assume their $500k building purchase gets fully deducted. Then I have to explain: “No, buildings are real property—different rules. Bonus is for equipment, machinery, vehicles with ≤20 year recovery period.”

Misconception #2: “I can deduct it when I buy it”

Client buys equipment in December 2026, hasn’t even opened the box yet. Wants the deduction in 2026. I explain: “Purchase date ≠ placed-in-service date. If you don’t install and use it until January 2027, the deduction is in 2027.”

Misconception #3: “New equipment only”

Clients think only brand-new equipment qualifies. Reality: used equipment qualifies too (as long as it’s new to you and meets other requirements).

The Tracking Challenge: Purchase Date vs Placed-in-Service Date

This is where Beancount helps me SO MUCH. I track both dates explicitly:

2026-12-15 * "Equipment purchase - still in warehouse"
  Assets:Equipment:CNC-Machine-Unpacked        50,000.00 USD
    purchase-date: 2026-12-15
    placed-in-service: ""
    bonus-eligible: "pending installation"
  Assets:Checking                             -50,000.00 USD

2027-01-10 * "Equipment installed and operational"
  Assets:Equipment:CNC-Machine                 50,000.00 USD
    placed-in-service: 2027-01-10
    bonus-eligible: TRUE
    tax-year-deduction: 2027
  Assets:Equipment:CNC-Machine-Unpacked       -50,000.00 USD

The account name change (-Unpacked → actual asset account) signals when it’s actually in service. Metadata tracks both dates so at tax time I can prove to the IRS when it was placed in service.

Question: Does Anyone Have a Beancount Template for Asset Tracking?

I’m manually tracking all this metadata, but I’d love a more structured approach. Specifically:

  • Chart of accounts structure for qualified vs non-qualified assets?
  • Standard metadata tags (I’m making mine up as I go)?
  • BQL queries to generate “bonus depreciation eligible assets report” for tax time?

Also: Anyone dealt with the luxury vehicle limits? Clients buy $80k pickup trucks thinking they get 100% deduction, but if it’s over 6,000 lbs certain rules apply. How do you track that in Beancount?

Would love to see what others are using—happy to share my templates too if they’d be helpful!

This thread is hitting at the perfect time for me! I run a small online education business (side hustle alongside my day job) and just made my first major equipment purchase now that bonus depreciation is permanent.

My Personal Business Context

I create online courses and needed to upgrade my video production setup. Total investment: $15,000 in equipment:

  • Professional camera: $4,500
  • Lighting kit: $2,200
  • Audio equipment: $3,800
  • Editing workstation: $4,500

All placed in service in February 2026, so fully eligible for 100% bonus depreciation.

The “Before OBBBA” Mindset vs “After OBBBA” Mindset

Before (2022-2024): I was constantly calculating “should I buy now or wait?” Every purchase decision was influenced by the phase-down schedule. I rushed to buy equipment in 2022 when it was still 100%, then regretted not waiting when prices dropped in 2023.

After (2026+): Now I make purchase decisions based on actual business need, not tax deadline anxiety. The permanence changes the entire psychology of capital planning.

The Cash Flow Impact (Real Numbers)

Here’s how I tracked it in Beancount:

2026-02-15 * "Video equipment purchase for course production"
  Assets:Business:Equipment:VideoGear          15,000.00 USD
    placed-in-service: 2026-02-15
    bonus-depreciation: TRUE
    expected-useful-life: "5 years"
  Assets:Business:Checking                    -15,000.00 USD

Tax benefit calculation (I’m in 24% federal bracket):

  • Equipment cost: $15,000
  • First-year deduction: $15,000 (100% bonus)
  • Federal tax savings: $15,000 × 24% = $3,600
  • State tax savings: $15,000 × 5% = $750 (my state rate)
  • Total tax savings: $4,350

That’s a 29% instant “discount” on the equipment from tax savings. Makes the real cost $10,650 instead of $15,000.

Question: Depreciation Recapture Risk?

Here’s what I’m worried about: if my business grows and I sell this equipment in 3 years to upgrade, what happens with depreciation recapture?

From what I understand:

  • I took $15k deduction in 2026
  • If I sell for $8k in 2029, I have $8k of recapture income (taxed as ordinary income)
  • Effectively “payback” some of the deduction

How do you track potential recapture liability in Beancount? I want to see:

  • Original cost basis
  • Accumulated depreciation/bonus taken
  • Potential recapture if sold at various prices

Is anyone tracking this with metadata or separate accounts? Would love to see how experienced folks handle the long-term tax planning around depreciable assets.

Also curious: for those tracking business assets in Beancount, do you separate “personal use” vs “business use” for equipment that serves dual purposes? My video gear is 90% business, 10% personal (I use it for family videos too). How do you document that split for IRS purposes?

Excellent discussion! Let me add some technical Beancount implementation details that might help folks who want to systematically track bonus depreciation and run tax optimization queries.

Structured Metadata Approach for Fixed Assets

I recommend standardizing your metadata tags across all depreciable assets. Here’s the schema I use:

Required metadata tags:

  • purchase-date: When you bought it (for basis tracking)
  • placed-in-service: When you started using it (determines tax year)
  • asset-class: IRS class (3-year, 5-year, 7-year, 15-year, etc.)
  • qualified-property: TRUE/FALSE (eligible for bonus?)
  • depreciation-method: “bonus-100”, “section-179”, “MACRS-200DB”, etc.

Optional but useful:

  • cost-basis: Original cost
  • salvage-value: Expected value at end of life
  • section-179-amount: Specific amount if using Section 179
  • business-use-pct: If mixed personal/business use

Sample Fixed Asset Entry

2026-03-10 * "Equipment purchase - Manufacturing lathe"
  Assets:FixedAssets:Equipment:Lathe           75,000.00 USD
    purchase-date: 2026-03-10
    placed-in-service: 2026-03-10
    asset-class: "7-year property"
    qualified-property: TRUE
    depreciation-method: "bonus-100"
    cost-basis: 75000.00
    salvage-value: 5000.00
    business-use-pct: 100
  Assets:Checking                             -75,000.00 USD

BQL Query: Show All Bonus-Eligible Assets

To generate a report of all assets eligible for bonus depreciation this year:

SELECT account, META('placed-in-service'), META('cost-basis'), META('depreciation-method')
WHERE account ~ 'Assets:FixedAssets:'
  AND META('qualified-property') = 'TRUE'
  AND META('placed-in-service') >= 2026-01-20
  AND META('depreciation-method') = 'bonus-100'

This gives you a tax-time report showing every asset taking bonus depreciation.

Tracking Section 179 Election Separately

For assets where you’re electing Section 179 instead of (or in addition to) bonus:

2026-04-15 * "Tax election: Section 179 expensing"
  Expenses:Tax:Section179Deduction             50,000.00 USD
    asset-account: "Assets:FixedAssets:Equipment:Lathe"
    election-form: "Form 4562 Part I"
  Income:Tax:Section179Benefit                -50,000.00 USD

I track the tax benefit as negative income so it shows up clearly in my P&L tax section.

Python Plugin Idea: Auto-Calculate Depreciation

Has anyone built a Beancount plugin that automatically generates depreciation entries based on metadata? Something like:

# Plugin reads all Assets:FixedAssets accounts
# For each asset with placed-in-service date:
#   - Calculate applicable depreciation (bonus, 179, or MACRS)
#   - Generate depreciation transaction
#   - Track accumulated depreciation

I’ve been thinking about building this but haven’t had time. If there’s interest, I could draft a spec and we could collaborate?

Resource: IRS Publication 946

For anyone wanting the authoritative source on depreciation rules, IRS Pub 946 covers everything:

  • MACRS depreciation tables
  • Section 179 rules and limits
  • Bonus depreciation provisions
  • Listed property rules (vehicles, computers)
  • Recapture calculations

Offer: Sharing My Beancount Fixed Asset Template

I have a fairly complete Beancount template for fixed asset tracking with:

  • Standard account structure (Assets:FixedAssets:Category:AssetName)
  • Metadata tags documented
  • Sample BQL queries for tax reporting
  • Depreciation schedule tracking

Happy to share via GitHub gist if folks are interested. Let me know and I’ll post a link.

@bookkeeper_bob - your question about luxury vehicle limits: I track those with metadata @vehicle-weight: "6500 lbs" and @luxury-limits-apply: TRUE, then manually calculate the depreciation cap. It’s one area that would benefit from automation!