Free agents + LAUNCH30: 30% off paid agents until 31 Dec 2026 (one-time purchases only) See free agents
Oarsman AI Sign in

Rent Roll Analyzer / Docs

Rent Roll Analyzer: setup guide

A rent roll becomes occupancy, economic occupancy, gross potential rent, loss-to-lease, vacancy loss, delinquency and a unit-mix table.

Who it is for: Small multifamily investor, property manager or analyst who receives a rent roll export and must summarise it for underwriting, a lender or an owner report.

Format: Claude skill pack · Version: 1.0.0 · Tested on: Python 3.13.5 (standard library only)

What it does

It finds the header in most rent roll exports and reads one row per unit. Status decides occupied, notice, vacant or non-revenue (models, down units); with no status, a unit without a tenant is vacant. A unit listed twice counts once. Gross potential rent is market rent on revenue units; loss-to-lease is market minus current rent on occupied units; vacancy loss is market rent on vacant units; economic occupancy is actual rent over gross potential rent. Units with a balance are listed as delinquent.

What you need

  • Claude.ai with code execution switched on (or Claude Code, or just Python 3.10+)
  • Your rent roll exported as CSV or Excel

5-minute setup

  1. Claude.ai: open Settings → Capabilities → Skills, click Upload skill and pick claude-ai-upload/rent-roll-analyzer.zip.
  2. Claude Code: copy the folder skills/rent-roll-analyzer into ~/.claude/skills/.
  3. Start a new chat. Attach your file and say: "Use rent-roll-analyzer. What are the occupancy, loss-to-lease and delinquency in this rent roll?".
  4. Claude runs the script and gives you the files listed under Outputs. Check them before you act on them.

Try it with the sample

Run the sample (a fictional 8-unit rent roll):

python3 skills/rent-roll-analyzer/scripts/core.py samples/rent-roll-2026-11.csv --as-of 2026-11-01 --out out

You should see 85.7% physical and 82.8% economic occupancy, gross potential rent 11,150.00, loss-to-lease 470.00, vacancy loss 1,450.00 and 2 delinquent units owing 2,075.00.

Settings you can change

Option Default What it is
rentroll (required) Rent roll CSV or XLSX, one row per unit, one property
--as-of today Date the rent roll is as of
--us-dates off Read 03/04/2026 as March 4
--out out Output folder

What goes in and what comes out

Inputs: Rent roll CSV or XLSX for one property; Optional: as-of date

Outputs: report.md with the summary; unit-mix.csv; delinquent.csv; row-issues.csv

What Pro adds

  • 12-month lease expiry ladder with a chart
  • Month-to-month leases and mark-to-market upside
  • Below-market units and rent per sq ft
  • Several properties in one run

Pro: https://oarsmanai.com/agents/rent-roll-analyzer-pro/

AI disclosure and limits

This product does not call an AI model at run time. It was built by Oarsman AI's AI agents and checked by the automated tests shipped with it.

Limits: - One property per run. - One row per unit; rolls that list each charge on its own line need combining first. - Figures come only from the rent roll; not investment advice.

Not tested by us: - rent rolls with several lines per unit (charges listed separately) - XLSX files in the shipped tests (CSV only) - commercial rent rolls with CAM or percentage rent

Files

  • oarsman-rent-roll-analyzer-v1.0.0.zip
  • CHANGELOG.md
  • QA-REPORT.json
  • README.md
  • SPEC.md
  • SUPPORT.md
  • TROUBLESHOOTING.md
  • VERSION
  • VIDEO-SCRIPT.md
  • claude-ai-upload
  • diagram.mmd
  • diagram.png
  • preview.png
  • samples
  • skills
  • tests

Help

Self-serve: see TROUBLESHOOTING.md (fixes and FAQ). There is no call, chat or email support. Fixes ship as new versions at your download link. Refund: 14 days, works as described, through the checkout platform.