Most vendor invoices are fine. The job at month-end isn't checking all of them. It's finding the ones that aren't, before an owner does.
That's a month at one property: nine invoices, four matched, five flagged. The four are ready for a person to approve for payment. The five come with a reason each, so whoever reviews them knows who to call before they pick up the phone.
Here's the same month with the checks showing.
| Invoice | 1Work order exists | 2Assigned vendor | 3Within approval | 4Not billed before |
|---|---|---|---|---|
| HVAC, units 101 and 102$520 | fails | passes | passes | passes |
| Kitchen leak, unit 207$215 | passes | passes | passes | passes |
| HVAC repair, unit 111$640 | passes | passes | fails | passes |
| Grounds, July · inv 1043$600 | passes | passes | passes | passes |
| After-hours lockout, unit 104$185 | fails | passes | passes | passes |
| Water heater element, unit 203$265 | passes | passes | passes | passes |
| Pest control, unit 112$95 | passes | passes | passes | passes |
| Paint touch-up, unit 2O9$180 | fails | passes | passes | passes |
| Grounds, July · inv 1043-R$600 | passes | passes | passes | fails |
The four rules, in plain words
- There's a work order for this unit, at this property. The paint invoice for “unit 2O9” fails here: that's a letter O, it reads as 209, and 209 has no open work order. The software can suggest the likely unit; a person confirms it. The locksmith fails too, because the tenant called them directly and nobody opened a work order. And the HVAC bill for units 101 and 102 is two jobs on one invoice, which has to be split before either can match.
- The vendor is the one assigned to that job. A bill from a plumber you didn't send is a question, not a payment.
- The amount is within what was approved: the estimate if there was one, and under the owner's approval limit in your management agreement unless the owner signed off. Invoices on the same job are added up, so a deposit and a final bill can't each slip under the limit. The $640 HVAC repair against a $450 estimate fails here.
- It hasn't been billed before, by invoice number or by the same vendor, job and amount. The second landscaping bill for July is the same $600 for the same month, as invoice 1043-R, while the first is still waiting for approval. Real duplicates usually come back with a new number, which is why the rule also matches on vendor, job and amount.
That's all matching is. The automation's part is reading each invoice as it arrives, from an emailed PDF, a scan or a phone photo, pulling out the vendor, the amount, the unit and the invoice number, and applying those four rules.
Where the reading goes wrong
It's good at messy layouts, phone photos and working out that “AC not cooling, repl cap” is the same job as the work order that says “replace capacitor”. It's weaker at handwritten totals and notes in the margin. It struggles when the name on the bill isn't the name in your vendor list, like “DAM Heating & Cooling LLC” for Desert Air Mechanical, and with a PDF that holds three invoices or a statement of open balances.
It can also misread a 7 as a 1 without knowing it did. So totals are checked against the line items and the estimate, and anything that doesn't add up is flagged rather than trusted. And it can't know what was agreed on the phone: a verbal OK from the property manager is invisible to it. A flag costs a minute. A guess costs an owner's trust.
What changes at month-end
Instead of a stack to type in and compare by eye, there's a short list of exceptions with reasons attached, and the matched bills are already coded to the right property and unit, ready for the owner statement.
Over a few months the flags start to show patterns. The vendor who often bills over estimate. The property where jobs keep happening without a work order. The duplicate that arrives every quarter from the same billing system. None of that is visible when every invoice is checked by eye at the end of a long day, because by eye, every invoice looks like the last one.
People still approve every payment, call the vendor when a bill is wrong, and talk to the owner about anything over their limit. The automation hands them a list. It doesn't sign anything.
Check your software first
Some property management software now reads bills on its own. Look in your settings for bill capture, invoice scanning or a vendor-bill inbox, send a test invoice through it, and see what it already checks, such as bills linked to work orders and repeated invoice numbers. What's left may be one or two rules, or nothing. The rules are simple enough that the question is volume, not difficulty, and this is the number to look at:
Your own two numbers, all properties
Count it for real for two weeks and that figure becomes your baseline. It's time, not money: what an hour of your team is worth is your number, not mine.
If that tape is short, keep doing it by hand and spend the money elsewhere. If it's long, the four rules above are the whole specification, and they sit beside your software rather than replacing it. How they connect depends on the system: some take data straight from another program, others only import a file.