This guide provides practical Beancount templates and real-world examples for common real estate investment scenarios. Copy and adapt these templates for your own rental property accounting needs.
Explore a live real estate example ledger:
Basic Setup Template
Account Structure Template
; =============================================================================
; REAL ESTATE ACCOUNT SETUP TEMPLATE
; =============================================================================
; Property Asset Accounts
1970-01-01 open Assets:RealEstate:Property
1970-01-01 open Assets:RealEstate:AccumDepreciation
1970-01-01 open Assets:RealEstate:CapitalImprovements
; Bank Accounts
1970-01-01 open Assets:Bank:Checking
1970-01-01 open Assets:Bank:Savings
1970-01-01 open Assets:Bank:EscrowImpound
; Liability Accounts
1970-01-01 open Liabilities:Mortgage
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
; Buyer-side closing costs (purchase only). There is deliberately no
; SellingCosts expense account: costs of sale reduce the amount realized
; at closing instead — see Property Sale Templates below.
1970-01-01 open Expenses:RealEstate:ClosingCosts
; Equity
1970-01-01 open Equity:Opening
; Commodity Definition
1970-01-01 commodity PROP123MAIN
name: "123 Main St, Anytown, CA 90210"
asset-class: "real-estate"
1970-01-01 commodity USDProperty Purchase Templates
Down Payment + Mortgage
; Template: Purchase property with mortgage
YYYY-MM-DD * "Escrow" "Down payment — [DOWN_PCT]% of $[PRICE]"
Assets:RealEstate:Property 1 [COMMODITY] {[PRICE] USD, YYYY-MM-DD}
Assets:Bank:Checking -[DOWN_PAYMENT] USD
Liabilities:Mortgage -[LOAN_AMOUNT] USD
; Example: $400,000 property with 20% down
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 USDClosing Costs
; Template: Loan origination fee
YYYY-MM-DD * "Lender" "Loan origination fee — [PCT]% of $[LOAN]"
Expenses:RealEstate:LoanOrigination [FEE] USD
Assets:Bank:Checking -[FEE] USD
; Template: Title and escrow fees
YYYY-MM-DD * "Title company" "Title insurance, escrow fees, recording"
Expenses:RealEstate:ClosingCosts [AMOUNT] USD
Assets:Bank:Checking -[AMOUNT] USD
; Template: Property appraisal
YYYY-MM-DD * "Appraiser" "Property appraisal"
Expenses:RealEstate:ClosingCosts [AMOUNT] USD
Assets:Bank:Checking -[AMOUNT] USD
; Example: Closing costs for $320,000 loan
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 USDInitial Escrow Impound
; Template: Initial escrow deposit at closing
YYYY-MM-DD * "Escrow" "Initial escrow impound — property tax ([N] mo) + insurance (1 yr)"
Assets:Bank:EscrowImpound [TAX_IMPOUND] USD
Expenses:RealEstate:Insurance [INSURANCE_PREPAID] USD
Assets:Bank:Checking -[TOTAL] USD
; Example: 3 months property tax + 1 year insurance
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 USDMortgage Payment Templates
Monthly P&I + Escrow
; Template: Monthly mortgage payment with escrow
; Total payment = Interest + Principal + Escrow
YYYY-MM-DD * "Bank" "Mortgage payment — [MONTH YEAR]"
Expenses:RealEstate:MortgageInterest [INTEREST] USD
Liabilities:Mortgage [PRINCIPAL] USD
Assets:Bank:EscrowImpound [ESCROW] USD
Assets:Bank:Checking -[TOTAL] USD
; Example: 30-year fixed, $320,000 at 7.0% APR
; Monthly P&I: $2,129.06, Escrow: $566.67, Total: $2,695.73
; Month 1 interest: $320,000 × 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 - $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 USDEscrow Disbursements
; Template: Semi-annual property tax payment from escrow
YYYY-MM-DD * "County tax collector" "Property tax — [INSTALLMENT] installment"
Expenses:RealEstate:PropertyTax [AMOUNT] USD
Assets:Bank:EscrowImpound -[AMOUNT] USD
; Template: Annual insurance payment from escrow
YYYY-MM-DD * "Insurance company" "Homeowner insurance renewal — year [N]"
Expenses:RealEstate:Insurance [AMOUNT] USD
Assets:Bank:EscrowImpound -[AMOUNT] USD
; Example: Property tax ($5,000/yr paid semi-annually)
2024-09-15 * "County tax collector" "Property tax — first installment"
Expenses:RealEstate:PropertyTax 2,500.00 USD
Assets:Bank:EscrowImpound -2,500.00 USD
; Example: 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 USDRental Income Templates
Monthly Rent with Property Management Fee
; Template: Monthly rent with PM fee
YYYY-MM-DD * "Tenant" "[MONTH YEAR] rent"
Assets:Bank:Checking [NET_RENT] USD
Expenses:RealEstate:PropertyManagement [PM_FEE] USD
Income:RealEstate:Rent -[GROSS_RENT] USD
; Example: $2,400/mo rent with 8% PM fee ($192)
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 USDSecurity Deposit Receipt
; Template: Receive security deposit (liability, NOT income)
YYYY-MM-DD * "Tenant" "Security deposit — [N] month rent"
Assets:Bank:Checking [AMOUNT] USD
Liabilities:SecurityDeposit -[AMOUNT] USD
; Example: 1-month security deposit
2024-03-20 * "Tenant" "Security deposit — 1 month rent"
Assets:Bank:Checking 2,400.00 USD
Liabilities:SecurityDeposit -2,400.00 USDSecurity Deposit Return
; Template: Return security deposit at lease end
YYYY-MM-DD * "Tenant" "Return security deposit — lease ended"
Liabilities:SecurityDeposit [AMOUNT] USD
Assets:Bank:Checking -[AMOUNT] USD
; Example: Full deposit return
2025-11-01 * "Tenant" "Return security deposit — lease ended"
Liabilities:SecurityDeposit 2,400.00 USD
Assets:Bank:Checking -2,400.00 USDOperating Expense Templates
Repairs (Current Deduction)
; Template: Repair expense — fully deductible in current year
YYYY-MM-DD * "[VENDOR]" "[DESCRIPTION]"
Expenses:RealEstate:Repairs [AMOUNT] USD
Assets:Bank:Checking -[AMOUNT] USD
; Example: HVAC repair
2024-05-18 * "HVAC Pro" "A/C repair — replaced capacitor"
Expenses:RealEstate:Repairs 285.00 USD
Assets:Bank:Checking -285.00 USD
; Example: Plumbing repair
2024-06-10 * "Joe's Plumbing" "Fix leaking kitchen faucet"
Expenses:RealEstate:Repairs 180.00 USD
Assets:Bank:Checking -180.00 USDMaintenance (Current Deduction)
; Template: Regular maintenance expense
YYYY-MM-DD * "[VENDOR]" "[DESCRIPTION]"
Expenses:RealEstate:Maintenance [AMOUNT] USD
Assets:Bank:Checking -[AMOUNT] USD
; Example: Quarterly landscaping
2024-06-15 * "Green Lawn Care" "Quarterly landscaping — Q2"
Expenses:RealEstate:Maintenance 360.00 USD
Assets:Bank:Checking -360.00 USD
; Example: Annual pest control
2024-10-20 * "PestShield" "Annual termite inspection & treatment"
Expenses:RealEstate:Maintenance 350.00 USD
Assets:Bank:Checking -350.00 USDDepreciation Templates
Monthly Straight-Line Depreciation
; Template: Monthly depreciation entry (full month)
; Building cost / 27.5 / 12 = monthly amount
YYYY-MM-DD * "Depreciation" "[MONTH YEAR]"
Expenses:RealEstate:Depreciation [MONTHLY_AMOUNT] USD
Assets:RealEstate:AccumDepreciation -[MONTHLY_AMOUNT] USD
; Example: $320,000 building, monthly = $320,000 / 27.5 / 12 = $969.70
2024-04-30 * "Depreciation" "April 2024"
Expenses:RealEstate:Depreciation 969.70 USD
Assets:RealEstate:AccumDepreciation -969.70 USDMid-Month Convention (First Month)
; Template: Half-month depreciation when placed in service
; Used in the month the property is placed in service
YYYY-MM-DD * "Depreciation" "[MONTH YEAR] — half-month (placed in service)"
Expenses:RealEstate:Depreciation [HALF_MONTH] USD
Assets:RealEstate:AccumDepreciation -[HALF_MONTH] USD
; Example: Placed in service March 15
; Half-month = $969.70 / 2 = $484.85
2024-03-31 * "Depreciation" "March 2024 — half-month (placed in service)"
Expenses:RealEstate:Depreciation 484.85 USD
Assets:RealEstate:AccumDepreciation -484.85 USDMid-Month Convention (Disposition Month)
; Template: Half-month depreciation when disposed
; Used in the month the property is sold/disposed
YYYY-MM-DD * "Depreciation" "[MONTH YEAR] — half-month (disposed)"
Expenses:RealEstate:Depreciation [HALF_MONTH] USD
Assets:RealEstate:AccumDepreciation -[HALF_MONTH] USD
; Example: Sold November 15
2025-11-15 * "Depreciation" "November 2025 — half-month (disposed)"
Expenses:RealEstate:Depreciation 484.85 USD
Assets:RealEstate:AccumDepreciation -484.85 USDCapital Improvement Templates
Basis Addition Entries
; Template: Capital improvement — adds to cost basis
; NOT a current expense deduction
YYYY-MM-DD * "[VENDOR]" "[DESCRIPTION]"
Assets:RealEstate:CapitalImprovements [AMOUNT] USD
Assets:Bank:Checking -[AMOUNT] USD
; Example: Replace water heater (extends useful life)
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
; Example: New kitchen appliances (adds value)
2024-10-05 * "Lowe's" "New kitchen appliances — stove + dishwasher"
Assets:RealEstate:CapitalImprovements 4,200.00 USD
Assets:Bank:Checking -4,200.00 USDProperty Sale Templates
Selling Costs
Selling costs are settled inside escrow at closing: the escrow agent deducts them from the buyer's funds, so they never pass through your checking account, and they are already subtracted from the net proceeds the gain-recognition template below receives. Reconcile the closing statement first — every deduction must appear exactly once:
; Template: Closing-statement bridge — reconcile before recording the sale
; [SALE_PRICE] gross contract price
; [COMMISSION] sales commission ([PCT]% of [SALE_PRICE])
; [SELLER_COSTS] other seller-paid closing costs
; [NET_PROCEEDS] = [SALE_PRICE] - [COMMISSION] - [SELLER_COSTS]
; [PAYOFF_AMOUNT] remaining loan principal (lender payoff quote)
; [CASH_AT_CLOSE] = [NET_PROCEEDS] - [PAYOFF_AMOUNT]
; Example: $435,000 sale, 5% commission + 1% seller closing costs
; Contract price: $435,000.00
; - Sales commission (5%): - 21,750.00
; - Seller closing costs (1%): - 4,350.00
; = Net proceeds: $408,900.00
; - Mortgage payoff: -314,744.09
; = Cash wired to seller: $ 94,155.91Do not record the commission or seller closing costs as separate expense payments. For US federal tax they reduce the amount realized on the sale (IRS Publication 544), and the cash they consume is already missing from [NET_PROCEEDS] — deducting them again would remove the same money from checking twice.
Mortgage Payoff
; Template: Mortgage payoff at closing
; [PAYOFF_AMOUNT] is remaining loan principal (the lender's payoff quote),
; not sale cash — the disposal entry below carries the net proceeds
YYYY-MM-DD * "Bank" "Mortgage payoff at closing"
Liabilities:Mortgage [PAYOFF_AMOUNT] USD
Assets:Bank:Checking -[PAYOFF_AMOUNT] USD
; Example: payoff the principal remaining after the October 2025 payment
2025-11-15 * "Bank" "Mortgage payoff at closing"
Liabilities:Mortgage 314,744.09 USD
Assets:Bank:Checking -314,744.09 USDGain Recognition (Depreciation Recapture + LTCG)
; Template: Dispose property and recognize gain
; [COST] original purchase price (the property lot's carrying basis)
; [IMPROVEMENTS] total capitalized improvements at sale
; [ACCUM_DEPRECIATION] total accumulated depreciation at sale
; [NET_PROCEEDS] sale price minus selling costs — NOT the cash wired to
; you, because the mortgage payoff is recorded separately
; [RECAPTURE] unrecaptured §1250 gain (max 25%) = min(gain, [ACCUM_DEPRECIATION])
; [LTCG] remaining gain, taxed at LTCG rates
; Total gain = Net proceeds - Adjusted basis
; Adjusted basis = [COST] + [IMPROVEMENTS] - [ACCUM_DEPRECIATION]
; For a sale at a loss: [RECAPTURE] is zero and the loss posts as a
; positive number to the capital-gains account
YYYY-MM-DD * "Sale" "Dispose property — recognize gain"
Assets:RealEstate:Property -1 [COMMODITY] {[COST] USD, [PURCHASE_DATE]}
Assets:RealEstate:CapitalImprovements -[IMPROVEMENTS] USD
Assets:RealEstate:AccumDepreciation [ACCUM_DEPRECIATION] USD
Assets:Bank:Checking [NET_PROCEEDS] USD
Income:RealEstate:DepreciationRecapture -[RECAPTURE] USD
Income:RealEstate:CapitalGains:LongTerm -[LTCG] USD
; Example: Sell $400K property for $435K after $19,394 depreciation and $6K improvements
; Adjusted basis: $400,000 + $6,000 - $19,394 = $386,606
; Net proceeds: $435,000 - $26,100 selling costs = $408,900
; Total gain: $408,900 - $386,606 = $22,294
; Recapture: $19,394 (equals accumulated depreciation)
; LTCG: $22,294 - $19,394 = $2,900
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 USDChecking moves by exactly the closing statement's bottom line: $408,900.00 in from the disposal, $314,744.09 out for the payoff — net $94,155.91.
Refinancing Template
Payoff Old Mortgage, Create New
; Template: Refinance — payoff existing and create new mortgage
; Alternative scenario: a refinance replaces the sale lifecycle above — a
; property refinanced in June cannot also use this guide's November payoff.
; Requires its own subaccounts (instead of the single Liabilities:Mortgage):
; 1970-01-01 open Liabilities:Mortgage:OldLoan
; 1970-01-01 open Liabilities:Mortgage:NewLoan
; [OLD_PAYOFF] is your lender's quote — the example reuses this guide's
; illustrative payoff figure
YYYY-MM-DD * "Refinance" "Payoff old mortgage, new [TERM]-year at [RATE]%"
Liabilities:Mortgage:OldLoan [OLD_PAYOFF] USD
Liabilities:Mortgage:NewLoan -[NEW_AMOUNT] USD
Assets:Bank:Checking [CASH_OUT] USD ; Cash-out amount (if any)
Expenses:RealEstate:ClosingCosts [REFI_COSTS] USD
; Example: Refinance from 7.0% to 5.5% — net cash-out $12,255.91 after $3,000.00 costs
2025-06-01 * "Refinance" "Payoff old mortgage, new 30-year at 5.5%"
Liabilities:Mortgage:OldLoan 314,744.09 USD
Liabilities:Mortgage:NewLoan -330,000.00 USD
Assets:Bank:Checking 12,255.91 USD
Expenses:RealEstate:ClosingCosts 3,000.00 USDBalance Assertion Templates
Year-End Reconciliation
; Template: Year-end balance assertions
YYYY-01-01 balance Assets:RealEstate:Property 1 [COMMODITY]
YYYY-01-01 balance Assets:RealEstate:CapitalImprovements [TOTAL_IMPROVEMENTS] USD
YYYY-01-01 balance Assets:RealEstate:AccumDepreciation -[TOTAL_DEPRECIATION] USD
YYYY-01-01 balance Liabilities:SecurityDeposit -[DEPOSIT_AMOUNT] USD
; Example: Year-end 2024 assertions
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 USDPost-Sale Assertions
; Template: Post-sale — all property accounts should be zero
; These hold once every monthly payment, every depreciation entry (through
; the disposition half-month) and the escrow refund below are recorded
YYYY-MM-DD balance Assets:RealEstate:Property 0 [COMMODITY]
YYYY-MM-DD balance Assets:RealEstate:CapitalImprovements 0 USD
YYYY-MM-DD balance Assets:RealEstate:AccumDepreciation 0 USD
YYYY-MM-DD balance Liabilities:Mortgage 0 USD
YYYY-MM-DD balance Liabilities:SecurityDeposit 0 USD
YYYY-MM-DD balance Assets:Bank:EscrowImpound 0 USD
; Example: Post-sale verification
2025-12-01 balance Assets:RealEstate:Property 0 PROP123MAIN
2025-12-01 balance Assets:RealEstate:CapitalImprovements 0 USD
2025-12-01 balance Assets:RealEstate:AccumDepreciation 0 USD
2025-12-01 balance Liabilities:Mortgage 0 USD
2025-12-01 balance Liabilities:SecurityDeposit 0 USD
2025-12-01 balance Assets:Bank:EscrowImpound 0 USDPrice Directive Templates
Quarterly Property Valuations
; Template: Quarterly property valuation
YYYY-MM-DD price [COMMODITY] [VALUE] USD
; Example: Quarterly valuations for 123 Main St
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 USDSources for valuations: Zillow Zestimate, Redfin estimates, comparable sales, or professional appraisals.
Escrow Impound Refund Template
Post-Sale Refund
; Template: Escrow impound refund after property sale
YYYY-MM-DD * "Bank" "Escrow impound refund — remaining balance"
Assets:Bank:Checking [REFUND] USD
Assets:Bank:EscrowImpound -[REFUND] USD
; Example: Remaining escrow balance returned by lender
; $1,250.00 initial + 19 monthly contributions of $566.67
; - 3 property-tax installments of $2,500.00 - $1,850.00 insurance = $2,666.73
2025-11-30 * "Bank" "Escrow impound refund — remaining balance"
Assets:Bank:Checking 2,666.73 USD
Assets:Bank:EscrowImpound -2,666.73 USDUsage Instructions
- Copy the relevant template for your transaction type
- Replace placeholders (shown in [BRACKETS]) with actual values — template lines with
YYYY-MM-DDdates and bracketed amounts are patterns to copy from, not loadable ledger syntax; the dated examples beneath each template load as-is - Adjust account names to match your account structure (e.g., add property address to account path for multi-property portfolios)
- Calculate depreciation using: Building cost / 27.5 / 12 for monthly amount
- Document the land/building split in comments with the source (county assessor, appraisal, etc.)
- Reconcile the closing-statement bridge before recording a sale — gross price, selling costs, net proceeds, payoff, cash, with each deduction appearing exactly once
- Verify calculations before finalizing entries, especially the sale gain decomposition
Best Practices
- Use consistent naming conventions for vendors and descriptions
- Record mortgage payments with the exact P&I split from your lender's amortization schedule
- Track capital improvements separately from repairs — the tax treatment is different
- Enter depreciation monthly for accurate interim financial statements
- Use balance assertions at year-end to catch data-entry errors before tax filing
- Keep price directives updated quarterly for portfolio valuation
- Document the rationale for repair vs. capital improvement classification
These templates provide a solid foundation for real estate accounting in Beancount.io. Customize them based on your specific property, mortgage terms, and tax situation.