Learn · Verification methodology

The 15 T-12 anomaly detectors

Before a multifamily listing goes active on RTOM, its trailing twelve month statement is parsed line by line and run through 15 anomaly detectors across four framings: structural integrity, time-series consistency, disclosure quality, and peer comparison. What they find is published beside the figures it affects, on the seller's own screen and in the listing's anomaly panel. None of them blocks a listing today.

How severity works

Every detector routes to one of three severities. Flagged items appear in the anomaly panel with acknowledgement encouraged. Notes are informational context. Critical is reserved for a document that contradicts itself, and it would block a listing until the seller wrote a disclosure - but no detector on this page is critical, and nothing here blocks a listing. The point is not to reject properties; it is to force the conversation before a buyer finds the pattern in diligence and reprices the deal.

That last sentence used to read the other way, and it was wrong for eight days. An earlier version of this product did gate publication on these flags, and it gated on the wrong thing: a property with a genuinely negative month, or rents that genuinely rose, was held off the market until its owner wrote a paragraph justifying their own operating results. That is an opinion about the business, not a check on the document, and the file cannot support it. The gate was removed. What may still block one day is a statement that disagrees with itself - a rent roll whose totals do not tie to its own printed figures is the obvious candidate - and the mechanism is still wired for it, with an empty list of blocking codes waiting for the first entry that earns its place.

One gate does remain, and it is the one that matters: a listing cannot go active without a verified T-12. That is a check on whether the document exists and has been attested, not a judgement about what the document says - which is the line these detectors sit on the other side of.

Layer A: statement-level checks

These nine run at parse time, on every upload, before a listing can go active. They also power the free T-12 health check. To see the manual version of these checks applied to a real deal, walk through the step-by-step T-12 analysis workflow.

Missing months

Flaggedmissing_months

Threshold: Fewer than 12 distinct calendar months in the statement.

A trailing twelve must contain twelve months, and every trailing figure on the listing is struck over the months that are actually there rather than scaled up to twelve. The gap is shown to the seller and carried beside the KPIs; it does not block the listing, because the count is one the system derived from the seller's own file and asking them to restate it in prose proves nothing.

Negative-NOI month

Flaggednegative_noi_month

Threshold: Any single month where net operating income is below zero.

Usually a non-recurring event such as a large repair or a one-time tax assessment. Surfaced so buyers can normalize it instead of finding it in diligence. No explanation is demanded: a negative month in a year that carries a roof replacement is ordinary, and requiring an essay about it would be an opinion about the business rather than a check on the document.

Implausibly low expenses

Flaggedno_opex

Threshold: Total operating expenses below 30% of total income, measured only across months that carry BOTH an expense figure and positive income. Silent below three such months.

Stabilized multifamily typically runs 35-50% of effective gross income. A ratio under 30% usually means missing expense categories rather than exceptional efficiency - which is also why the coverage floor exists: the parser omits lines it cannot read instead of zeroing them, so a ratio struck over one or two readable months would accuse a seller of hiding expenses their statement did in fact print.

Single-month expense spike

Flaggedexpense_spike

Threshold: Any month where operating expenses exceed 3x the median of the months BEFORE it. Prior months only, never later ones, and high side only - there is no low-expense bar.

Typically a roof, HVAC, or insurance claim. Calling it out lets buyers normalize NOI instead of underwriting the accident. Judging a month against what preceded it rather than against the whole year keeps a single genuine spike from raising the bar that is supposed to catch it.

Sustained revenue dip

Flaggedrevenue_dip

Threshold: Two or more months where effective rent falls more than 10% below the median of the months before it. Needs at least three prior months before any month is judged.

Can indicate concessions burning off, a turnover spike, or rent loss the seller should explain before a buyer prices it as a trend.

Occupancy decline

Flaggedoccupancy_decline

Threshold: Economic occupancy - collected rent over gross potential rent, excluding RUBS and other non-rent income - does not RISE in any of the trailing 3 months, and falls by more than 307 basis points end to end. A flat month does not break the run; a total drop smaller than 307bp is not reported.

Buyers assume a decline continues unless the cause is documented: concessions, planned renovation, or a lease-up phase. The 307bp floor exists because a run of three barely-down months is arithmetic, not a trend, and a detector that fires on it teaches sellers to ignore it.

Pre-list rent lift

Flaggedrent_lift_pre_list

Threshold: Average effective rent in the trailing 3 months runs more than 10% above the prior 9-month average.

The classic dressing-up-the-books pattern: aggressive lease-ups timed to a listing, concession burn-off, or one-time fees. Surfaced next to the figures it moves. It is not treated as proof of anything - a rent increase is evidence of a rent increase - so it is shown rather than gated on.

High NOI volatility

Notenoi_volatility_high

Threshold: Monthly NOI dispersion at or above 0.4, measured as standard deviation over MEAN ABSOLUTE NOI rather than over the mean.

May reflect lumpy semi-annual taxes and insurance or true volatility. Either way, the 3-month rolling NOI is the honest read, not any single month.

Opaque other income

Flaggedother_income_opaque

Threshold: Other income above 5% of the statement's own printed TOTAL INCOME, without an itemized breakdown. Exactly 5% does not fire.

Laundry, pet fees, parking, application fees, and RUBS each carry different durability. Buyers should know what is in the bucket before they capitalize it. The denominator is the statement's printed total rather than a subtotal reconstructed from the rent lines, because the two differ by whatever the statement books as an adjustment - on real exports that gap moves the ratio by 38 to 107 basis points, in both directions.

Layer B: ledger-level checks

These six run once the general ledger is imported and the chart of accounts is structured. They catch what only shows up at line-item level: missing tax or insurance categories, lump-sum accruals, and books bucketed too coarsely to underwrite.

No property-tax line

Flaggedmissing_category_taxes

Threshold: Zero line items categorized as property taxes across the period.

Either the chart of accounts is incomplete or taxes are accrued elsewhere. Buyers will model their own underwriting tax figure if none is shown.

No insurance line

Flaggedmissing_category_insurance

Threshold: No insurance expense category in the imported statement.

Buyers run their own insurance quote regardless, but a missing line weakens the disclosure and invites a bigger haircut.

No management fee

Notemissing_category_management

Threshold: No management fees booked in the period.

Acceptable for owner-managed properties; otherwise buyers assume self-management and adjust the proforma for third-party management cost.

Lump-sum taxes

Notetaxes_lumpy

Threshold: Property taxes appear in 3 or fewer distinct months instead of monthly accruals.

Valid accounting, but it skews any single-month NOI high or low. Trailing-12 NOI is the number to analyze.

Thin expense categorization

Flaggedcategories_thin

Threshold: Fewer than 4 distinct expense categories in use (industry norm is 6 or more).

Books bucketed too coarsely deny buyers a complete picture of admin, payroll, R&M, utilities, insurance, taxes, and management.

Uncategorized misc income

Flaggedother_income_uncategorized

Threshold: Miscellaneous income at 5% or more of total income.

Line-level durability varies: utility reimbursements can disappear while pet rent generally persists. Unlabeled income cannot be underwritten honestly.

Why publish the thresholds

Most marketplaces have no incentive to interrogate a seller's numbers, because their offering memorandums are the proforma. RTOM's position is the opposite: the platform only works if the NOI a buyer sees is the NOI the ledger supports. Publishing the thresholds keeps the methodology honest, lets sellers verify their own T-12 before listing, and gives buyers a shared vocabulary for what a flag means.

Run the detectors on your own T-12

Upload a trailing twelve and get the Layer A results in seconds: NOI, expense ratio, occupancy, anomaly flags, and a suggested asking range. Free, no login.

Run the free T-12 health check

Frequently asked questions

What happens when a detector flags a T-12 on RTOM?
It is published beside the figures it affects - on the seller's own screen while they are listing, and in the listing's anomaly panel afterwards. Flagged items are shown with acknowledgement encouraged and notes are informational context. Nothing on this page blocks a listing from going active.
Can a property with flagged anomalies still list on RTOM?
Yes. The detectors do not reject properties; they force disclosure. A negative-NOI month caused by a documented roof replacement is a normal event. What the system prevents is that same month passing silently into a buyer's underwriting.
What is the pre-list rent lift detector?
It compares average effective rent in the trailing three months against the prior nine-month average. When the recent average runs more than 10 percent higher, the lift is surfaced next to the figures it moves, so a buyer can ask whether it is durable rent growth or concessions burning off before a listing. It does not block the listing: a rent increase is evidence of a rent increase, not of anything else.
Why is a low expense ratio treated as a red flag?
Stabilized multifamily operating expenses typically run 35 to 50 percent of effective gross income. When a T-12 shows less than 30 percent, the usual cause is missing categories such as taxes, insurance, or repairs, which overstates NOI and therefore overstates value.
Are the detector thresholds fixed?
The thresholds published here are the ones running in RTOM's verification pipeline today, such as 3x the trailing median for an expense spike and 110 percent of the prior nine-month pace for a rent lift. When a threshold changes, this page is updated with it.

Reviewed by Scott Henderson, Senior Multifamily Advisor · Updated July 2026

Next: The full underwriting sequence · How to analyze a T-12, step by step · What is a T-12 in commercial real estate?

© 2026 RTOM · Real-Time Operating Memorandum. All rights reserved.

RTOM is a marketplace; not a broker-dealer or investment advisor.