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.
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
| Category | Examples | Tax Treatment |
|---|---|---|
| Repair | Fix leaky faucet, replace capacitor, patch roof | Current deduction (Schedule E) |
| Capital Improvement | New water heater, new appliances, new roof, addition | Add to cost basis |
| Maintenance | Landscaping, pest control, cleaning | Current 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 Line | Beancount 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.