Learn · Verification methodology
The 15 T-12 anomaly detectors
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_monthsThreshold: 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_monthThreshold: 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_opexThreshold: 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_spikeThreshold: 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_dipThreshold: 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_declineThreshold: 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_listThreshold: 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_highThreshold: 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_opaqueThreshold: 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_taxesThreshold: 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_insuranceThreshold: 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_managementThreshold: 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_lumpyThreshold: 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_thinThreshold: 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_uncategorizedThreshold: 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 checkFrequently 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?