Skip to content

Real Estate

Last Updated: February 2026

The Real Estate module is a Scott Recycling custom application for managing property investments — from deal sourcing through renovation, leasing, and sale. It tracks the full lifecycle of each property with standalone financial reporting (separate from Odoo's accounting module).


What Real Estate Does

  • Deal Pipeline — Track property opportunities from lead to closing
  • Property Management — Manage owned properties through their lifecycle
  • Renovation Tracking — Budget and manage renovation projects with task-level detail
  • Lease Management — Track tenants, lease terms, rent payments, and renewals
  • Financial Reporting — Income, expenses, and ROI at the property level
  • Contractor Directory — Manage contractors with ratings and work history

Real Estate
├── Properties               (all properties — kanban/list/calendar)
├── Deals                    (deal pipeline — kanban/list)
├── Renovations              (renovation projects — kanban/list)
├── Leases                   (active leases — list/calendar)
├── Payments                 (rent payments — list)
├── Financial Reports
│   ├── Expenses             (expense records)
│   ├── Income               (income records)
│   ├── Expense Analysis     (pivot table)
│   └── Income Analysis      (pivot table)
└── Configuration            (managers only)
    ├── Contractors           (contractor directory)
    ├── Deal Sources          (how deals are found)
    └── Expense Categories    (expense types)

Deal Pipeline

Deals track property opportunities before they become owned properties.

Deal Stages

Lead → Analyzing → Offer Made → Under Contract → Closed
                                              (creates Property)
Stage Meaning
Lead New opportunity — not yet analyzed
Analyzing Running the numbers (ARV, repair estimates, etc.)
Offer Made Offer submitted to seller
Under Contract Offer accepted, contract signed
Closed Deal completed — automatically creates a Property record
Dead Deal fell through (can be marked from any stage)

Creating a Deal

  1. Go to Real Estate > Deals
  2. Click New
  3. Fill in the address and property basics
  4. Add deal analysis numbers:
Field Description
Asking Price Seller's listed price
ARV After Repair Value — estimated value after renovation
Repair Estimate Estimated cost to renovate
Offer Price Your offer amount
Max Allowable Offer Auto-calculated: ARV x 70% - Repair Estimate (the 70% rule)
Expected Profit Auto-calculated: ARV - Offer Price - Repair Estimate
  1. Set the Deal Score (Hot, Warm, or Cold)
  2. Assign a user and set a follow-up date

Closing a Deal

When a deal closes:

  1. Click Close Deal
  2. Odoo automatically creates a Property record with all the deal data (address, purchase price, ARV, etc.)
  3. The property starts in Owned state

Follow-Up Automation

A daily cron job checks deals in Lead or Analyzing stage with past follow-up dates and creates activity reminders.


Properties

Properties represent owned real estate with full lifecycle tracking.

Property States

Prospect → Offer → Under Contract → Owned → Renovating → Listed for Sale → Sold
                                    Rented
State Meaning Transition Requirements
Prospect Potential acquisition
Offer Offer submitted
Under Contract Offer accepted
Owned Property acquired Purchase price required
Renovating Active renovation work
Listed for Sale On the market List price required
Sold Sale completed Sale price required
Rented Leased to tenant Must have an active lease

Property Fields

Section Fields
Address Street, City, State, ZIP (US only)
Classification Type (Residential/Commercial), Subtype (SFH, Duplex, Condo, etc.), Strategy (Flip/Hold)
Details Bedrooms, Bathrooms, Sq Ft, Lot Sq Ft, Year Built, Parking, Units
Purchase Purchase Price, Closing Costs, Total Acquisition Cost (computed), Purchase Date
Sale List Price, Sale Price, Sale Closing Costs, Sale Date
Valuation ARV (After Repair Value), Current Market Value

Financial Summary

Each property tracks totals automatically:

Field Calculation
Total Acquisition Cost Purchase Price + Closing Costs
Total Renovation Cost Sum of completed renovation task costs
Total Expenses Sum of all expense records
Total Income Sum of all income records
Net Profit Income - (Acquisition + Renovation + Expenses) + Sale Proceeds
ROI % (Net Profit / Total Invested) x 100

Smart buttons on the property form link to renovations, leases, expenses, and income.


Renovations

Renovations are project-like containers for tracking repair and improvement work on a property.

Renovation Workflow

Planning → In Progress → Completed
           On Hold

Creating a Renovation

  1. Open a property and click Create Renovation (or go to Real Estate > Renovations)
  2. Enter the renovation Name and set the Budget
  3. Add Tasks (individual work items):
Task Field Description
Name What needs to be done
Category Type of work (Electrical, Plumbing, Roofing, Painting, etc.)
Contractor Assigned contractor
Estimated Materials Expected material costs
Estimated Labor Expected labor costs
Due Date Target completion
  1. Track progress as tasks move: Todo → In Progress → Done

Budget Tracking

Field What It Shows
Budget Planned total spend
Actual Spend Sum of completed task costs
Budget Remaining Budget - Actual Spend
Budget Variance % How far over/under budget
Progress % Completed tasks / Total tasks

Leases

Leases track tenant agreements for rental properties.

Lease Lifecycle

Draft → Active → Expiring (auto, 90 days before end) → Expired (auto)
                 Renewed (creates new lease)

Lease Fields

Field Description
Property Which property is being leased
Tenant The lessee (an Odoo contact)
Lease Start / End Term dates
Monthly Rent Rent amount
Security Deposit Deposit held
Rent Due Day Day of month rent is due (1-28)
Late Fee Fee charged when rent is late
Late After Days Grace period before late fee applies (default: 5)

Lease Renewal

  1. Open an active or expiring lease
  2. Click Renew
  3. A new lease is created with:
    • Same property, tenant, and rent
    • Start = old lease end + 1 day
    • End = start + 1 year
  4. The old lease is marked as Renewed and linked to the new one

Automated Alerts

A daily cron job handles:

  • Auto-expire: Marks leases as Expired when end date passes
  • Expiring warning: Marks active leases as Expiring when within 90 days of end
  • Activity reminders: Creates to-do activities at 90, 60, and 30 days before expiration

Rent Payments

Payments track individual rent collections for each lease.

Payment States

State Color Meaning
Pending Not yet due or awaiting payment
Received Green Full payment collected
Late Red Past due (auto-set by daily cron)
Partial Partial payment received
Waived Gray Payment forgiven

Payment Fields

Field Description
Lease Which lease this payment belongs to
Amount Payment amount
Due Date When rent is due
Payment Date When payment was received
Payment Method Check, Cash, Transfer, Zelle, Venmo, CashApp, Money Order
Reference Check number, transaction ID, etc.
Late Fee Applied Late fee amount if applicable

Overdue Automation

A daily cron job marks pending payments past their due date as Late and posts a notification on the lease.


Expenses & Income

Expenses

Track all property-related expenses:

Field Description
Property Which property
Category Mortgage, Insurance, Property Tax, Utilities, HOA, Maintenance, etc.
Amount Expense amount
Date When incurred
Vendor Who was paid
Renovation Task Optional link to a renovation task
Receipt Upload receipt file

Income

Track all property-related income:

Field Description
Property Which property
Type Rent, Sale Proceeds, Late Fee, Deposit Forfeiture, Other
Amount Income amount
Date When received
Lease / Payment Optional link to lease and payment records

Analysis

Use the Expense Analysis and Income Analysis pivot tables to:

  • View totals by property and month
  • Compare expenses across properties
  • Track income trends over time

Contractors

Maintain a directory of contractors with:

Field Description
Name / Company Contact details
Phone / Email Communication info
Specialty General, Electrical, Plumbing, HVAC, Roofing, Flooring, Painting, etc.
License Number Contractor license
Insurance Expiry When their insurance expires
Rating 1-5 stars (Poor to Excellent)
Tasks / Total Paid Computed from assigned renovation tasks

Tips

Use the 70% Rule

The Max Allowable Offer on deals auto-calculates using the 70% rule: ARV x 0.70 - Repair Estimate. This is a quick sanity check on whether a deal makes financial sense.

Link Expenses to Renovation Tasks

When recording expenses for renovation work, link them to the specific renovation task. This gives you accurate cost tracking at both the task and property level.

Set Follow-Up Dates on Deals

Every deal in Lead or Analyzing stage should have a follow-up date. The daily cron job creates activity reminders so nothing goes stale.

Track Payment Methods

Always record the payment method and reference (check number, transaction ID) on rent payments. This creates an audit trail for accounting.


Security

Group Access
Real Estate User View, create, and edit all records. Cannot delete records or access configuration.
Real Estate Manager Full access including delete, plus configuration management (contractors, deal sources, expense categories).