Quarterly Portfolio Review

Portfolio-level quarterly review covering same-store trend, market concentration, watchlist distribution, capex progress, lease-up status, forecast discipline, covenant posture, and fund-level context. Produces the board and investor narrative drafts.

6 stars

Best use case

Quarterly Portfolio Review is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Portfolio-level quarterly review covering same-store trend, market concentration, watchlist distribution, capex progress, lease-up status, forecast discipline, covenant posture, and fund-level context. Produces the board and investor narrative drafts.

Teams using Quarterly Portfolio Review 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

$curl -o ~/.claude/skills/quarterly_portfolio_review/SKILL.md --create-dirs "https://raw.githubusercontent.com/mariourquia/cre-skills-plugin/main/src/skills/residential_multifamily/workflows/quarterly_portfolio_review/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/quarterly_portfolio_review/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How Quarterly Portfolio Review Compares

Feature / AgentQuarterly Portfolio ReviewStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Portfolio-level quarterly review covering same-store trend, market concentration, watchlist distribution, capex progress, lease-up status, forecast discipline, covenant posture, and fund-level context. Produces the board and investor narrative drafts.

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

# Quarterly Portfolio Review

## Workflow purpose

Roll the monthly AM outputs into a quarterly portfolio view. Narrative, not transactional. Provides the portfolio_manager, COO, CFO, and CEO with a view of trend, concentration, risk, and the board / investor story for the quarter.

## Trigger conditions

- **Explicit:** "quarterly portfolio review", "Q2 portfolio pack", "board packet", "LP quarterly".
- **Implicit:** quarter close; fund calendar; watchlist distribution shift; concentration threshold crossed.
- **Recurring:** quarterly.

## Inputs (required / optional)

| Input | Type | Required | Notes |
|---|---|---|---|
| AM reviews (3 months) | packs | required | from `workflows/monthly_asset_management_review` |
| Same-store set definition | yaml | required | frozen per quarter |
| Market references | csv | required | trend views |
| Watchlist scoring | yaml | required | |
| Fund-level debt schedule | yaml | required | for fund covenant view |
| Investor report template | md | required | overlay-driven |
| Board packet template | md | required | overlay-driven |

## Outputs

| Output | Type | Shape |
|---|---|---|
| Portfolio KPI dashboard | `dashboard` | same-store, market, watchlist, covenant |
| Trend narrative | `memo` | quarter over quarter, year over year |
| Concentration review | `memo` | market, segment, vintage |
| Watchlist movers | `kpi_review` | top movers up / down |
| Capex program summary | `kpi_review` | portfolio `capex_spend_vs_plan`, `renovation_yield_on_cost` |
| Board packet draft | `operating_review` | |
| Investor / LP draft | `memo` | |

## Output contract

Final-marked output MUST follow `_core/executive_output_contract.md`:
verdict-first block (recommendation, 3-bullet rationale, confidence,
materiality, next action), source-class labels on every numeric cell
(`[operator]` / `[derived]` / `[benchmark]` / `[overlay]` /
`[placeholder]`), and refusal-artifact shape when a required reference
is absent. Period-seal gate: `required_period_seal.minimum_close_status
= hard_close` (see `reference_manifest.yaml`); this workflow refuses
if close_status is soft or draft at run time.

## Required context

Asset_class, segment, market concentration, loan context.

## Process

1. **Inherit AM outputs.** Roll 3 months of AM reviews. Flag any missing.
2. **Same-store trend.** `same_store_noi_growth` quarter and trailing 4 quarters.
3. **Concentration.** `portfolio_concentration_market`; segment and vintage concentration.
4. **Watchlist distribution.** Count by color and movers; top risk drivers.
5. **Covenant posture (fund-level).** DSCR / DY cushion across loans; any breach runway?
6. **Capex.** Portfolio `capex_spend_vs_plan`; program-level `renovation_yield_on_cost`.
7. **Lease-up status.** Any asset still in lease-up; `stabilization_pace_vs_plan`.
8. **Forecast discipline.** Portfolio `forecast_accuracy`; systematic bias review.
9. **Market trend commentary.** Pull from `workflows/market_rent_refresh` outputs where available.
10. **Board and investor drafts.** Compose per overlay templates; open `approval_request` rows 15 / 16 for final submissions.
11. **Confidence banner.** All references surfaced with `as_of_date` and `status`.

## Metrics used

See frontmatter.

## Reference files used

- `reference/derived/role_kpi_targets.csv`
- `reference/normalized/occupancy_benchmarks__{market}_mf.csv`
- `reference/normalized/collections_benchmarks__{region}_mf.csv`
- `reference/normalized/watchlist_scoring.yaml`
- `reference/derived/same_store_set__{org}.yaml`
- `reference/normalized/approval_threshold_defaults.csv`

## Escalation points

- Portfolio concentration above threshold -> portfolio_manager -> executive.
- Fund-level covenant breach risk -> CFO.
- Board submission -> row 16.

## Required approvals

- Board final submission (row 16).
- Investor / LP quarterly final submission (row 15).

## Failure modes

1. Quarterly narrative without citing trend references. Fix: every trend statement cites the source.
2. Same-store set shifting quarter to quarter without note. Fix: same-store set versioned and frozen; any change logged.
3. Board packet without approval. Fix: row 16 gate.
4. Watchlist distribution without drivers. Fix: top risk drivers in every watchlist section.

## Edge cases

- **Fund mid-capital-raise:** context note on capital deployment pace; does not alter operating narrative.
- **Recent acquisition or disposition:** same-store treatment per overlay; explicit exclusion note.
- **Fund nearing harvest:** disposition sensitivity view; pairs with `workflows/capital_project_intake_and_prioritization` for any late-cycle capex.
- **Debt maturity wave in coming 12 months:** refi runway table.

## Example invocations

1. "Run the Q2 2026 portfolio review; include watchlist movers and concentration."
2. "Build the LP quarterly packet for the core fund."
3. "Board packet for the residential portfolio, Q1 2026."

## Example outputs

### Output — Portfolio review (abridged, Q1 2026)

**Same-store NOI growth.** Within overlay band trailing 4 quarters.

**Concentration.** Charlotte weight within overlay threshold; other markets diversified per fund mandate.

**Watchlist.** Distribution by color; movers detailed with top drivers.

**Covenant posture.** Fund-level cushion adequate across loans; one loan on refi runway.

**Capex program.** Portfolio `capex_spend_vs_plan` within band; `renovation_yield_on_cost` at or above underwriting.

**Lease-up.** One asset in lease-up; `stabilization_pace_vs_plan` within band.

**Forecast discipline.** Portfolio `forecast_accuracy` within overlay band; no systematic bias flagged.

**Board / LP.** Draft prepared; `approval_request` row 15 and row 16 queued.

**Confidence banner.** References cited with `as_of_date` and `status`.

Related Skills

title-commitment-reviewer

6
from mariourquia/cre-skills-plugin

Analyze ALTA title commitments, surveys, and Schedule B exceptions for CRE acquisitions. Identifies title defects, chain breaks, lien conflicts, and cure requirements. Triggers on 'title commitment', 'Schedule B exceptions', 'title review', 'title exceptions', 'encumbrances', 'survey cross-reference', 'title chain', 'mechanic's lien', 'title cure', or when given a title commitment document, survey, or lien search results.

Vendor Dispatch and SLA Review

6
from mariourquia/cre-skills-plugin

Weekly and quarterly review of dispatch SLA adherence and vendor performance. Produces a vendor scorecard per market and trade, flags underperformers, verifies insurance and licensure freshness, and proposes rotation actions. Vendor contract changes are routed for approval.

Third-Party Manager Scorecard Review

6
from mariourquia/cre-skills-plugin

Owner-oversight review of third-party property manager performance. Scores against the PMA's service standards and the overlay's rubric, computes adherence metrics, flags audit findings, produces the scorecard memo and the TPM-facing communication draft. Runs monthly per property and quarterly per PMA. Material performance gaps and any PMA amendment or termination are gated.

Schedule Risk Review

6
from mariourquia/cre-skills-plugin

Reviews current schedule against baseline, identifies critical-path risks, recomputes completion and stabilization probability, and routes a rebaseline proposal when warranted. Integrates with `workflows/cost_to_complete_review` and `workflows/draw_package_review` for financial consequences.

Pipeline Review

6
from mariourquia/cre-skills-plugin

Weekly review of every deal in the pipeline by stage (sourcing, loi_signed, psa_signed, ic_approved, debt_term_sheet, close, funded). Produces a stage-by-stage scorecard, flags stalled deals beyond the overlay-defined aging threshold, surfaces IC-prep load and debt-term-sheet variance, and quantifies retrade risk. Dealpath is the primary source; the workflow surfaces any `dp_completeness_ic_record` or `dp_handoff_lag` blocker from adapter dq rules before any roll-up claim is made.

Monthly Property Operating Review

6
from mariourquia/cre-skills-plugin

Monthly property scorecard and narrative. Synthesizes operating, leasing, collections, maintenance, and financial variance into a single review pack for the PM, regional, and AM. Invokes child workflows for funnel, delinquency, turn, and WO views.

Monthly Asset Management Review

6
from mariourquia/cre-skills-plugin

Ownership-side monthly review. Synthesizes property-level operating output into asset plan reality check: variance to budget and reforecast, covenant view with cushion and breach risk, watchlist scoring, rent-growth and trade-out, capex progress and yield, stabilization pace for lease-up, same-store rollup. Produces the AM agenda for PM and regional conversations, the lender compliance scaffold, and the investor-facing draft.

Lead-to-Lease Funnel Review

6
from mariourquia/cre-skills-plugin

Diagnostic review of the leasing funnel from lead through move-in. Identifies where the funnel is breaking (response time, tour conversion, application conversion, approval, move-in), quantifies exposure, surfaces fair-housing and screening-drift flags, and proposes a remediation plan with owner-specific target bands. Recurring weekly at the property level; invoked ad hoc when notice exposure or leased occupancy slips.

Draw Package Review

6
from mariourquia/cre-skills-plugin

Reviews a draw package end to end before lender submission. Validates construction cost to date, reconciles to the lender requisition, confirms lien waivers by vendor and period, verifies insurance endorsements, checks compliance attestations, and evaluates cost-to-complete. Splits construction manager and asset manager responsibilities. Opens approval gates for construction manager (row 12) and, finally, for the lender submission (row 14). Final submission never goes out without approved records.

Cost-to-Complete Review

6
from mariourquia/cre-skills-plugin

Recomputes cost-to-complete from current actuals plus remaining scope plus overlay-derived escalation and contingency. Compares against prior CTC and the underwriting baseline. Identifies the driver (labor, material, scope, duration) and recommends remediation (re-estimate, scope trim, re-bid, contingency pull).

Change Order Review

6
from mariourquia/cre-skills-plugin

Reviews each proposed change order: validates scope basis, re-estimates cost, checks schedule impact, evaluates against contingency, recommends approval or rejection, and routes to the correct approval row by dollar threshold. Tracks `change_orders_pct_of_contract` and `contingency_burn_rate`.

Bid Leveling and Procurement Review

6
from mariourquia/cre-skills-plugin

Normalizes and levels bids received for a defined scope. Performs apples-to-apples comparison across bidders by adjusting for included/excluded scope, allowances, alternates, and qualifications. Produces the level sheet, the recommended award, the scope clarification list, and the approval path. Every award opens a gate regardless of dollar (approval matrix row 9).