Metadata-Version: 2.4
Name: plat-costmodel
Version: 0.1.0
Summary: Multifamily renovation cost estimation engine: line-item estimates, SOW generation, contractor bid evaluation, and ROI gating
Author: paintbrush
License-Expression: Apache-2.0
Project-URL: Homepage, https://github.com/paintbrushv/plat-costmodel
Project-URL: Repository, https://github.com/paintbrushv/plat-costmodel
Project-URL: Issues, https://github.com/paintbrushv/plat-costmodel/issues
Project-URL: Changelog, https://github.com/paintbrushv/plat-costmodel/blob/main/README.md
Keywords: multifamily,real-estate,renovation,cost-estimation,value-add,proptech
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: End Users/Desktop
Classifier: Topic :: Office/Business :: Financial :: Accounting
Classifier: Topic :: Office/Business :: Financial :: Investment
Classifier: Intended Audience :: End Users/Desktop
Classifier: Topic :: Office/Business :: Financial :: Accounting
Classifier: Topic :: Office/Business :: Financial :: Investment
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Office/Business :: Financial :: Investment
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: click>=8.0
Requires-Dist: pydantic>=2.0
Requires-Dist: pyyaml>=6.0
Requires-Dist: python-ulid>=2.0
Provides-Extra: dev
Requires-Dist: pytest>=7.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0; extra == "dev"
Provides-Extra: server
Requires-Dist: mcp<2,>=1.0; extra == "server"
Dynamic: license-file

# plat-costmodel

Multifamily renovation cost estimation engine for Plat — a domain-expert real estate intelligence agent.

## What It Does

- **Per-unit cost estimation** with line-item breakdowns (flooring, kitchen, bath, paint, appliances, fixtures, contingency)
- **Scope of Work (SOW) generation** — contractor-ready documents from property profile
- **Contractor bid evaluation** — flags inflated line items, vague lump sums, unrealistic timelines
- **ROI gating** — 15% minimum threshold check on all renovation plans
- **Risk flagging** — age-based warnings (galvanized pipe, asbestos, foundation concerns)
- **Budget vs. actual tracking** — Yardi Voyager integration for model calibration

## Architecture

MCP tool server callable by Plat's orchestration layer. CLI-first interface.

```
Plat (agent) ──MCP──▶ plat-costmodel (tool server)
                            ├── estimate    — per-unit cost range
                            ├── sow         — scope of work generation
                            ├── evaluate    — contractor bid evaluation
                            ├── roi         — ROI threshold check
                            └── ingest      — Yardi CSV import
```

## Two Scope Levels

| Scope | Cost Range | Description |
|-------|-----------|-------------|
| Light | $3K-$5K/unit | Paint, clean, patch, hardware, carpet |
| Standard Value-Add | $12K-$18K/unit | Full kitchen/bath update, LVP, appliances, fixtures |

Gut renos excluded — don't pencil at Class C rents.

## Cost Model Inputs

- Unit square footage (<700 small, 700-950 medium, 950+ large)
- Finish tier (basic vs. upgraded)
- Number of bedrooms/bathrooms
- Property year built (drives risk flags)
- Property class (B or C)
- Market (Dallas, Birmingham — more later)

## Data Sources

- **Brain dump knowledge** — Day 1 baseline from operator experience
- **Yardi Voyager CSV exports** — historical actuals tagged to unit numbers
- **RSMeans benchmarks** — industry reference data (future)
- **Cross-user pooled data** — anonymous Glassdoor-style model (SaaS future)
