Cross-Cutting Tools

Document-to-Data-Room Extractor

Converts a raw CRE data room (OM, T-12, rent roll, PCA, ALTA survey, leases, agency debt quotes) into a single typed fact table with per-fact sourceRefs, extraction confidence scores, and human review state.

Open GitHub source

No packaged download — skills install from the open-source plugin repo. Read the SKILL.md and bundled files below before you install.

How to install a skill →
01 · Problem

Converts a raw CRE data room (OM, T-12, rent roll, PCA, ALTA survey, leases, agency debt quotes) into a single typed fact table with per-fact sourceRefs, extraction confidence scores, and human review state.

Derived from the skill’s “Skill description” section.

02 · Who & When
  • User has assembled a CRE data room and needs it converted into structured, model-ready facts before underwriting
  • User uploads or references an OM, T-12 / trailing operating statement, rent roll, PCA / property condition report, ALTA survey, lease documents, or agency (Fannie/Freddie) debt quotes and asks to "extract," "index," "structure," or "build a fact table"
  • User says "extract the data room," "index this deal package," "build the fact table," "pull the facts out of these documents," or "what does the data room actually say"
  • A downstream skill (underwriting, rent roll analysis, T-12 normalization) needs a typed input and the source documents are still in raw PDF/spreadsheet form
  • User needs a provenance audit: every number traceable to a document, page, and span, with a confidence score and review flag

Negative triggers (do NOT activate; redirect):

  • User wants a go/no-go verdict or back-of-napkin returns on a single OM, not a structured table -> use deal-quick-screen
  • User wants the implied price/cap rate the OM is asking for -> use om-reverse-pricing
  • The rent roll is already extracted and the user wants WALT, rollover, mark-to-market, and concentration analysis -> use rent-roll-analyzer
  • The T-12 is already extracted and the user wants management-fee restatement, tax reassessment, and a normalized NOI -> use t12-normalizer
  • The user wants to evaluate or stress an agency debt quote's sizing and covenants -> use agency-loan-quote-analyzer
  • The user wants to interpret PCA immediate repairs and reserve adequacy -> use pca-reserve-analyzer
  • The user wants the full 10-year proforma and recommendation -> use acquisition-underwriting-engine
  • The user wants a DD workstream plan, third-party report ordering, and decision gates -> use dd-command-center

Derived from the skill’s “When to Activate” section.

03 · How It's Done Today

Not documented yet for this skill.

04 · What This Skill Changes
# Data Room Fact Table -- {property_id}
PII policy: {pii_policy}   |   As-of: {as_of_date}   |   Confidence floor: {confidence_floor}
Documents extracted: {n}   |   Facts emitted: {m}   |   Needs review: {k}   |   Conflicts: {c}

## Fact Table
| factId | domain | field | value | unit | asOf | sourceRef | confidence | method | reviewState | notes |
|---|---|---|---|---|---|---|---|---|---|---|
| F-0001 | property | year_built | 1998 | year | -- | OM-001#p3 "Built 1998" | 0.95 | broker_stated | auto_pass | |
| F-0002 | revenue | t12_gpr | 2,418,540 | USD | 2025-Q4 TTM | T12-001!Summary!B6 | 0.92 | spreadsheet_cell | auto_pass | |
| F-0014 | debt | quoted_dscr_min | 1.25 | x | 2026-05 | AGY-001#p2 "min DSCR 1.25x" | 0.90 | agency_quote | auto_pass | |
| F-0021 | revenue | noi | 4,210,000 | USD | FY (OM) | OM-001#p14 | 0.55 | broker_stated | needs_review | conflicts with T12-derived NOI 3,961,000 |
| F-0022 | rent_roll_aggregate | physical_occupancy | 93.6 | % | 2026-04-30 | RR-001!Detail!occupied/total | 0.88 | computed_aggregate | auto_pass | per-unit detail redacted (PII) |

## Cross-Document Conflicts
- NOI: OM broker-stated $4,210,000 (OM-001#p14) vs. T-12-derived $3,961,000 (T12-001!Summary). Delta $249,000 / 6.3%. -> resolve before underwriting; route to om-reverse-pricing.

## Redaction Log
- Rent roll RR-001: 219 unit rows reduced to 14 aggregate facts. Tenant names, unit-level rents, delinquency names withheld.
- Lease LSE-003: tenant name redacted (Tenant C). Economic structure (term, base rent, escalation, recovery) retained.

## Coverage Report
| Domain | Facts | Status |
|---|---|---|
| property | 8 | complete |
| revenue | 12 | complete |
| expense | 19 | complete |
| rent_roll_aggregate | 14 | complete |
| lease_economics | 27 | partial (3 of 6 major leases provided) |
| physical (PCA) | 9 | complete |
| title (ALTA) | 6 | complete |
| debt (agency) | 11 | complete |
| tax | 0 | MISSING -- no tax bill in manifest; t12-normalizer reassessment will be unanchored |
| insurance | 0 | MISSING -- no loss run; insurance line in T-12 unverified |

## Handoff
Typed fact table ready. Recommended next steps: rent-roll-analyzer (rent_roll_aggregate + lease_economics), t12-normalizer (revenue + expense + tax), agency-loan-quote-analyzer (debt), pca-reserve-analyzer (physical), then acquisition-underwriting-engine.

Derived from the skill’s “Output Format” section.

05 · Risks & Caveats

Not documented yet for this skill.