Cross-Cutting Tools

Operating Statement to Database

Transforms a tokenized/extracted operating statement (any line type: actual, budget, reforecast, prior-year; any period grain; monthly, quarterly, annual-summary, or multi-scenario) into validated, account-level, period-level database records mapped to the canonical chart of…

Download the CRE Skills Plugin

Latest release, portable bundle (signed). Review the SKILL.md files before installing into your agent.

dataNo personal data
What it does

Takes tokenized operating-statement lines (actual, budget, reforecast, prior-year, or underwritten; any period grain) and produces validated, account-by-period records mapped to the canonical chart of accounts, with a data-quality grade and a human-review queue for unmapped lines.

Why it matters

Every acquisition, refi, and asset-management workflow eventually needs operating-statement data in a database at the account-by-period grain. Getting there manually means a controller re-keying a PDF into Excel, guessing at account mappings, and hoping no one folded a capex line into NOI. That work is error-prone, undocumented, and has to be redone for every deal.

How it's done today

An analyst or controller downloads the operating statement, pastes it into a spreadsheet, manually maps each line to an internal account code, removes total and YTD columns by hand, and flags anything ambiguous in a comment. Sign conventions (bracketed negatives, signed negatives) are often missed, producing inflated or deflated NOI figures that surface only at IC or audit.

When to use it

Reach for it

Use it when extracted operating-statement tokens need to become typed, validated, account-by-period records with full provenance. Handles any mix of line types and period grains: budget, reforecast, prior-year, underwritten, quarterly, annual summary, or multi-scenario.

Not the right tool

For a strict T-12 actuals statement, use t12-to-database; it includes a 12-period integrity check. For reconciling a rent roll against a T-12, use rent-roll-t12-tieout. For rent-roll ingestion, use rent-roll-to-database. For upstream document token extraction, use document-to-data-room-extractor.

What it needs and produces

Inputs

  • OM
  • Budget
Example use case

A fund controller receives a 2025 budget-versus-actuals statement from a multifamily operator. The file has monthly actuals, a budget column, a prior-year comparative column, and a YTD total column. The skill detects and excludes the YTD column, maps each line to a canonical account slug (flagging two lines with name-only matches to the human-review queue), normalizes bracketed-negative expenses, confirms capex lines are below the NOI line, and returns A-graded account-by-period records ready to load.

Compatible agents

Agent personas that pair well with this skill

Works with
Limitations

Accrual versus cash basis is taken as declared in the input; the skill does not re-derive one basis from the other. Account-name inference is medium confidence and always routes to human review. Allocations and management-fee eliminations across a portfolio statement are carried as supplied, not re-allocated. A statement with no actual line type produces no NOI aggregate.