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)
Release files for plat-costmodel 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| plat_costmodel-0.1.0.tar.gz | 144.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| plat_costmodel-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 239.3 kB
Release files / plat_costmodel-0.1.0.tar.gz
| Download URL | plat_costmodel-0.1.0.tar.gz |
|---|---|
| Size | 144.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
870448960327c31db0b60e95e33919f1276716c950882b73fabd7ef41faca8d6
|
|
BLAKE2b-256 checksum How to use checksums |
a7a83d01ef2cb86be73b40a9589e8ce6c09916d2f4796c46e841e8421983bb96
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.
Transparency logRelease files / plat_costmodel-0.1.0-py3-none-any.whl
| Download URL | plat_costmodel-0.1.0-py3-none-any.whl |
|---|---|
| Size | 95.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2f1ef80e08817d1f563dc1af7ebf23813ea1268488d70eafb7707883267d9c09
|
|
BLAKE2b-256 checksum How to use checksums |
46266b28b97e598224ce49318c6d82b7d5d4197e14d2a9d90f94acc68dfe3339
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.
Transparency log