# Maintenance and repair audits: in house or a firm?

> Should you audit maintenance and repair invoices in house or bring in a firm? A decision framework based on what your MSA and work orders actually contain.

Source: https://valuexpa.com/insights/should-you-audit-maintenance-and-repair-in-house-or-use-a
Publisher: ValueXPA (https://valuexpa.com)
Updated: 2026-09-07

---

Margin drift is the gap between what a vendor contract says and what the invoice actually charges. On maintenance and repair spend, that gap forms inside work orders, labor rate schedules and part substitutions long before anyone sits down to reconcile a bill against the master service agreement.

Deciding who checks for it, your own AP or controller team, or an outside firm, is a resourcing question, not a loyalty test. The right answer depends on what your maintenance invoices actually contain, how many vendors write them, and how much time your team has to read a work order against a contract clause instead of just a purchase order.

## Executive Summary

Maintenance and repair invoices carry more unstructured detail than almost any other indirect spend category. A work order describes labor hours, a part number, a warranty determination and sometimes a travel or emergency surcharge, and none of that lives in a clean field an ERP can match automatically. Three-way matching checks the invoice against the purchase order and the receipt. It does not test whether the labor rate matches the master service agreement or whether the part billed is the part the contract prices.

That is the real decision in front of you. An in house review catches what a person reading the invoice would catch: a wrong quantity, a missing PO number, an obvious duplicate. It does not catch a rate schedule that drifted from the MSA, or a warranty repair rebilled as new work, unless someone builds and maintains the contract-to-invoice logic needed to test for those things specifically.

A firm brought in for a fixed-scope diagnostic exists to build that logic once, apply it against a period of history, and hand back a roadmap your own team can run afterward. The choice is not permanent or exclusive. It is a question of which stage of the work benefits from outside contract-reading capacity, and which stage your team can own once the rules are written down.

## 1. Should you audit maintenance and repair in house or use a firm?

**Use in house review for invoices you can check against a purchase order and a receipt: quantities, obvious duplicates, missing approvals. Bring in a firm when the check requires reading the master service agreement itself, meaning labor rate schedules, warranty terms and part substitution clauses, because that work takes contract-reading time your AP team does not have built into its weekly cycle and does not need permanently once the rules are documented.**

The decision splits cleanly along one line: does the check require reading the contract, or just the purchase order? AP teams are built to process invoices against POs quickly. They are not built to hold a master service agreement's labor rate table, warranty window and substitution clause in mind while doing it, and adding that as a side task to an already full queue rarely survives a busy month.

A firm's fixed-scope engagement exists for exactly that gap. It reads the contract once, in detail, and tests a period of invoice history against it, which is a different kind of work than processing next week's invoice. The two are not competitors. One tests what already happened. The other keeps the next invoice honest, once someone has written down what "honest" means for this vendor.

## 2. What does an in house maintenance audit actually require?

**An in house maintenance audit requires three things: the master service agreement itself, in a form someone can search, the work order backup for each invoice, and staff time set aside specifically for contract comparison rather than invoice processing. Most AP teams have the first two somewhere in email or a shared drive and lack the third, which is the actual constraint, not the documents.**

The documents are usually recoverable. The rate schedule sits in a signed MSA somewhere, the work order sits in a vendor portal or an email thread, and the invoice sits in the ERP. What is missing is a standing process that pulls all three together for every invoice, every month, rather than only when a number looks obviously wrong.

That standing process is what a controller has to build and staff. It needs someone who can read a service agreement's rate table and a work order's labor line together and notice when they disagree, which is a specific skill distinct from invoice coding. Building it takes longer than most teams expect, because the first pass usually surfaces a backlog of history nobody has checked yet.

## 3. What can a firm find that an internal review misses?

**A firm builds contract-to-invoice matching logic specifically for the categories internal review tends to skip: labor rate deviations against the MSA, scope drift on a work order that expanded past its original approval, and warranty repairs rebilled as new work. None of these trip a standard three-way match, because all three are technically valid invoices against a valid purchase order, just against the wrong reference terms.**

A purchase order confirms that work was authorized. It does not confirm that the labor rate charged for that work is the rate the contract sets, or that a repair the contract classifies as warranty was billed as warranty rather than as a new charge. Those are contract questions, not PO questions, and a standard match has no field for them.

This is the specific work behind pages on [labor rate deviations](labor-rate-deviations-against-master-service-agreements), [scope drift](scope-drift-on-maintenance-work-orders) and [warranty work billed as new work](warranty-work-billed-as-new-work). A firm's diagnostic exists to test a period of invoice history against the contract clauses those pages describe, and to hand back which invoices failed and why.

## 4. How does rising repair cost change the audit math?

**Per the US Bureau of Labor Statistics Producer Price Index for commercial machinery repair and maintenance, read September 6, 2026, the July 2026 index stood at 237.468, up 9.1% year over year. When input costs move that fast, a rate schedule negotiated eighteen months ago is more likely to be stale, and a stale rate that was never corrected compounds every month it goes unchecked.**

A rising cost index does not, by itself, prove your contracts are wrong. It does mean the assumption behind a rate you negotiated years ago is aging faster than it used to, and a vendor whose own input costs are climbing has more reason to test whether your rate card still matches what they charge.

This changes the audit math because the cost of leaving a stale rate unchecked grows with the underlying index rather than staying flat. A gap that was small when the rate was set can widen every renewal cycle if nobody revisits it. That is an argument for checking sooner rather than for a specific dollar figure, which no dataset here supports.

## 5. Where does scope drift fit into the in house versus firm decision?

**Scope drift, where a work order expands past its original approval without a new rate or cap being applied, is one of the hardest drift types for an internal team to catch because each individual invoice looks reasonable on its own. Catching it requires comparing a work order against its own original scope over time, which is pattern work a firm's diagnostic is built to do across a full history at once.**

A single invoice for an expanded repair job rarely looks wrong in isolation. The line items are real, the labor was performed, and the PO usually gets amended to match. The problem only becomes visible when you line up a vendor's work orders against each other and notice the scope creeping past what the original MSA or SOW priced.

That comparison is naturally suited to a one-time diagnostic covering a defined period of history, because it needs the full set of invoices in front of one reviewer at once. See [scope drift on maintenance work orders](scope-drift-on-maintenance-work-orders) for how the pattern actually forms.

## 6. Can you combine in house monitoring with a periodic outside audit?

**Yes. The two are complementary rather than exclusive: a firm's diagnostic tests a period of history once and writes down the contract rules your AP team then applies to every new invoice. Internal monitoring handles routine matching against those documented rules, while a periodic outside review catches drift that accumulates in vendor behavior or contract renewals between checks.**

The combination works because each side does what it is actually built for. A diagnostic is a concentrated, contract-reading exercise against history. Internal AP review is a repeatable, lower-effort check against rules that are already written down. Trying to make internal review do the contract-reading work, or trying to make an outside firm run weekly invoice processing, asks each side to do the other's job.

Most teams that adopt this combination start with a firm's [maintenance and repair invoice audit](how-do-you-audit-maintenance-and-repair-invoices) to establish the baseline, then route ongoing checks through the [maintenance and MSA invoice audit sub-hub](sub-hub-maintenance-and-msa-invoice-audit) for the categories that matter to their own vendor mix, including [substitution pricing](substitution-pricing-when-the-part-changes-and-the-price).

For the wider pattern this sits inside, start with the [margin drift](/guides/indirect-spend-audit-categories) guide. See also [the six categories drift hides in](/guides/indirect-spend-audit-categories) and [accessorial charge audit: the surcharges nobody validates](/guides/accessorial-charge-audit-the-surcharges-nobody-validates).

## 7. Frequently Asked Questions (People Also Ask)

### Is an in house maintenance audit enough on its own?

It is enough for what a purchase order and receipt can confirm: quantities, approvals, obvious duplicates. It is not enough for checks that require reading the master service agreement itself, such as labor rate schedules, warranty terms or substitution clauses, unless your team has built and maintains that contract logic separately.

### How long does an outside maintenance and repair diagnostic take?

A margin drift diagnostic across a full indirect spend program runs 2 to 4 weeks across ValueXPA diagnostics. A maintenance-only scope can move within that same window since it covers fewer vendor contracts to read.

### What documents does a firm need to start a maintenance audit?

The master service agreement for each vendor in scope, the invoice history for the period under review, and the underlying work order or ticket backup for those invoices. Without the work order detail, a reviewer cannot confirm what was actually performed against what the contract prices.

### Does a firm replace our AP team's ongoing invoice processing?

No. A diagnostic is a fixed-scope, one-time review of a period of history that produces a roadmap. Ongoing invoice processing and matching against that roadmap's rules stays with your own AP or controller team unless you separately engage a managed services arrangement.

### Why doesn't three-way matching catch a stale labor rate?

Three-way matching checks the invoice against the purchase order and the receipt. None of those three documents contains the master service agreement's rate table, so a labor rate that has drifted from the contract can pass a three-way match cleanly while still being wrong.

### Can rising repair costs make a maintenance audit more urgent?

Per the US Bureau of Labor Statistics Producer Price Index for commercial machinery repair and maintenance, read September 6, 2026, the July 2026 index rose 9.1% year over year. Faster-moving input costs mean a rate schedule set years ago has more time to drift from current terms before anyone checks it.

### What is the single biggest gap in an internal-only review?

Contract-reading capacity. An internal review can compare an invoice to a purchase order quickly. Comparing an invoice to the master service agreement's rate table, warranty clause or scope definition takes time most AP queues do not have built in, which is the specific gap a fixed-scope firm engagement is built to close.

### Should a smaller maintenance vendor list still be audited by a firm?

A shorter vendor list means less contract-reading work, not less risk per contract. If the invoices already run through a matching process your team maintains and understands, the case for outside review weakens. If the contracts have never been read against the invoices at all, the vendor count does not change that gap.

### Is contract complexity quietly draining your operating margin?

A small systematic drift between your negotiated contracts and your actual vendor billing compounds quietly across a year of invoices. Stop guessing at your exposure and run a targeted audit.

**[Take the Free Screener → https://valuexpa.com/margin-drift-screener](https://valuexpa.com/margin-drift-screener)**

## Executive Summary

Maintenance and repair invoices carry more unstructured detail than almost any other indirect spend category. A work order describes labor hours, a part number, a warranty determination and sometimes a travel or emergency surcharge, and none of that lives in a clean field an ERP can match automatically. Three-way matching checks the invoice against the purchase order and the receipt. It does not test whether the labor rate matches the master service agreement or whether the part billed is the part the contract prices. That is the real decision in front of you. An in house review catches what a person reading the invoice would catch: a wrong quantity, a missing PO number, an obvious duplicate. It does not catch a rate schedule that drifted from the MSA, or a warranty repair rebilled as new work, unless someone builds and maintains the contract-to-invoice logic needed to test for those things specifically. A firm brought in for a fixed-scope diagnostic exists to build that logic once, apply it against a period of history, and hand back a roadmap your own team can run afterward. The choice is not permanent or exclusive. It is a question of which stage of the work benefits from outside contract-reading capacity, and which stage your team can own once the rules are written down.

## 1. Should you audit maintenance and repair in house or use a firm?

Use in house review for invoices you can check against a purchase order and a receipt: quantities, obvious duplicates, missing approvals. Bring in a firm when the check requires reading the master service agreement itself, meaning labor rate schedules, warranty terms and part substitution clauses, because that work takes contract-reading time your AP team does not have built into its weekly cycle and does not need permanently once the rules are documented. The decision splits cleanly along one line: does the check require reading the contract, or just the purchase order? AP teams are built to process invoices against POs quickly. They are not built to hold a master service agreement's labor rate table, warranty window and substitution clause in mind while doing it, and adding that as a side task to an already full queue rarely survives a busy month. A firm's fixed-scope engagement exists for exactly that gap. It reads the contract once, in detail, and tests a period of invoice history against it, which is a different kind of work than processing next week's invoice. The two are not competitors. One tests what already happened. The other keeps the next invoice honest, once someone has written down what "honest" means for this vendor.

## 2. What does an in house maintenance audit actually require?

An in house maintenance audit requires three things: the master service agreement itself, in a form someone can search, the work order backup for each invoice, and staff time set aside specifically for contract comparison rather than invoice processing. Most AP teams have the first two somewhere in email or a shared drive and lack the third, which is the actual constraint, not the documents. The documents are usually recoverable. The rate schedule sits in a signed MSA somewhere, the work order sits in a vendor portal or an email thread, and the invoice sits in the ERP. What is missing is a standing process that pulls all three together for every invoice, every month, rather than only when a number looks obviously wrong. That standing process is what a controller has to build and staff. It needs someone who can read a service agreement's rate table and a work order's labor line together and notice when they disagree, which is a specific skill distinct from invoice coding. Building it takes longer than most teams expect, because the first pass usually surfaces a backlog of history nobody has checked yet.

## 3. What can a firm find that an internal review misses?

A firm builds contract-to-invoice matching logic specifically for the categories internal review tends to skip: labor rate deviations against the MSA, scope drift on a work order that expanded past its original approval, and warranty repairs rebilled as new work. None of these trip a standard three-way match, because all three are technically valid invoices against a valid purchase order, just against the wrong reference terms. A purchase order confirms that work was authorized. It does not confirm that the labor rate charged for that work is the rate the contract sets, or that a repair the contract classifies as warranty was billed as warranty rather than as a new charge. Those are contract questions, not PO questions, and a standard match has no field for them. This is the specific work behind pages on [labor rate deviations](labor-rate-deviations-against-master-service-agreements), [scope drift](scope-drift-on-maintenance-work-orders) and [warranty work billed as new work](warranty-work-billed-as-new-work). A firm's diagnostic exists to test a period of invoice history against the contract clauses those pages describe, and to hand back which invoices failed and why.

## 4. How does rising repair cost change the audit math?

Per the US Bureau of Labor Statistics Producer Price Index for commercial machinery repair and maintenance, read September 6, 2026, the July 2026 index stood at 237.468, up 9.1% year over year. When input costs move that fast, a rate schedule negotiated eighteen months ago is more likely to be stale, and a stale rate that was never corrected compounds every month it goes unchecked. A rising cost index does not, by itself, prove your contracts are wrong. It does mean the assumption behind a rate you negotiated years ago is aging faster than it used to, and a vendor whose own input costs are climbing has more reason to test whether your rate card still matches what they charge. This changes the audit math because the cost of leaving a stale rate unchecked grows with the underlying index rather than staying flat. A gap that was small when the rate was set can widen every renewal cycle if nobody revisits it. That is an argument for checking sooner rather than for a specific dollar figure, which no dataset here supports.

## 5. Where does scope drift fit into the in house versus firm decision?

Scope drift, where a work order expands past its original approval without a new rate or cap being applied, is one of the hardest drift types for an internal team to catch because each individual invoice looks reasonable on its own. Catching it requires comparing a work order against its own original scope over time, which is pattern work a firm's diagnostic is built to do across a full history at once. A single invoice for an expanded repair job rarely looks wrong in isolation. The line items are real, the labor was performed, and the PO usually gets amended to match. The problem only becomes visible when you line up a vendor's work orders against each other and notice the scope creeping past what the original MSA or SOW priced. That comparison is naturally suited to a one-time diagnostic covering a defined period of history, because it needs the full set of invoices in front of one reviewer at once. See [scope drift on maintenance work orders](scope-drift-on-maintenance-work-orders) for how the pattern actually forms.

## 6. Can you combine in house monitoring with a periodic outside audit?

Yes. The two are complementary rather than exclusive: a firm's diagnostic tests a period of history once and writes down the contract rules your AP team then applies to every new invoice. Internal monitoring handles routine matching against those documented rules, while a periodic outside review catches drift that accumulates in vendor behavior or contract renewals between checks. The combination works because each side does what it is actually built for. A diagnostic is a concentrated, contract-reading exercise against history. Internal AP review is a repeatable, lower-effort check against rules that are already written down. Trying to make internal review do the contract-reading work, or trying to make an outside firm run weekly invoice processing, asks each side to do the other's job. Most teams that adopt this combination start with a firm's [maintenance and repair invoice audit](how-do-you-audit-maintenance-and-repair-invoices) to establish the baseline, then route ongoing checks through the [maintenance and MSA invoice audit sub-hub](sub-hub-maintenance-and-msa-invoice-audit) for the categories that matter to their own vendor mix, including [substitution pricing](substitution-pricing-when-the-part-changes-and-the-price). For the wider pattern this sits inside, start with the [margin drift](/guides/indirect-spend-audit-categories) guide. See also [the six categories drift hides in](/guides/indirect-spend-audit-categories) and [accessorial charge audit: the surcharges nobody validates](/guides/accessorial-charge-audit-the-surcharges-nobody-validates).

## Common questions

### Is an in house maintenance audit enough on its own?

It is enough for what a purchase order and receipt can confirm: quantities, approvals, obvious duplicates. It is not enough for checks that require reading the master service agreement itself, such as labor rate schedules, warranty terms or substitution clauses, unless your team has built and maintains that contract logic separately.

### How long does an outside maintenance and repair diagnostic take?

A margin drift diagnostic across a full indirect spend program runs 2 to 4 weeks across ValueXPA diagnostics. A maintenance-only scope can move within that same window since it covers fewer vendor contracts to read.

### What documents does a firm need to start a maintenance audit?

The master service agreement for each vendor in scope, the invoice history for the period under review, and the underlying work order or ticket backup for those invoices. Without the work order detail, a reviewer cannot confirm what was actually performed against what the contract prices.

### Does a firm replace our AP team's ongoing invoice processing?

No. A diagnostic is a fixed-scope, one-time review of a period of history that produces a roadmap. Ongoing invoice processing and matching against that roadmap's rules stays with your own AP or controller team unless you separately engage a managed services arrangement.

### Why doesn't three-way matching catch a stale labor rate?

Three-way matching checks the invoice against the purchase order and the receipt. None of those three documents contains the master service agreement's rate table, so a labor rate that has drifted from the contract can pass a three-way match cleanly while still being wrong.

---

ValueXPA runs a fixed-scope Margin Drift Diagnostic that validates every service vendor invoice against contract terms, for $100M+ US industrial manufacturers and distributors. Two to four weeks. The client retains 100% of recoveries. https://valuexpa.com/contact-us
