RealPage reports 15.4% of stabilized U.S. apartment units offered concessions in August 2026, at an average discount of 11% of asking rent. A rent roll shows contract rent, a T-12 shows what the property collected, and AI parsing turns both into numbers in seconds. If you skip a verification pass on AI-parsed rent rolls and T-12s, a single misread line flows straight into your NOI, your loan size, and your offer. This guide gives you six checks to run on every AI-parsed deal package, each one tied to a published Fannie Mae underwriting standard, with formulas and a 120-unit worked example.
Why AI-Parsed Numbers Need a Verification Pass
AI extraction is fast and, on clean documents, accurate. The risk sits in the errors you do not see. NIST names this risk "confabulation" in its Generative AI Profile (NIST AI 600-1): content stated with confidence but wrong. In underwriting, a confabulated number looks like every other number on the screen.
Broker documents make the problem worse. Rent rolls arrive as scanned PDFs, multi-page exports, and spreadsheets with merged cells and subtotal rows. T-12s use the owner's own chart of accounts. A parser has to read the layout, map each row to a category, and keep the totals intact. Each step is a place where one line drifts.
The fix is not to distrust AI. The fix is a short, repeatable audit against a fixed standard. For multifamily income, the clearest published standard is the Required Underwritten NCF table in Fannie Mae Multifamily Guide Section 203.01, effective September 28, 2026. It tells agency lenders how to build income from a rent roll and an operating statement, and its guidance tells lenders to investigate, reconcile, and document any variance between updated statements and earlier versions. Each check below applies one rule from it to the parsed output. For context on where AI saves time across the full workflow, see our comparison of AI and manual underwriting on speed and accuracy.
The Example Deal: 120 Units, Class B, Sun Belt Submarket
Every check below uses one deal. The parsed rent roll shows 120 units, 111 occupied, and $157,620 of monthly in-place rent on occupied units, an average of $1,420. Market rent on the 9 vacant units averages $1,440. The parsed T-12 shows net rental collections by month and $96,000 of other income.
| Parsed Input | Value |
|---|---|
| Total units | 120 |
| Occupied units | 111 (92.5% physical occupancy) |
| Monthly in-place rent, occupied units | $157,620 ($1,420 average) |
| Market rent, vacant units | $1,440 average |
| Net rental collections, trailing 3 months | $463,500 |
| Net rental collections, trailing 6 and 12 months, annualized | $1,880,000 and $1,900,000 |
| Net rental collections, most recent month | $153,900 |
| Other income, trailing 12 months | $96,000 |
Check 1: Does the Rent Roll Reconcile to T-3 Collections
The rent roll and the T-12 come from different reports in the property management system. Fannie Mae ties them together with one rule. Gross Potential Rent equals actual rents in place for occupied units plus market rents for vacant units, from a current rent roll, multiplied by 12. Physical vacancy, concessions, and bad debt together must equal the greater of two figures: the gap between GPR and trailing 3-month net rental collections annualized, or 5% of GPR.
GPR = (In-Place Rent + Market Rent on Vacant Units) x 12
= ($157,620 + 9 x $1,440) x 12
= $170,580 x 12 = $2,046,960
T-3 Annualized = $463,500 x 4 = $1,854,000
Economic Loss = Greater of (GPR - T-3 Annualized) or (5% x GPR)
= Greater of $192,960 or $102,348
= $192,960 (9.4% of GPR)
Now compare the gap to the loss items the documents report. Physical vacancy at market rent is $155,520. The rent roll shows 18 leases with one month free, worth $25,560 a year. The T-12 shows $12,000 of bad debt. The three items total $193,080, within $120 of the $192,960 gap. The parsed rent roll and the parsed T-12 reconcile.
Suppose the parser read one unit at $14,200 instead of $1,420. GPR jumps by $153,360 to $2,200,320, and the gap grows to $346,320. The vacancy, concession, and bad debt items still total $193,080, so $153,240 of the gap has no explanation. Fannie Mae's guidance tells lenders to investigate and reconcile unexplained variances before relying on the figures. Hold the parsed output to the same rule. Sort the parsed rent roll by rent and compare the outliers against the source document.
Check 2: Do Unit Count and Occupancy Match the Source
Rent rolls hide units in three places: subtotal rows, multi-line leases, and non-revenue units. A parser treats a subtotal as a unit, splits one lease with a subsidy line into two units, or drops a model unit. Each mistake changes occupancy, and occupancy drives vacancy loss and your loan size.
- Total units: match the parsed count to the rent roll footer and the unit count in the Offering Memorandum.
- Occupied units: match the parsed count to the footer occupancy line. Fannie Mae directs lenders to request trailing 3-month physical and economic vacancy history when the operating statement omits it, so compare parsed occupancy to the history as well. A 1-unit miss on 120 units moves physical occupancy by 0.8 points.
- Duplicate unit numbers: search for repeats. Two current tenants on one unit number signals either a data error or a transfer in progress.
- Non-revenue units: flag model, office, and employee units. Section 203.01 adds back rent for non-revenue units deducted as an operating expense when it builds GPR, so your model needs to know which units they are.
- Vacant unit rent: confirm vacant units show $0 in place. The standard prices vacant units at market rent inside GPR and then deducts them as physical vacancy. A parser pulling a printed asking rent into the in-place column counts the income twice.
Physical Occupancy = Occupied Units / Total Units
= 111 / 120 = 92.5%
For more on reading rent roll columns line by line, including trade-outs and loss to lease, see our guide to reading a multifamily rent roll in a soft rent market.
Check 3: Are Concessions Captured as Their Own Line
Concessions are the 2026 parsing trap. Contract rent on the rent roll ignores free rent, while the T-12 shows the loss in one of three places: a separate concessions line, a negative entry inside rental income, or netted out with no line at all. Section 203.01 deducts concessions from GPR as their own item, defined as forgone rental income from incentives such as free rent or a move-in allowance. If the parser folds concessions into rental income, your model double-counts them or misses them.
The exposure is material. RealPage puts Class C concession usage at 19.7% of stabilized units in August 2026, with the average discount equal to about 5.7 weeks free on a 12-month lease. In June 2026, the average discount hit 11.1%, the deepest monthly level in more than 25 years. By August it had eased only to 11.0%.
Effective Rent = Contract Rent x (1 - Free Months / Lease Term Months)
= $1,420 x (1 - 1 / 12) = $1,302
Annual Concession Cost = Units With Concessions x Contract Rent x Free Months
= 18 x $1,420 x 1 = $25,560
In the example, 18 of 111 occupied leases carry one month free. Confirm the parsed T-12 shows about $25,560 of annual concessions as its own line. If the line is missing, check whether the parser merged it into rental income, then split it back out so your model mirrors the lender view.
Check 4: Did Every T-12 Line Land in the Right Category
A T-12 parser reads labels like "R&M Contract," "Turn Costs," or "Misc Admin" and maps each to a standard category. The totals tell you whether the mapping held.
Parsed Total Income - Printed Total Income = $0
Parsed Total Expenses - Printed Total Expenses = $0
Parsed NOI - Printed NOI = $0
A zero difference proves no dollars went missing. It does not prove each dollar sits in the right bucket. Section 203.01 excludes non-recurring, extraordinary expenses and sets a floor for the lines with the most weight on your model. Spot-check each parsed line against its standard:
| Expense Line | Fannie Mae Section 203.01 Standard | Common Parsing Error |
|---|---|---|
| Real estate taxes | Greatest of the actual future full-year tax bill or prior full-year taxes x 103%, plus any reassessment a sale triggers | Tax escrow or appeal refund read as the tax line |
| Insurance | For an acquisition, the purchaser's carrier quote only, with the seller's premiums disregarded | One renewal installment read as the annual premium |
| Management fee | Greatest of 3% of EGI, the actual fee, or the appraiser's market fee | Fee booked inside payroll or admin |
| Repairs and maintenance | Recurring items such as make-ready, turnover, painting, and HVAC repair, with non-recurring items excluded | Roof or unit renovation left in R&M |
| Replacement reserves | At least $200 per unit per year, whether or not an escrow is funded | Reserve missing because the T-12 has no line |
Our walkthrough on turning a broker T-12 into a reliable NOI covers what to do with each line once you trust the categories.
Check 5: Is Other Income Recurring
Other income is where one-time items hide. Section 203.01 requires underwritten other income to be stable, common in the market, supported by prior years, and free of one-time, extraordinary items. It also names income lenders must leave out, including insurance proceeds, interest income, security deposits collected, gain on sale, and real estate tax reimbursements. A parser reads "Misc Income" as other income, no matter what sits inside it.
Parsed Other Income = $96,000 ($800 per unit)
Less: Insurance Reimbursement = $22,000
Recurring Other Income = $74,000 ($617 per unit)
In the example, a $22,000 insurance claim payment sat inside miscellaneous income. Removing it cuts NOI by $22,000. At a 6.0% cap rate, the error was worth about $367,000 of purchase price. Match every other income line against the excluded list, and read the owner's monthly detail for any line you cannot classify from its label. The standard also caps the figure: other income above the trailing 3-month amount, annualized, is allowed only up to the highest 1-month figure used in the trailing 3-month calculation.
Check 6: Does the Trailing Trend Trigger the 2% Haircut
The last check catches a misread month. Section 203.01 compares net rental income across trailing periods. If trailing 3-month NRI declined more than 2% against either the trailing 6-month or trailing 12-month NRI, the lender adjusts NRI down to 2% below the lowest of the trailing 1-, 3-, 6-, or 12-month figures. One misparsed month changes which side of the 2% line the deal lands on.
T-3 vs T-6 decline = 1 - ($1,854,000 / $1,880,000) = 1.4%
T-3 vs T-12 decline = 1 - ($1,854,000 / $1,900,000) = 2.4% (above 2%)
Lowest trailing NRI = T-1 annualized = $153,900 x 12 = $1,846,800
Underwritten NRI = $1,846,800 x 98% = $1,809,864
The T-12 comparison trips the rule, so underwritten NRI falls $44,136 below the T-3 figure. At a 6.0% cap rate, the haircut is worth about $736,000 of value. Before you accept or contest it, confirm each monthly collection figure against the source T-12. If the parser shifted one month's income into the wrong column, the trend test runs on bad data in both directions.
The market backdrop supports a conservative read. CBRE forecasts 4.9% national vacancy for 2026 and notes landlords are prioritizing occupancy over rent growth, using concessions to attract and retain tenants.
The Six-Check Verification Framework at a Glance
| Check | Industry Standard (Fannie Mae Section 203.01) | Common Parsing Error |
|---|---|---|
| 1. Rent roll to T-3 reconciliation | Vacancy, concessions, and bad debt equal the greater of GPR minus T-3 collections annualized, or 5% of GPR | Misplaced decimal on one unit |
| 2. Unit count and occupancy | GPR built from a current rent roll, with non-revenue units identified | Subtotal row counted as a unit |
| 3. Concessions | Deducted from GPR as a separate item | Concessions netted into rent |
| 4. T-12 categories | Non-recurring expenses excluded, with floors for taxes, insurance, management, and reserves | Capital items left in R&M |
| 5. Other income | Stable, recurring, supported by prior years, with named exclusions | Insurance proceeds in misc income |
| 6. Trailing trend | A T-3 decline above 2% sets NRI 2% below the lowest trailing period | One month shifted into the wrong column |
Run the checks in order. Checks 1 and 2 catch the largest errors in the least time. Checks 3 through 5 protect your NOI. Check 6 protects your loan sizing, covered in depth in our breakdown of how agency lenders size loans off DSCR and debt yield. The standards come from Fannie Mae's conventional loan table. Freddie Mac, banks, and debt funds apply their own versions, so confirm the rules on your term sheet.
How MultiVest Engine Builds Verification Into the Parse
MultiVest Engine runs several of these checks during the parse and shows you where to look for the rest. Upload the broker T-12, Offering Memorandum, and rent roll as PDF, Excel, or image files, and document ingestion parses and categorizes every line. Each parsing job uses the AI model with the best measured accuracy on a library of confirmed broker documents, tested three times per model and re-tested every quarter. A silently wrong number ranks as the worst possible result in the test, worse than a flagged one, because you catch a flagged number and miss a silent one.
- Rent roll reconciliation: rent roll PDFs are reconciled against the document's own stated totals. When the parsed units fail to match, a banner lists the specific discrepancies.
- Unit rules: one unit number with two current tenants becomes two units with a warning, subsidy rows on one lease add up to one rent, and office or laundry spaces count as occupied at $0.
- Vacant units and market rent: a vacant unit carries $0 in-place rent, market rent comes only from a market or asking rent column, and a notice tells you when the rent roll has no market rent for any unit.
- Offering Memorandum warnings: a NOI tie-out warning fires when the line items disagree with the stated NOI, and a price warning fires when the implied cap rate falls outside a plausible range. A document disagreeing with itself gets flagged for you, never silently repaired.
- Versioned uploads: every upload is versioned. When the seller sends an updated rent roll or T-12, re-parse on demand and compare against the earlier version, the same variance review Fannie Mae asks of lenders.
Once the inputs check out, the T-12 Normalizer walks you through five steps from broker-reported numbers to a stabilized, normalized NOI, using built-in vacancy, management-fee, repair, and capital-reserve benchmarks. Quick Analysis gives you a first-pass read on cap rate, DSCR, and cash-on-cash, and the Full Analysis engine runs the multi-year projection on the numbers you verified. See the full workflow on the features page, review a sample underwriting report, or compare plans on the pricing page.
The Bottom Line
Treat every AI-parsed rent roll and T-12 as a draft until it passes six checks against Fannie Mae Section 203.01: a rent roll to T-3 reconciliation with a 5% loss floor, a unit and occupancy match, a separate concessions line, expense lines at or above the standard, other income free of the named exclusions, and a trailing trend test with its 2% haircut. With 15.4% of stabilized units carrying concessions in August 2026, the concessions check alone protects tens of thousands of dollars of NOI on a 120-unit deal. Run the checks before you build the pro forma, and read any line by hand when two independent numbers disagree.
References
- RealPage: U.S. Concession Use Narrows for a Third Month as Discount Depth Barely Moves
- RealPage: U.S. Concessions Remain Historically Elevated Heading Into Summer
- Fannie Mae Multifamily Selling and Servicing Guide: Section 203, Income Analysis
- NIST AI 600-1: Artificial Intelligence Risk Management Framework, Generative AI Profile
- CBRE: U.S. Real Estate Market Outlook Midyear Review 2026, Multifamily
