Zum Hauptinhalt springen

Real Estate Investment Tracking with Beancount.io

Managing rental property accounting across mortgages, escrow accounts, depreciation schedules, and eventual property sales can be challenging. This comprehensive guide shows you how to set up and maintain accurate real estate investment tracking using Beancount.io's powerful plain-text accounting system.

Real Estate Investment Tracking

Explore a live real estate example ledger:

Why Traditional Tools Fall Short

Common Problems with Real Estate Accounting Software

  • No Depreciation Tracking: Most tools don't support 27.5-year straight-line depreciation with mid-month convention
  • Poor Mortgage Handling: Simplified views don't split payments into interest, principal, and escrow
  • Missing Cost Basis Adjustments: Capital improvements that add to basis are treated as regular expenses
  • No Sale Gain Decomposition: Can't split sale proceeds into depreciation recapture vs. long-term capital gains
  • Inflexible Account Structures: Fixed categories don't accommodate land/building splits or contra-asset accounts
  • Vendor Lock-in: Proprietary formats make it impossible to maintain 27.5 years of continuous records

Beancount.io Advantages

  • Complete Control: Own your data in plain-text format that lasts decades
  • Unlimited Customization: Model any property structure with custom accounts
  • Precise Cost Basis: Track original cost, improvements, and depreciation separately
  • Transparent Calculations: See exactly how depreciation accumulates and gains are computed
  • Property as Commodity: Use price directives for Fava Holdings view with appreciation tracking
  • Future-Proof: Plain-text format ensures long-term accessibility across your entire holding period

Setting Up Your Property Account Structure

Account Hierarchy

Start with a comprehensive account structure that reflects your real estate investment:

; ============================================================
; Property Asset Accounts
; ============================================================

; The property commodity — 1 unit purchased at cost basis
1970-01-01 open Assets:RealEstate:Property
; Contra-asset: accumulated depreciation reduces building value on balance sheet
; Note: Land ($80K, 20%) is non-depreciable; Building ($320K, 80%) is depreciated
1970-01-01 open Assets:RealEstate:AccumDepreciation
; Capital improvements added to basis
1970-01-01 open Assets:RealEstate:CapitalImprovements

; ============================================================
; Bank Accounts
; ============================================================

1970-01-01 open Assets:Bank:Checking
1970-01-01 open Assets:Bank:Savings
; Escrow impound: monthly contributions for property tax & insurance
1970-01-01 open Assets:Bank:EscrowImpound

; ============================================================
; Liability Accounts
; ============================================================

; 30-year fixed mortgage at 7.0% APR
1970-01-01 open Liabilities:Mortgage
; Tenant security deposit — not income until forfeited
1970-01-01 open Liabilities:SecurityDeposit

; ============================================================
; Income Accounts
; ============================================================

1970-01-01 open Income:RealEstate:Rent
1970-01-01 open Income:RealEstate:CapitalGains:LongTerm
1970-01-01 open Income:RealEstate:DepreciationRecapture

; ============================================================
; Expense Accounts
; ============================================================

1970-01-01 open Expenses:RealEstate:MortgageInterest
1970-01-01 open Expenses:RealEstate:LoanOrigination
1970-01-01 open Expenses:RealEstate:PropertyTax
1970-01-01 open Expenses:RealEstate:Insurance
1970-01-01 open Expenses:RealEstate:PropertyManagement
1970-01-01 open Expenses:RealEstate:Repairs
1970-01-01 open Expenses:RealEstate:Maintenance
1970-01-01 open Expenses:RealEstate:Depreciation
1970-01-01 open Expenses:RealEstate:ClosingCosts
1970-01-01 open Expenses:RealEstate:SellingCosts

Commodity Definition with Metadata

Define your property as a commodity for portfolio-style tracking:

1970-01-01 commodity PROP123MAIN
name: "123 Main St, Anytown, CA 90210"
asset-class: "real-estate"

1970-01-01 commodity USD

This enables Fava's Holdings view to display your property's current market value alongside stocks, bonds, and other investments.

Property Acquisition Tracking

Recording the Purchase

Track a $400,000 purchase with 20% down payment and 30-year fixed mortgage:

; Down payment — 20% of $400,000
2024-03-15 * "Escrow" "Down payment — 20% of $400,000"
Assets:RealEstate:Property 1 PROP123MAIN {400,000.00 USD, 2024-03-15}
Assets:Bank:Checking -80,000.00 USD
Liabilities:Mortgage -320,000.00 USD

Closing Costs

Record each closing cost as a separate transaction for clear audit trails:

2024-03-15 * "Lender" "Loan origination fee — 1% of $320,000"
Expenses:RealEstate:LoanOrigination 3,200.00 USD
Assets:Bank:Checking -3,200.00 USD

2024-03-15 * "Title company" "Title insurance, escrow fees, recording"
Expenses:RealEstate:ClosingCosts 2,800.00 USD
Assets:Bank:Checking -2,800.00 USD

2024-03-15 * "Appraiser" "Property appraisal"
Expenses:RealEstate:ClosingCosts 450.00 USD
Assets:Bank:Checking -450.00 USD

Land/Building Allocation

The IRS requires separating non-depreciable land from the depreciable building. Document the allocation using comments:

; Land / building cost allocation (from county assessor):
; County assessor shows 20% land ($80K) / 80% building ($320K).
; Only the building portion ($320K) is depreciated — see depreciation section.
; Source: County Assessor parcel record, assessed 2024-01-01

Initial Escrow Impound

Lenders typically require an initial escrow deposit at closing:

; Initial escrow: 3 months property tax + 1 year insurance prepaid
; Property tax: ~$5,000/yr → $416.67/mo × 3 = $1,250.00
; Insurance: ~$1,800/yr prepaid
2024-03-15 * "Escrow" "Initial escrow impound — property tax (3 mo) + insurance (1 yr)"
Assets:Bank:EscrowImpound 1,250.00 USD
Expenses:RealEstate:Insurance 1,800.00 USD
Assets:Bank:Checking -3,050.00 USD

Mortgage Management

Monthly Payment Breakdown

Each mortgage payment splits into interest expense, principal reduction, and escrow:

; 30-year fixed: $320,000 at 7.0% APR
; Monthly P&I: $2,129.06
; Monthly escrow: $566.67 ($416.67 tax + $150.00 insurance)
; Total payment: $2,695.73

; Month 1: Interest = $320,000.00 × 0.07 / 12 = $1,866.67
2024-04-01 * "Bank" "Mortgage payment — April 2024"
Expenses:RealEstate:MortgageInterest 1,866.67 USD
Liabilities:Mortgage 262.39 USD
Assets:Bank:EscrowImpound 566.67 USD
Assets:Bank:Checking -2,695.73 USD

; Month 2: Interest = ($320,000.00 - $262.39) × 0.07 / 12 = $1,865.14
2024-05-01 * "Bank" "Mortgage payment — May 2024"
Expenses:RealEstate:MortgageInterest 1,865.14 USD
Liabilities:Mortgage 263.92 USD
Assets:Bank:EscrowImpound 566.67 USD
Assets:Bank:Checking -2,695.73 USD

Escrow Disbursements

Track when the escrow account pays out for taxes and insurance:

; Semi-annual property tax disbursement
2024-09-15 * "County tax collector" "Property tax — first installment"
Expenses:RealEstate:PropertyTax 2,500.00 USD
Assets:Bank:EscrowImpound -2,500.00 USD

; Annual insurance renewal
2025-03-15 * "Insurance company" "Homeowner insurance renewal — year 2"
Expenses:RealEstate:Insurance 1,850.00 USD
Assets:Bank:EscrowImpound -1,850.00 USD

Rental Income & Property Management

Gross Rent with PM Fees

Track gross rental income and property management fees separately:

; Rent: $2,400/mo, PM fee: 8% = $192
; Net to owner: $2,208

2024-04-01 * "Tenant" "April 2024 rent"
Assets:Bank:Checking 2,208.00 USD
Expenses:RealEstate:PropertyManagement 192.00 USD
Income:RealEstate:Rent -2,400.00 USD

Security Deposits

Security deposits are liabilities, not income:

; Receive deposit — creates liability
2024-03-20 * "Tenant" "Security deposit — 1 month rent"
Assets:Bank:Checking 2,400.00 USD
Liabilities:SecurityDeposit -2,400.00 USD

; Return deposit — eliminates liability
2025-11-01 * "Tenant" "Return security deposit — lease ended"
Liabilities:SecurityDeposit 2,400.00 USD
Assets:Bank:Checking -2,400.00 USD

Rent Increases

Document rent increases clearly:

; 2025 rent increase: $2,400 → $2,500/mo
; New PM fee: 8% × $2,500 = $200
2025-01-01 * "Tenant" "January 2025 rent (increased to $2,500)"
Assets:Bank:Checking 2,300.00 USD
Expenses:RealEstate:PropertyManagement 200.00 USD
Income:RealEstate:Rent -2,500.00 USD

Depreciation Tracking

27.5-Year Straight-Line with Mid-Month Convention

Residential rental property depreciation rules:

  • Recovery period: 27.5 years
  • Method: Straight-line
  • Convention: Mid-month (half-month in first and last months)
; Building cost: $320,000 (80% of purchase price)
; Monthly depreciation: $320,000 / 27.5 / 12 = $969.70
; Half-month: $484.85

; First month — half-month (placed in service 3/15)
2024-03-31 * "Depreciation" "March 2024 — half-month (placed in service)"
Expenses:RealEstate:Depreciation 484.85 USD
Assets:RealEstate:AccumDepreciation -484.85 USD

; Full months
2024-04-30 * "Depreciation" "April 2024"
Expenses:RealEstate:Depreciation 969.70 USD
Assets:RealEstate:AccumDepreciation -969.70 USD

2024-05-31 * "Depreciation" "May 2024"
Expenses:RealEstate:Depreciation 969.70 USD
Assets:RealEstate:AccumDepreciation -969.70 USD

Contra-Asset Pattern

The contra-asset approach keeps the original property cost visible while tracking the accumulated depreciation reduction:

  • Assets:RealEstate:Property — always shows original cost ($400,000)
  • Assets:RealEstate:AccumDepreciation — accumulates negative balance over time
  • Net book value = Property - |AccumDepreciation| = adjusted basis for depreciation

This separation is essential for the sale calculation, where you need the original cost, total improvements, and total depreciation as distinct values.

Capital Improvements vs. Repairs

The Critical Distinction

Repairs (current deduction — fully deductible in the year incurred):

2024-05-18 * "HVAC Pro" "A/C repair — replaced capacitor"
Expenses:RealEstate:Repairs 285.00 USD
Assets:Bank:Checking -285.00 USD

2024-06-10 * "Joe's Plumbing" "Fix leaking kitchen faucet"
Expenses:RealEstate:Repairs 180.00 USD
Assets:Bank:Checking -180.00 USD

Capital improvements (add to basis — not deductible now, reduce gain at sale):

2024-08-12 * "Home Depot" "Replace water heater — 50 gal gas"
Assets:RealEstate:CapitalImprovements 1,800.00 USD
Assets:Bank:Checking -1,800.00 USD

2024-10-05 * "Lowe's" "New kitchen appliances — stove + dishwasher"
Assets:RealEstate:CapitalImprovements 4,200.00 USD
Assets:Bank:Checking -4,200.00 USD

How to Decide

CategoryExamplesTax Treatment
RepairFix leaky faucet, replace capacitor, patch roofCurrent deduction (Schedule E)
Capital ImprovementNew water heater, new appliances, new roof, additionAdd to cost basis
MaintenanceLandscaping, pest control, cleaningCurrent deduction (Schedule E)

Property Disposition

Sale Gain Calculation

When you sell, the gain splits between depreciation recapture and long-term capital gain:

; === Gain Calculation ===
;
; Purchase price: $400,000.00
; + Capital improvements: + 6,000.00
; - Accumulated depreciation: - 19,394.00
; = Adjusted basis: $386,606.00
;
; Sale price: $435,000.00
; - Selling costs (6%): - 26,100.00
; = Net proceeds: $408,900.00
;
; Total gain: $ 22,294.00
; Depreciation recapture: $ 19,394.00 (taxed at max 25% — §1250)
; Long-term capital gain: $ 2,900.00 (taxed at LTCG rates)

Recording the Sale

; Selling costs
2025-11-15 * "Realtor" "Sales commission — 5% of $435,000"
Expenses:RealEstate:SellingCosts 21,750.00 USD
Assets:Bank:Checking -21,750.00 USD

2025-11-15 * "Title company" "Seller closing costs — 1% of $435,000"
Expenses:RealEstate:ClosingCosts 4,350.00 USD
Assets:Bank:Checking -4,350.00 USD

; Mortgage payoff
2025-11-15 * "Bank" "Mortgage payoff at closing"
Liabilities:Mortgage 314,744.09 USD
Assets:Bank:Checking -314,744.09 USD

; Dispose property and recognize gain
2025-11-15 * "Sale" "Dispose property — recognize gain"
Assets:RealEstate:Property -1 PROP123MAIN {400,000.00 USD, 2024-03-15}
Assets:RealEstate:CapitalImprovements -6,000.00 USD
Assets:RealEstate:AccumDepreciation 19,394.00 USD
Assets:Bank:Checking 408,900.00 USD
Income:RealEstate:DepreciationRecapture -19,394.00 USD
Income:RealEstate:CapitalGains:LongTerm -2,900.00 USD

Portfolio Performance

Price Directives for Appreciation Tracking

Set up quarterly property valuations:

2024-03-15 price PROP123MAIN  400,000.00 USD
2024-06-30 price PROP123MAIN 405,000.00 USD
2024-09-30 price PROP123MAIN 412,000.00 USD
2024-12-31 price PROP123MAIN 418,000.00 USD
2025-03-31 price PROP123MAIN 425,000.00 USD
2025-06-30 price PROP123MAIN 430,000.00 USD

Sources for property valuations: Zillow Zestimate, Redfin estimate, comparable sales, or professional appraisals.

Fava Holdings View

With the property modeled as a commodity, Fava's Holdings view shows:

  • Cost basis: Original purchase price
  • Market value: Based on latest price directive
  • Unrealized gain: Appreciation since purchase

This lets you see real estate alongside stocks, crypto, and other investments in a unified portfolio view.

Tax Optimization Strategies

Schedule E Categorization

Beancount's account structure maps directly to Schedule E line items:

Schedule E LineBeancount Account
Line 3 (Rents received)Income:RealEstate:Rent
Line 5 (Advertising)Expenses:RealEstate:Advertising
Line 8 (Insurance)Expenses:RealEstate:Insurance
Line 9 (Legal/professional)Expenses:RealEstate:Legal
Line 10 (Management fees)Expenses:RealEstate:PropertyManagement
Line 12 (Mortgage interest)Expenses:RealEstate:MortgageInterest
Line 14 (Repairs)Expenses:RealEstate:Repairs
Line 16 (Taxes)Expenses:RealEstate:PropertyTax
Line 18 (Depreciation)Expenses:RealEstate:Depreciation

1031 Exchange Concepts

A 1031 exchange defers capital gains and depreciation recapture by reinvesting into like-kind property. While the full implementation requires CPA guidance, Beancount can track the deferred gain through metadata and memo entries.

Reporting & Analytics

Net Rental Income Query

SELECT account, sum(position) as total
WHERE account ~ "Income:RealEstate" OR account ~ "Expenses:RealEstate"
GROUP BY account
ORDER BY total;

Cash Flow Analysis

-- Monthly net cash flow from property
SELECT year(date), month(date), sum(position) as net_flow
WHERE account ~ "Assets:Bank:Checking"
AND (narration ~ "rent" OR narration ~ "Mortgage" OR narration ~ "repair")
GROUP BY year(date), month(date)
ORDER BY year(date), month(date);

Year-End Verification

Use balance assertions to catch errors before tax filing:

2025-01-01 balance Assets:RealEstate:Property    1 PROP123MAIN
2025-01-01 balance Assets:RealEstate:CapitalImprovements 6,000.00 USD
2025-01-01 balance Assets:RealEstate:AccumDepreciation -9,212.15 USD
2025-01-01 balance Liabilities:SecurityDeposit -2,400.00 USD

Best Practices and Tips

1. Document the Land/Building Split

Record the county assessor's allocation in comments with the source and date. The IRS may challenge aggressive building allocations.

2. Track Depreciation Monthly

Even though it's reported annually, monthly entries keep your balance sheet accurate and make year-end straightforward.

3. Classify Improvements vs. Repairs Carefully

When in doubt, consult IRS Publication 527. The distinction between a capital improvement (adds to basis) and a repair (current deduction) can save or cost you thousands.

4. Use Balance Assertions

Assert balances quarterly. If bean-check reports an assertion failure, you'll catch data-entry mistakes early.

5. Keep Security Deposits as Liabilities

Never record security deposits as income until they are legally forfeited.

6. Maintain Price Directives

Update property valuations quarterly using comparable sales, Zillow estimates, or professional appraisals.

7. Plan for the Sale

Keep your accounts clean so the sale gain calculation — original cost + improvements - depreciation - selling costs — is already computed when the time comes.

Conclusion

Effective real estate investment tracking requires precision, consistency, and the right tools. Beancount.io provides the flexibility and power needed to manage complex rental property accounting across the full investment lifecycle.

Key benefits of using Beancount.io for real estate tracking:

  • Complete Data Ownership: Your data in plain-text format that lasts decades
  • Precise Cost Basis: Track purchase, improvements, and depreciation separately
  • Tax-Ready Reporting: Account structure maps directly to Schedule E
  • Portfolio View: Property as commodity enables Fava Holdings integration
  • Future-Proof: Open format ensures accessibility across the 27.5-year depreciation period and beyond

Start with a single property and expand your tracking as your portfolio grows. The investment in proper setup pays dividends in accurate reporting, tax optimization, and peace of mind.

Ready to take control of your real estate accounting? Get started with Beancount.io today.