# How to Check a Rent Roll Against the T-12 With AI

> A seller's rent roll and the property's trailing twelve months of income, the T-12, rarely agree, and the gap decides what you pay. This is the check AI agents run on every deal, and what reaches your analyst.

By Vlad Shvets, Partner @ Qvery · Published 2026-11-08 · 13 min read
Canonical: https://qvery.ai/blog/rent-roll-t12-reconciliation/

Every apartment deal that reaches your acquisitions desk arrives with two documents that rarely agree. The **rent roll** lists each apartment, its lease and its rent on one day. The **T-12** is the property's income and expenses for the last twelve months, month by month, as the seller's books recorded them.

Before anyone prices the deal, an analyst types both into the underwriting model and works out why they differ.

Some of the difference is always ordinary: empty apartments, move-in discounts, rent that starts next month. What is left is what you end up paying for.

Your offer is the property's net operating income, what it earns after operating expenses, divided by a cap rate, the yield buyers accept in that market. At a 5.5% cap rate, each dollar a year of rent that sits on the rent roll and never reaches the bank adds about **$18 to the price**.

Done by hand, the check is an hour or two of typing on every deal and a spreadsheet only its author can follow. AI agents now do the reading and the arithmetic, and leave the analyst the part that needs judgment.

> 🏢 At Qvery, we help apartment buyers spend less analyst time on deal paperwork and keep their acquisitions teams on the deals worth pricing, with custom AI agents that read every rent roll and T-12 as it arrives, tie both to their printed totals and hand your analyst only what nothing explains.

To show the check working, we built a deal: an invented 120-unit apartment property, its rent roll as of September 30, 2026, and its T-12 from October 2025 to September 2026.

We planted the problems that turn up in real deal files and wrote the answers down before any AI read a page. This is what the check found:

- **$15,335** a month between the rent roll and what the T-12 billed in September
- **$7,970** a month of it from six apartments the T-12 never billed
- **About $1.7M** of price for that rent, at a 5.5% cap rate

Source: Qvery's check on an invented sample deal, November 2026

Below are the four steps, then what happened when we asked AI models the plain question instead, then what Qvery's AI agents do with the check on every deal. The steps run as written on your own documents.

**What you'll need**
- **Rent roll and T-12:** the seller's two documents for one property, the rent roll dated in the T-12's last month
- **Two AI assistants that read PDFs**, from two different companies, for two independent reads (we used Claude and Gemini)
- **A spreadsheet** where every formula stays visible (we used Google Sheets)
- **Your analyst's attention** for the short list the check hands back

Time: about an hour the first time, minutes after that

This checks income: the rent roll against the T-12's rental lines. Expenses, the broker's projections and the leases themselves are checks of their own.

## Step 1: Read Both Documents Twice, Every Figure With Its Page

Upload the rent roll and the T-12 to an AI assistant and paste the prompt below. It asks for tables and nothing else. A model that adds things up is a model you have to check, so the adding is left to the spreadsheet.

**The reading prompt**

```
Attached are a rent roll and a trailing twelve-month operating statement (T-12) for one apartment property. Copy them into tables. Do not add, average or calculate anything.

1. Rent roll: return every unit as one CSV row with these columns: unit, type, sqft, status, market_rent, lease_rent, concession, pet, deposit, move_in, lease_start, lease_end, page. Leave a cell empty when the document leaves it empty; never write a zero the document does not show. If a unit's row continues onto the next page, join it into one row and give both pages. Do not return page subtotal rows as units.
2. Rent roll totals: copy every printed total exactly as printed (each page subtotal and the summary page), with its page.
3. T-12: return every line as one CSV row: account, the twelve monthly amounts in order, the printed Total, page. Write negative amounts with a minus sign.
4. Then list anything you could not read, any row you were unsure about, and anything that looks wrong on the page itself.
```

Our rent roll runs five pages, 30 apartments to a page, with a subtotal under each page and a summary at the end. One row is split by a page break, the way exported reports often are.

![The top of page 3 of the sample rent roll: the continued row for apartment 3-112, then apartments 3-201 to 3-208, the first six with a deposit of 0.00.](https://qvery.ai/blog/rent-roll-t12-reconciliation/screenshot-rent-roll-page-3.webp)

*The top of page 3 of the sample rent roll. The first row finishes apartment 3-112 from page 2; below it, six apartments moved in on September 1 with no deposit.*

A correct read gives back 120 apartment rows, none of them a page subtotal, the split row joined into one, and every printed total copied exactly as printed. All three of our runs did that.

Claude Sonnet 5.5, Claude Haiku 5.5 and Gemini 3.8 Flash each returned every row and every T-12 figure we checked. Every rent, discount and deposit came back right in two of them, and in **718 of 720** cells in the third.

Then run the same prompt on the assistant from the other company and let the sheet compare the two reads, cell by cell.

![A spreadsheet tab listing twelve apartments where two AI reads of the rent roll disagree, with the field, both values and the page to check.](https://qvery.ai/blog/rent-roll-t12-reconciliation/screenshot-disagreements.webp)

*The two reads compared by formula: 19 cells on 12 apartments differ, all of them dates, each with the page to check.*

> 📅 **Where the reading went wrong: dates** 
> - One run read five of the nine leases that renew on October 1 as starting a year earlier, so each looked like a lease that ended on the rent roll's date.
> - It warned that it might misread dates and listed twelve apartments to check. Five of those were wrong; seven it got wrong were not on the list, four of them renewals.
> - Every wrong cell showed up as a disagreement between the two reads, so the analyst checked 19 cells against their pages instead of all 1,560.

Practitioners who check rent rolls for a living are blunt about what the reading is worth:

**Tips**

> Yes, that is one part of the job and very tedious if a large rent roll. However you only go through that process after you've been awarded a deal so it is not a meaningful percentage of the day to day.
> ([r/CommercialRealEstate · Dec 2025](https://www.reddit.com/r/CommercialRealEstate/comments/1pezkja/how_much_of_acquisition_analyst_work_is_manual/nsgbaga/))

> An hour for an initial scrub and then whatever time it takes to get answers to reconcile (as in, which is correct, the lease or the rent roll)?
> ([r/CommercialRealEstate · Dec 2025](https://www.reddit.com/r/CommercialRealEstate/comments/1pezkja/how_much_of_acquisition_analyst_work_is_manual/nsglv8h/))

> I feel like that's the least valuable part of analysis because a human would still have to go in and verify all that data...
> ([r/CommercialRealEstate · Jul 2024](https://www.reddit.com/r/CommercialRealEstate/comments/1dttojy/building_an_ai_powered_multifamily_deal_analyzer/lbcyofz/))

## Step 2: Tie Each Document to Its Own Totals First

Paste the settled read into the spreadsheet, add up every column with formulas, and set each sum beside the total the seller printed. A document that does not agree with itself cannot be compared with anything yet.

![A spreadsheet tab setting each rent roll and T-12 total from the rows beside the total as printed, with the difference.](https://qvery.ai/blog/rent-roll-t12-reconciliation/screenshot-ties.webp)

*Each document against its own printed totals: the rent roll is $1,830 short of its rows, and the T-12's concessions and net rental income are each $3,000 off.*

Twelve of the fifteen ties read zero. Three do not, from two causes, and each is a figure that would have gone into the model wrong:

1. **Take the rent roll's total from its rows** The printed total is $1,830 short of the rows. Apartment 3-112 is the split row: its rent sits on page 3 under neither page's subtotal, and the summary adds the subtotals. Summed from the rows, the tie reads zero.
2. **Rebuild the T-12's annual figures from its months** The concessions total is $3,000 smaller than its twelve months, and the year's net rental income on the page carries the same $3,000. Rebuilt from the months, both tie; the seller confirms which version the books hold.

## Step 3: Explain Every Dollar Between the Rent Roll and the T-12

The two documents measure different things. The rent roll is one day: the rent each lease will charge. The T-12's rental lines are what the property billed, month by month. So set the rent roll beside the T-12's last month, September, and give every difference its own formula line.

![A spreadsheet tab bridging the rent roll's monthly rent to the T-12's September net rental income, one line per reason, with where each figure comes from.](https://qvery.ai/blog/rent-roll-t12-reconciliation/screenshot-bridge.webp)

*The bridge for September: five ordinary lines, $8,415.00 not explained, and nine renewals still open.*

The rent roll shows **$158,350** a month; the T-12's net rental income for September is **$143,015.33**. Five ordinary reasons account for $6,919.67 of the gap, a sixth stays open, and each is fine once you know it is there:

- The employee apartment, **$1,295**. The rent roll marks it with an asterisk; the T-12 carries it as rent nobody pays, as lenders do.
- Move-in discounts, **$1,815**. Recent leases carry a monthly concession, and the T-12 takes it off rent.
- Four mid-September move-ins, **$2,795.50**. The T-12 billed them from the day they arrived; the rent roll shows a full month.
- Bad debt, **$2,380**. Rent written off in September, which no rent roll shows.
- Pet rent, **$1,365.83** the other way. The T-12 books it inside rental income, where lenders count it as other income.
- Nine renewals starting **October 1**. The rent roll shows the new rent and September billed the old one, which neither document shows. That line stays open until the seller sends September's charges.

After all of it, **$8,415** a month is not explained.

## Step 4: Hand What Nothing Explains to a Person

An unexplained gap is a question until someone finds its rows. Ask the sheet which apartments the T-12 cannot have billed. Here, a filter for apartments that moved in during September with no deposit on hand and no discount returns six, all on one floor of one building:

![A spreadsheet tab listing apartments 3-201 to 3-206 with their rent, a deposit of 0.00 and a move-in of September 1, and the totals below.](https://qvery.ai/blog/rent-roll-t12-reconciliation/screenshot-residual.webp)

*The rows behind the gap: six apartments, $7,970 a month, with $445 left for the October renewals.*

Their rent is **$7,970** a month. The $445 left over is the size of nine renewal increases, which the seller's September charges will confirm. The T-12 agrees about the six: its vacancy loss stayed at its summer level through September, as if six apartments were still empty.

> 🔎 **What to do about the six apartments** 
> - Underwrite them as empty until the seller shows otherwise: $95,640 a year of rent comes out of the model.
> - Ask the seller's broker for the six signed leases, the deposit ledger and September's receipts for those apartments.
> - Let the answer close it: matching receipts put the rent back; no receipts, and at a 5.5% cap rate the price comes down by about $1.7 million.

The AI agents draft that request from the sheet's output, and a person reads it and sends it. This is the draft they wrote for our sample, unedited:

**The draft to the seller's broker**

```
Subject: Halvercroft Apartments: items to settle on the rent roll and T-12

Hi [Broker],

Thanks for the rent roll (as of 09/30/2026) and the T-12. Both tie to their own totals except for a few items. Could you send the following?

1. Rent roll lease rent, occupied: the rows sum to $158,350 and the printed total is $156,520, a $1,830 gap. Please send the rent roll the printed total came from, or tell us which units it leaves out.

2. T-12 concessions: the monthly detail sums to $11,013 against $8,013 printed, a $3,000 gap that also carries into net rental income. Please send the general ledger detail for concessions, by month and by unit.

3. September net rental income: the T-12 shows $143,015.33, and we can account for all but $8,415 from the rent roll. Units 3-201 through 3-206 moved in 09/01/2026 with no deposit on hand and no concession listed. Please send their leases, move-in dates, and September rent ledgers, plus deposit records, so we can see how September was billed and collected on them.

4. Nine renewals start October 1. Please send the renewal leases and each unit's September rent, since neither document shows it.

5. Please send the September rent ledger by unit, tied to the T-12 September total.

Once we have these, we can close each item. Happy to walk through the numbers by phone.

Thank you,
[Analyst]
```

## Asked Plainly, Each Model Found the Six Apartments and Missed Something Else

Before running any of this, we asked each model the question an owner would ask: here are the two documents, do they reconcile, and is there anything to worry about before we price it? All three named the six apartments and asked for their leases, deposits and receipts. The models are good at this now.

What the plain question did not give us was the same answer twice:

**The same question, three answers**

| Model | Caught | Missed or got wrong |
|---|---|---|
| Claude Sonnet 5.5 | The six apartments and the $1,830 page break | The $3,000 concessions total; it called a 2027 lease end 2025 |
| Claude Haiku 5.5 | The six apartments and the $3,000 concessions total | The $1,830 page break; it put paying occupancy at 110 of 120 |
| Gemini 3.8 Flash | The six apartments, reconciled to the cent | Both totals |

Each answer read as finished. Sonnet wrote "The T-12's own arithmetic also adds up"; Haiku, "The rent roll is internally consistent."

An analyst holding any one of them could not tell which lines were right without doing the check anyway. So the check has to run the same way every time: the same two reads, the same ties, the same bridge, on every deal, with every figure tied to its page.

## Qvery's AI Agents Run This Check on Every Deal

Qvery builds the AI agents that run these four steps for your acquisitions team, on every deal that reaches the desk, within two weeks of the day we have access to where deals arrive and to your model.

![The rent roll and T-12 go to the AI agents, which read each twice, tie and bridge them and list what nothing explains; the analyst decides before anything reaches a broker.](https://qvery.ai/blog/rent-roll-t12-reconciliation/illustration-rent-roll-check-agents.webp)

*The AI agents do the reading and the arithmetic; the analyst gets the short list and every decision on the deal.*

When a broker's package lands in the deal folder, the AI agents read the rent roll and the T-12 twice, with two models, and send your analyst the cells the reads disagree on, each with its page.

They tie each document to its printed totals, build the bridge in your underwriting model's input tabs, and list what nothing explains with the rows behind it.

They draft the questions for the seller. Your analyst settles the disagreements, decides what to ask and what to underwrite, and nothing reaches a broker or an offer without a person.

**What the AI agents may and may not do**

| They may | They never |
|---|---|
| Read the deal folder, every page | Send anything to a broker or a seller |
| Write to the model's input tabs and the analyst's list | Change the offer or the model's own formulas |
| Draft the questions for the seller | Decide what to underwrite |

Before they touch a system, we agree in writing what they may read and do, and where the documents are processed. Every read, tie and draft is logged with its page, so anyone can see months later where a number came from.

On a typical acquisitions team of four analysts, each costing about $146,800 a year at the median pay for financial analysts plus benefits, the job takes 15% of their week.

That is our assumption: an hour and a half on each of four deals a week to get the rent roll and T-12 into the model and tie them out, which comes to **$88,080 a year**.

With the AI agents taking 70% of it and about $400 a month to run them, it costs **$31,224**: **$56,856 saved** and **874 hours** handed back a year, and every $10,000 of the build is earned back in **2.1 months**. Put your own team's numbers in:

(An interactive calculator on the page: roi-rent-roll-checks.)

The calculator counts hours, and the hours go back to the deals worth pricing, the work a team this size hires its next analyst for. The check exists for the larger number: on our sample, six apartments that existed only on the rent roll were worth about $1.7 million of price.

Bring us three or four past deals, with their rent rolls, T-12s and the model you priced them in. We learn how your analysts check a deal today and agree what the AI agents may read and do.

Two weeks after we have access, they run on the next deal that lands, and every week after that we show you the hours they handed back and the gaps they found.

Have Qvery Build Your Rent Roll Check: https://calendly.com/qvery-vlad/30min

## Frequently asked questions



### Why doesn't the rent roll match the T-12?

The rent roll is one day's leases; the T-12 is what the property billed over a year. They differ for ordinary reasons: empty apartments, move-in discounts, employee apartments, bad debt, mid-month move-ins, renewals not yet in effect and income on the wrong line. A bridge gives each its line, and what is left is the question for the seller.

### Should we underwrite the rent roll or the T-12?

Neither on its own. Lenders that buy apartment loans compare the last three months of collections with the property's full potential rent when they set vacancy, and expect any gap between the operating statement and the rent roll to be investigated and written up. Underwrite current leases where the T-12's recent months support them, and carry anything it never billed as empty until the seller proves otherwise.

### Can the AI agents read scanned rent rolls and every property management system's export?

Our sample was clean digital PDFs: the reads got every money figure right and misread some dates. Scans and odd layouts raise the error rate, so the check reads every document twice with two different models. A misread shows up as a disagreement, and a figure neither read can make out goes to a person, never guessed. We build the AI agents around the formats your sellers send.

### Who checks the AI's work?

Your analyst, on a short list instead of the whole file: the cells where the two reads disagree, the totals that fail to tie, and the dollars nothing explains. Every figure carries the page it came from, so checking one takes seconds.

### What happens to the seller's documents?

The AI agents read only the deal folder you point them at, under the confidentiality terms you signed with the seller. Before anything runs, we agree in writing what they may read and do and where the documents are processed, every action is logged, and Qvery AI OÜ, an EU company, signs a data processing agreement with you.

### Does it work on office or retail rent rolls?

Our sample was an apartment property. Office and retail rent rolls carry rent steps, expense reimbursements and lease terms that need the leases themselves, so the bridge has more lines, but the four steps are the same.

### Can the AI agents fill in our underwriting model?

Yes. They write into the model's input tabs, the same cells your analysts key today, and the model's own formulas stay as you built them.

### Does it also check expenses and the broker's projections?

Not in this check. Expenses against the T-12's history and the broker's projected rents against the rents in place are separate checks, and they follow the same pattern once the first one has earned its place.

### Can we run the same check on our own properties every month?

Yes. The property manager's monthly rent roll against that month's income statement is the same comparison, and running it monthly catches a missing apartment or a mistyped total before it reaches an owner report.

### Can the AI agents catch a seller who pads the rent roll?

They catch what cannot be true of both documents at once: apartments the T-12 never billed, totals that do not add up, a rent roll that claims more than the property collects. They cannot prove why. The leases, the deposit records and the bank statements settle that, and asking for them is your analyst's call, with the AI agents' list as the reason to ask.

### What if the seller sends the rent roll as a spreadsheet?

Then the reading step is easier and the rest is the same. The AI agents still tie the file to its own totals, build the bridge to the T-12 and list what nothing explains, because a spreadsheet can be just as wrong as a PDF.

### How long does the check take once it runs on its own?

On our sample each read of both documents took between two and six minutes, and the ties, the bridge and the list are formulas that update as the reads land. What is left is your analyst's time on the short list, which is the part that was always worth paying for.
