Stop Rebuilding the CAM Workbook Every January
Close a property-year in an afternoon. Answer the tenant’s auditor a year later in under a minute. If we don’t close it, you don’t pay.
Start Free- Five documents free
- No card, no call
- Built for 3 to 30 properties
“…shall not increase by more than five percent (5%) per calendar year on a cumulative basis…”
The Second Monday in January
Four properties. Forty-one leases. A 2019 original, a 2021 amendment and a 2023 exhibit that do not agree with each other.
By Friday you have finished six.
The statements are due in 90 days. After that the tenant’s auditor has twelve months to ask where any number came from.
And the person who built the workbook you are using left in 2022.
Then it goes out, and three things can happen. Two of them cost money.
- Silent loss
You billed too little
Recovery you had every right to collect, quietly given away — the gross-up you skipped, the banked cap allowance you never carried forward. Nobody tells you. It just never arrives.
- Clawback
You billed too much
The tenant exercises the audit right twelve months later. Now you are reversing transactions that were already booked, already spent, and already in last year’s numbers.
- Unprovable
You were right
And you still cannot show it. The proof is a workbook nobody outside your office can read, built by someone who does not work here anymore.
“I’ve been in a room with 5 people averaging 20 years of CRE experience all arguing over how CAM reconciliations are done.”
Commercial property manager · r/CommercialRealEstate “All properties were under different management in prior years, so we don’t have the prior year reconciliation excel schedules.”
Senior property accountant · r/CommercialRealEstate “Your nightmare here is being wrong and sending invoices that may get paid, and being wrong, then having to clawback those transactions later.”
Commercial landlord · r/CommercialRealEstate
Public posts from property accountants, lease administrators and owners. Not customer testimonials — this is my first season and I won’t pretend otherwise.
What You Get Back
Not what the product does — what is true about your season afterwards, and was not true before.
You answer the audit letter the same day it arrives.
Not after two weeks of reconstructing where the number came from. You open line four, and line four opens: the formula, its inputs, the lease clause with the page number, and the GL rows underneath. You send that. The thread ends.
Two weeks of reconstructionOne backup package, same dayYou get the quarter back.
The first property takes an afternoon. From the second on it is shorter, because the chart of accounts is mapped once for the whole organization and the profiles are already there. January stops being the month you disappear into a workbook.
January and February goneAn afternoon per propertyYou stop moving five figures in the wrong direction.
A $147,200 roof expensed in full instead of amortized over fifteen years puts $137,000 into the wrong pool. On a 4% tenant: $5,500 billed, clawed back a year later. A skipped gross-up runs it the other way.
Found by the auditorFlagged before it ships
So What Is OpexProof, Exactly?
One job: CAM and NNN reconciliation on US commercial leases, for owners and property accountants with 3 to 30 properties. Every lease becomes a machine-readable rule, a deterministic engine does the money, and the statement survives an audit.
- Not a property management system
- Not an accounting package
- Not a consultant
- One job, done in full
- 01
Drop in the lease
The lease, its amendments and its exhibits. They go to the model as native PDFs — no OCR layer inventing text that is not on the page.
Every field carries its quote, its page and a confidence level. A field whose quote is not on the page it claims never enters the rule.
- 02
Point it at your ledger
The CSV or XLSX you already export from QuickBooks, Excel, Sheets, Sage or Xero. You map the chart of accounts once and confirm it.
That mapping is reused across the whole organization. Nobody migrates anything.
- 03
The engine does the arithmetic
Twelve deterministic steps in TypeScript. The model reads the lease; it never touches a dollar figure.
- 1Pool
- 2Exclusions
- 3Capex amortization
- 4Gross-up
- 5Controllable split
- 6Admin fee
- 7Pro-rata
- 8Period proration
- 9Base year
- 10Cap
- 11Estimates collected
- 12Next-year estimate
- 04
You review it and sign
A statement per tenant and a backup package where every step opens to its formula, its clause and its GL rows. Nothing reaches a tenant until you sign.
A signed property-year is immutable. Recalculating writes a new version, so the answer you give in 2028 matches the statement you sent in 2027, to the cent.
One Tenant, Twelve Steps, Nothing Hidden
Open any step ↓- Recoverable pool
- $612,480
- Grossed up
- $21,336
- Tenant share
- 4.12%
- Cap adjustment
- −$5,908
- Billed
- $18,405
Recoverable pool after exclusionsGeneral ledger · 2026 · 14 GL accounts, 3 excluded$612,480.00
Fourteen mapped GL accounts enter the pool. Three are excluded by the lease itself — leasing commissions, capital improvements and the landlord’s own administrative overhead — and each exclusion points back at the clause that removes it.
Excluded, by clause| 7210 · Leasing commissions | $31,900.00 |
|---|---|
| 7400 · Capital improvements | $147,200.00 |
| 7820 · Landlord overhead | $22,640.00 |
Gross-up to 95% occupancyLease § 7.3(b) · p. 24 · Variable share only, 7 categories+ $21,336.40
variable portion × ( target occupancy ÷ actual occupancy − 1 )Each expense category carries its own variable share; the fixed remainder is never grossed up. The 95% target comes from the lease, not from a house convention.
Inputs| Actual occupancy | 81.4% |
|---|---|
| Target occupancyLease § 7.3(b) · p. 24 | 95% |
| Variable portion of pool | $147,880.00 |
Tenant share 4.12%Lease § 7.2 · p. 23 · Excluded area removed from denominator$26,113.24
tenant rentable area ÷ ( total rentable area − excluded area )Inputs| Tenant rentable area | 4,120 sf |
|---|---|
| Total rentable area | 148,000 sf |
| Anchor space excludedLease § 7.2 · p. 23 | 48,000 sf |
Cumulative cap, 5% with bankingLease § 7.5 · p. 26 · Controllable expenses onlyStep 10 of 12− $5,908.39
min( prior capped share × (1 + cap rate) + banked allowance, uncapped share )Inputs| Prior year capped shareReconciliation 2025 | $18,900.00 |
|---|---|
| Cap rateLease § 7.5 · p. 26 | 5% |
| Banked allowance carried forwardReconciliation 2025 | $359.85 |
| Uncapped share this yearStep 7 | $26,113.24 |
“Tenant’s Proportionate Share of Controllable Operating Expenses shall not increase by more than five percent (5%) per calendar year on a cumulative basis, with any unused increase carried forward to subsequent years.”
| 6100 · Landscaping and grounds | $88,240.00 |
|---|---|
| 6200 · Snow removal | $61,375.00 |
| 6310 · Parking lot maintenance | $44,910.00 |
| 6400 · Common area utilities | $39,880.00 |
Less estimates collectedGeneral ledger · 2026 · 12 monthly payments− $1,800.00
Twelve monthly estimate payments of $150.00, posted to the tenant’s ledger during 2026. The statement bills the difference, and next year’s estimate is recalculated from this year’s actual — step 12.
Next year’s estimate| 2027 monthly estimate | $1,683.74 |
|---|---|
| Basis | 2026 capped share |
Yes, Every One of Your Leases Is Different
That is why a template never fits. Each of these is a first-class thing in the engine, not a manual adjustment at the end.
- Caps
- Annual, cumulative with banking, compounded. Controllable only, while taxes and insurance run uncapped.
- Gross-up
- Variable share per category. The fixed remainder is never grossed up.
- Base year
- The amount, what it includes, and whether it is itself grossed up first.
- Pro-rata
- Anchor space and vacant pads leave the denominator when the lease says so.
- Capex
- Amortized over the term in the clause. Only this year’s slice enters the pool.
- Mid-year
- A tenant who took occupancy in August pays for the months they held the space.
The Coding Errors Get Caught Before They Reach a Tenant
These are warnings, not corrections. The product surfaces them, explains why they matter, and leaves the call to you — it is your ledger and your lease.
- Flagged
Marketing in the recoverable pool
Promotional spend coded to a recoverable account walks straight into the tenant’s statement. I flag the accounts and let you decide.
- Flagged
Leasing commissions
A commission is the cost of getting a new tenant, not of operating the property. Most leases exclude them explicitly, and most ledgers do not.
- Flagged
Capital expense booked as opex
A parking lot resurfacing expensed in full is the most expensive coding error in the industry. It surfaces before it reaches a statement, not after an audit.
The Exports You Already Produce
- QuickBooks CSV
- QuickBooks XLSX
- Excel
- Google Sheets
- Sage CSV
- Xero CSV
Where $900 Comes From
Roughly a quarter of what the season costs you today, paid once. If that arithmetic does not hold for your portfolio, do not buy it.
| Lease abstraction, ten leases, outsourced | $1,750–6,000 |
|---|---|
| The reconciliation itself | Not included |
| A PMS for a portfolio this size | $200–400 / mo |
| What it does with your leases | Nothing |
| OpexProof, property-year, everything above | $900 |
Priced by the Property-Year, Because That’s How the Work Arrives
Statements are due 90 to 120 days after the year closes. A monthly subscription on annual work only teaches people to cancel in May, so I don’t sell one. You pay for the property-years you close.
- Start here
Free
$0five documentsSee what a recovery profile looks like on your own lease before anything else happens.
- Five leases or amendments read into profiles
- Every field with its quote, page and confidence
- The check-this block on everything I wasn’t sure about
- No card, no call, no scheduled demo
- Most common
Takeover
$900per property, first yearYou took over the property and there are no prior schedules to work from.
- Every lease and amendment read into a profile
- The year reconciled against your GL
- Statement and backup package per tenant
- Next year’s estimate recalculated
Renewal
$450per property-yearThe profiles are already here. You are updating the ledger and the amendments.
- Existing profiles reused
- New amendments read and merged
- Fresh GL import on the mapping you confirmed
- Prior years stay in the archive, unchanged
Portfolio
$750per property, five or moreThe chart of accounts is mapped once and reused across the portfolio.
- Everything in Takeover
- One chart-of-accounts mapping for the org
- Invoice with net-30 terms
- Team seats and roles included
If I Don’t Close the Property, You Don’t Pay
That is the published refund policy, and it stands in place of a qualifying call. You see the recovery profiles and the backup package before you sign anything, and nothing reaches a tenant until you do.
Out of Season, Pay by the Document. A document read into a profile costs $10. Five credits are free at signup, and a re-uploaded file is deduplicated, not charged twice.
Send Me One Lease
Not a demo, not a call. Send one real lease and get back the recovery profile it produces: the clauses I found, the pages I found them on, and the fields I wasn’t sure about. Five documents are free.