Market Rent Refresh
Checks freshness of market rent and concession references against overlay staleness threshold; organizes a refresh plan (comp sources, shop list, 3rd-party export, submarket coverage); produces the intake bundle for `workflows/rent_comp_intake` to process. Outputs a current-state memo and a refreshed benchmark view on completion.
Best use case
Market Rent Refresh is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Checks freshness of market rent and concession references against overlay staleness threshold; organizes a refresh plan (comp sources, shop list, 3rd-party export, submarket coverage); produces the intake bundle for `workflows/rent_comp_intake` to process. Outputs a current-state memo and a refreshed benchmark view on completion.
Teams using Market Rent Refresh should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/market_rent_refresh/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How Market Rent Refresh Compares
| Feature / Agent | Market Rent Refresh | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Checks freshness of market rent and concession references against overlay staleness threshold; organizes a refresh plan (comp sources, shop list, 3rd-party export, submarket coverage); produces the intake bundle for `workflows/rent_comp_intake` to process. Outputs a current-state memo and a refreshed benchmark view on completion.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Market Rent Refresh
## Workflow purpose
Keep market rent and concession benchmarks fresh. Detect staleness per overlay threshold, organize a refresh (shopped comps, 3rd-party export, operator-reported), and hand off the resulting bundle to `workflows/rent_comp_intake`. Output a current-state view for renewal and pricing decisions.
## Trigger conditions
- **Explicit:** "refresh market rents for X market", "shop comps for submarket Y", "quarterly market survey".
- **Implicit:** reference `as_of_date` older than overlay staleness threshold; renewal or funnel workflow cites stale benchmark; supply event (new delivery) in submarket.
- **Recurring:** quarterly per market; ad hoc when a trigger fires.
## Inputs (required / optional)
| Input | Type | Required | Notes |
|---|---|---|---|
| Current benchmark files | csv | required | freshness check |
| Shop list | list | required | properties to survey |
| 3rd-party exports | table | optional | where available |
| Operator-reported inputs | list | optional | from PM/leasing |
| Submarket definitions | yaml | required | |
## Outputs
| Output | Type | Shape |
|---|---|---|
| Freshness status | `kpi_review` | per market/submarket reference as_of_date |
| Refresh plan | `checklist` | sources, dates, owners |
| Current-state memo | `memo` | market and concession snapshot |
| Comp bundle | handoff | passed to `workflows/rent_comp_intake` |
## Required context
Asset_class, segment, market, submarket.
## Process
1. **Freshness check.** Scan all benchmarks for the market; identify stale per overlay.
2. **Refresh plan.** For each stale reference, define sources; assign owners and dates.
3. **Collect comps.** Produce raw bundle; hand off to `workflows/rent_comp_intake` for normalization and approval.
4. **Current-state memo.** Market trend narrative with cited sources; no proposed reference changes here (intake owns those).
5. **Downstream notification.** Packs whose reference_manifest reads these files are notified of update.
6. **Confidence banner.** All references surfaced with `as_of_date` and `status`.
## Metrics used
`market_to_lease_gap`, `loss_to_lease`, `rent_growth_new_lease`, `rent_growth_renewal`, `concession_rate` — consumed by downstream workflows.
## Reference files used
- `reference/normalized/market_rents__{market}_mf.csv`
- `reference/normalized/concession_benchmarks__{market}_mf.csv`
- `reference/normalized/comp_normalization_rules__middle_market.yaml`
## Escalation points
- Stale reference: PM -> regional; refresh owner identified.
- Comp magnitude change routed via `workflows/rent_comp_intake`.
## Required approvals
- Handled via `workflows/rent_comp_intake` (delta-gated).
## Failure modes
1. Refresh without normalization. Fix: intake workflow owns normalization.
2. Memo asserting new benchmarks before approval. Fix: memo reports current state; intake proposes updates.
3. Missing submarket coverage. Fix: refresh plan enumerates submarkets explicitly.
## Edge cases
- **New supply delivery mid-survey:** note in memo; additional comp capture if overlay threshold crossed.
- **Market with few comps:** note sparse-sample confidence; operator-reported weighted lower.
- **Concession-heavy market:** effective rent view emphasized.
## Example invocations
1. "Refresh Charlotte market rents; staleness threshold crossed."
2. "Shop five South End properties and route the bundle to intake."
3. "Build the current-state market memo for South End."
## Example outputs
### Output — Market rent refresh plan (abridged, Charlotte South End)
**Freshness status.** Market rent benchmark `as_of` older than overlay threshold; concession benchmark within threshold.
**Refresh plan.** Five properties to shop (owners and dates); 3rd-party export already requested.
**Bundle handoff.** Collected comps sent to `workflows/rent_comp_intake`.
**Current-state memo.** Trend narrative with cited sources; no direct benchmark updates here.
**Confidence banner.** `market_rents__charlotte_mf@2026-03-31 (stale per overlay), status=sample`. Comp sources surfaced per record.Related Skills
submarket-truth-serum
Produces a decision-grade submarket brief that strips broker narratives to reveal what is actually happening in a market. IC-memo-ready output with no-fluff mandate, range-based forecasting, supply pipeline by quarter, demand drivers, competitive set, and 'What the Brokers Won't Tell You' section.
rent-roll-to-database
Transforms a tokenized/extracted rent roll into validated, typed, auditable, database-ready records: a multi-line charge schedule (base rent, CAM/tax/insurance recoveries, percentage rent, parking, storage) mapped to the canonical chart of accounts, lease- and unit-level facts, GPR and occupancy aggregates, a data-quality grade, and a target-model load plan. Tenant identity is pseudonymized; per-unit natural-person data never leaves the boundary. Triggers on 'load this rent roll into the database', 'normalize the rent roll to our schema', 'rent roll to warehouse', or when extracted rent-roll tokens need to become structured records before underwriting or tie-out.
rent-roll-t12-tieout
Reconciles a normalized rent roll against a normalized T-12 on a stated, consistent basis (annualized contractual vs recognized accrual; collected cash out of scope) and never forces a tie. Reconciles base rent, recoveries and other income (jointly, per the canonical chart), occupancy, and the EGI / NOI-revenue bridge; classifies each gap as mapping, timing, or missing on a deterministic signature; surfaces residual_unexplained; and routes every untied dimension to human review. Triggers on 'tie out the rent roll to the T-12', 'reconcile contractual rent to actuals', 'NOI bridge from the rent roll', or 'revenue leakage check'.
rent-roll-formatter
Standardizes rent roll data from any source format into a consistent underwriting template, validates data integrity (SF reconciliation, revenue reconciliation, date consistency, rent reasonableness), and calculates derived analytics (WALT, rollover, concentration, mark-to-market).
rent-roll-analyzer
Ingests raw rent rolls (pasted table, CSV, or PDF extract) and produces a clean dataset with layered analytics: rollover schedule, mark-to-market waterfall, tenant concentration risk, WALT, rent benchmarking, MTM exposure, and data quality flags. Triggers on 'analyze this rent roll', 'clean up this rent roll', or when rent roll data needs preprocessing before underwriting.
rent-optimization-planner
Quantitative rent optimization framework with loss-to-lease waterfall analysis, renewal probability modeling, effective rent NPV comparison across aggressive/moderate/retention strategies, valuation impact quantification, and market cycle overlay. Maximizes long-term property value, not just next-quarter revenue. Triggers on 'rent raise plan', 'rent optimization', 'loss-to-lease', 'renewal pricing', or when planning rent increases across a portfolio.
market-memo-generator
Generates structured CRE market research memos covering MSA, submarket, and sector-level conditions. Synthesizes supply/demand fundamentals, rent trends, cap rate movements, capital markets conditions, and forward-looking signals into investment-grade market commentary. Triggers on 'write a market memo', 'market update', 'submarket analysis', or when a user provides market data and asks for a written synthesis. Designed to feed the AMOS deal pipeline and supplement reit-profile-builder output.
market-cycle-positioner
Produces a comprehensive market cycle positioning report using the Mueller Real Estate Cycle model. Combines cycle timing analysis with capital markets intelligence (transaction volume, cap rate decomposition, capital flows, investor sentiment) to generate actionable buy/sell/hold recommendations across three time horizons.
leasing-strategy-marketing-planner
Marketing material creation, broker event planning, TI cost benchmarking, marketing plan development, and commission structure benchmarking for Leasing Directors.
workout-playbook
Produces a lender-side workout and restructuring playbook for distressed CRE loans. Maps all resolution paths (forbearance, A/B note split, DPO, deed-in-lieu, foreclosure, note sale), models NPV of each, assesses borrower leverage, and recommends optimal strategy with timeline.
Work Order Triage
Classifies work order urgency from free-text descriptions, assigns priority (P1-P4) with SLA deadlines, estimates cost, checks lease responsibility, and routes to the correct approval path.
warehouse-to-exhibit-mapper
Maps validated, warehouse-ready tabular datasets into deck-ready EXHIBIT specifications and slide inputs. Selects table vs. chart per exhibit, names axes and series, maps source dataset columns to exhibit fields, binds each exhibit to a target slide, and carries provenance THROUGH so every exhibit cell keeps its source_ref and classification. Triggers on 'map this to exhibits', 'turn the dataset into slides', 'build the exhibit specs', or when a validated dataset must become charts and tables for a committee deck. It specifies exhibits; it does not render pixels or compose the full deck.