# Spotting a rate violation on a facilities invoice

> Rate schedule violations on facilities invoices hide inside line items that look routine. Here is what to pull and compare before you approve one.

Source: https://valuexpa.com/insights/how-do-you-spot-rate-schedule-violation-on-a-facilities
Publisher: ValueXPA (https://valuexpa.com)
Updated: 2026-10-22

---

Margin drift is the gap between what a vendor contract says and what the invoice actually charges. On a facilities invoice, that gap most often shows up as a rate schedule violation: janitorial, landscaping, snow removal, HVAC service or general maintenance billed at a rate that does not match the schedule attached to the agreement.

Facilities contracts run for years while the rate schedule sits inside a PDF exhibit nobody reopens. The invoice arrives, the line items look plausible, and the AP team pays against the purchase order instead of the rate table. That is the mechanism this page walks through.

## Executive Summary

A facilities rate schedule violation happens when the billed rate on an invoice line no longer matches the rate table in the signed agreement, whether that table sets a per-square-foot janitorial rate, a per-visit landscaping fee, an hourly HVAC labor rate, or a seasonal snow removal minimum. The rate schedule is a static exhibit, and the vendor's billing system updates on its own timeline, sometimes annually, sometimes after a change on the vendor's side. Nothing forces the two to reconcile on their own.

Three-way matching checks the invoice against the purchase order and the receipt of service. It does not open the [rate schedule exhibit](/insights/indirect-spend-audit-categories) and test a per-unit figure against it, because that exhibit is rarely loaded into the ERP as structured data. That is the control gap a rate violation exploits.

Finding it means pulling the actual rate schedule exhibit, not the summary contract page, and testing each recurring line item against it directly, including any escalation clause that permits a change and the date that clause takes effect.

## 1. What counts as a rate schedule violation on a facilities invoice?

**A rate schedule violation is any invoice line charged at a rate different from the figure in the contract's rate schedule exhibit, whether that is a per-square-foot janitorial rate, a per-visit landscaping charge, an hourly HVAC labor rate, a flat monthly maintenance fee, or a seasonal snow removal minimum. It covers both a rate that was raised without a valid escalation clause and a rate that was never lowered after a negotiated reduction took effect.**

Facilities contracts bundle several services under one master agreement, each with its own rate table. Janitorial is usually priced per square foot or per visit. HVAC and general maintenance run hourly, often with separate rates for regular hours, after-hours, and emergency callouts. Landscaping and snow removal frequently carry seasonal minimums or per-event pricing.

A violation is not always an increase. A vendor that grants a negotiated rate reduction, tied to a longer contract term or a portfolio-wide agreement, sometimes keeps billing the old rate because the change was never pushed into their invoicing system. The invoice looks consistent with prior months, which is exactly why it clears review.

The test is always the same: pull the specific rate cell in the schedule that applies to that line's service type, unit, and time window, and compare it to what was actually charged.

## 2. Why does three-way matching miss this?

**Three-way matching checks that the invoice quantity and total align with the purchase order and the confirmed receipt of service; it does not open the underlying rate schedule exhibit and compare a per-unit rate against it. The PO typically carries a blanket dollar amount or an estimated quantity, not the granular rate table from the contract, so a wrong per-unit rate can pass every match check the ERP runs.**

A purchase order for facilities services is commonly set up as a blanket PO: a not-to-exceed dollar amount for the quarter or year, sometimes with an estimated service frequency attached. The PO does not usually carry the rate table itself, because that table lives in a separate contract exhibit that predates the PO and was never re-entered as line-level data.

Three-way matching validates that the invoiced quantity matches what was ordered and received, and that the extended total is arithmetically correct. It does not independently know what the correct per-unit rate should be, so it cannot flag a rate that is wrong but internally consistent within the invoice.

This is a structural gap in the control, not a failure of the AP team running it. The rate schedule exhibit sits outside the system the match runs against.

## 3. Where do facilities rate violations originate?

**Rate violations on facilities invoices originate at three points: a vendor's annual rate increase applied before the contract's escalation clause permits it, a personnel change on the vendor's billing side that reintroduces an old rate table, and a service tier change, such as moving from weekly to biweekly janitorial, that should have triggered a new rate but did not.**

An escalation clause typically ties a rate increase to a specific trigger: a calendar date, a CPI-linked index, or a contract anniversary. When a vendor applies its standard annual increase without checking that trigger against this specific customer's contract, the new rate lands early.

Vendor account handoffs create a second source. A new account manager or billing clerk on the vendor side works from whatever rate table is in their system, which may predate the last negotiated change if that change was communicated informally rather than through a contract amendment.

A third source is a service level change that was agreed verbally or by email but never formalized into a rate schedule amendment. The frequency or scope of the work changes, but the rate schedule the vendor bills against does not, and the mismatch compounds every billing cycle until someone checks it.

## 4. How do you build the reconciliation to catch this?

**Reconciling a facilities invoice against its rate schedule means pulling the exhibit that sets the specific rate for each service type, extracting the billed rate from every recurring invoice line, and comparing the two directly, unit by unit, for the exact time window each invoice covers. Any escalation clause gets checked separately: has its trigger date passed, and does the new rate match what the clause specifies rather than what the vendor applied.**

Start with the contract's rate schedule exhibit, not the master agreement summary. The summary describes the relationship; the exhibit sets the numbers, and it is often an attachment added or revised after the base contract was signed.

For each recurring invoice line, record the service type, unit of measure, quantity, and billed rate. Match each one to the corresponding row in the rate schedule for the period the invoice covers, because a schedule can carry different rates for different date ranges within a single contract term.

### A. Building the check

Lay the invoice history and the rate schedule side by side in a spreadsheet: one row per invoice line, columns for contracted rate, billed rate, and variance. Run it across 12 to 18 months of invoice history in one pass rather than checking bills one at a time as they arrive, since a rate that drifted early is easy to miss looking at any single month.

## 5. Which facilities services see the most rate table complexity?

**Janitorial, HVAC and general maintenance, and landscaping or snow removal each carry rate table structures that differ enough from each other that a single reconciliation template will not fit all three. Janitorial mixes per-square-foot and per-visit pricing with bundled add-ons, HVAC layers time-of-day labor rates over a separate parts markup schedule, and landscaping or snow removal ties per-event charges to a seasonal threshold. Each needs its own check built around how that service is actually priced in the contract.**

A single reconciliation template built for hourly labor rates will not catch a per-square-foot violation, and a template built for per-visit landscaping will miss an hourly markup on emergency HVAC labor. Each service type in a facilities contract needs a check built around its own pricing structure.

This is also where bundled line items cause trouble. A janitorial invoice that rolls consumable restocking into a flat monthly rate can mask a rate change in either the base service or the restocking component, because only the combined total is visible on the invoice.

- **Janitorial services:** Priced per square foot or per visit, often with separate rates for day porter service, deep cleaning, and consumable restocking bundled into a base rate that needs unbundling to check.

- **HVAC and general maintenance:** Priced hourly with distinct rates for regular hours, after-hours, and emergency callouts, plus a separate parts markup schedule that is easy to leave unchecked.

- **Landscaping and snow removal:** Priced per visit or under a seasonal minimum commitment, with snow removal frequently carrying a per-event rate above a stated snowfall threshold that needs its own verification against weather records.

## 6. What should you do when you find a rate violation?

**Once a rate mismatch is confirmed against the contract's rate schedule exhibit, document the specific line items, dates, and variance amount, then raise a credit memo request with the vendor citing the exhibit and clause directly. Separately, correct the rate reference the AP team uses going forward so the same mismatch does not recur on the next invoice cycle.**

A confirmed violation has two parts to resolve. The first is recovery: the overcharged amount on invoices already paid, which the vendor typically credits once shown the specific exhibit clause and the variance calculation, rather than a general dispute. Vendors respond faster to a dated citation than to a general complaint about pricing.

The second part is prevention, and it is the part that gets skipped. If the AP team's reference rate was wrong, correcting it once does not stop the next invoice from repeating the same error unless the corrected rate is the one checked against going forward.

This is also the point at which a general disclaimer applies: contract interpretation questions, including whether an escalation clause was triggered correctly, are commercial and factual determinations here, not legal advice, and a genuinely disputed clause should go to counsel.

For the wider pattern this sits inside, start with the [margin drift](/insights/indirect-spend-audit-categories) guide. See also [accessorial charge audit: the surcharges nobody validates](/insights/accessorial-charge-audit-the-surcharges-nobody-validates) and [duplicate freight billing and the multi-carrier consolidation problem](/insights/duplicate-freight-billing-and-the-multi-carrier).

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

### What is a rate schedule exhibit and where do I find it?

It is the attachment to the master facilities agreement that sets the actual per-unit prices: per-square-foot janitorial rates, hourly HVAC labor rates, per-visit landscaping charges. It is often filed separately from the signed contract, sometimes as a later amendment, so check the full contract folder, not just the executed signature page.

### Does a blanket purchase order protect against a rate violation?

No. A blanket PO usually sets a not-to-exceed dollar total or an estimated quantity, not a per-unit rate. An invoice can stay under the PO ceiling and still bill an incorrect per-unit rate, because the PO was never built to test that figure.

### How far back should I check invoice history for a rate mismatch?

Pull 12 to 18 months of recurring invoice lines in a single pass rather than reviewing bills one month at a time. A rate that drifted early is easy to miss when each invoice is checked in isolation against the prior month instead of against the contract.

### What if the vendor says the rate increase was authorized?

Ask for the specific escalation clause and its trigger, whether that is a calendar date, an index, or a contract anniversary, and compare the date and figure against what was actually billed. A vendor citing a general policy of annual increases is not the same as citing the clause in your contract.

### Can a rate violation exist even if the total invoice amount looks normal?

Yes. A bundled line item, such as a flat monthly janitorial rate that combines base service and consumable restocking, can hide a rate change in one component while the combined total stays close to prior months and draws no attention.

### Who should own the ongoing rate schedule check?

Whoever owns vendor invoice approval needs the current rate schedule as a reference document, not just the contract summary. If that reference was wrong once, it stays wrong on every future invoice until someone updates the source the approver checks against.

### Is a rate schedule violation the same as a surcharge or accessorial issue?

No. A surcharge or accessorial charge is an added fee layered on top of the base rate, such as a fuel surcharge. A rate schedule violation is the base per-unit rate itself being wrong against the contract, before any surcharge is applied.

### Does this apply to month-to-month facilities agreements too?

The same mismatch can occur, but a month-to-month agreement usually lacks a multi-year escalation clause, so the more common cause is a rate change made informally between the vendor and the site contact and never reflected in a written rate update.

### 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

A facilities rate schedule violation happens when the billed rate on an invoice line no longer matches the rate table in the signed agreement, whether that table sets a per-square-foot janitorial rate, a per-visit landscaping fee, an hourly HVAC labor rate, or a seasonal snow removal minimum. The rate schedule is a static exhibit, and the vendor's billing system updates on its own timeline, sometimes annually, sometimes after a change on the vendor's side. Nothing forces the two to reconcile on their own. Three-way matching checks the invoice against the purchase order and the receipt of service. It does not open the [rate schedule exhibit](/insights/indirect-spend-audit-categories) and test a per-unit figure against it, because that exhibit is rarely loaded into the ERP as structured data. That is the control gap a rate violation exploits. Finding it means pulling the actual rate schedule exhibit, not the summary contract page, and testing each recurring line item against it directly, including any escalation clause that permits a change and the date that clause takes effect.

## 1. What counts as a rate schedule violation on a facilities invoice?

A rate schedule violation is any invoice line charged at a rate different from the figure in the contract's rate schedule exhibit, whether that is a per-square-foot janitorial rate, a per-visit landscaping charge, an hourly HVAC labor rate, a flat monthly maintenance fee, or a seasonal snow removal minimum. It covers both a rate that was raised without a valid escalation clause and a rate that was never lowered after a negotiated reduction took effect. Facilities contracts bundle several services under one master agreement, each with its own rate table. Janitorial is usually priced per square foot or per visit. HVAC and general maintenance run hourly, often with separate rates for regular hours, after-hours, and emergency callouts. Landscaping and snow removal frequently carry seasonal minimums or per-event pricing. A violation is not always an increase. A vendor that grants a negotiated rate reduction, tied to a longer contract term or a portfolio-wide agreement, sometimes keeps billing the old rate because the change was never pushed into their invoicing system. The invoice looks consistent with prior months, which is exactly why it clears review. The test is always the same: pull the specific rate cell in the schedule that applies to that line's service type, unit, and time window, and compare it to what was actually charged.

## 2. Why does three-way matching miss this?

Three-way matching checks that the invoice quantity and total align with the purchase order and the confirmed receipt of service; it does not open the underlying rate schedule exhibit and compare a per-unit rate against it. The PO typically carries a blanket dollar amount or an estimated quantity, not the granular rate table from the contract, so a wrong per-unit rate can pass every match check the ERP runs. A purchase order for facilities services is commonly set up as a blanket PO: a not-to-exceed dollar amount for the quarter or year, sometimes with an estimated service frequency attached. The PO does not usually carry the rate table itself, because that table lives in a separate contract exhibit that predates the PO and was never re-entered as line-level data. Three-way matching validates that the invoiced quantity matches what was ordered and received, and that the extended total is arithmetically correct. It does not independently know what the correct per-unit rate should be, so it cannot flag a rate that is wrong but internally consistent within the invoice. This is a structural gap in the control, not a failure of the AP team running it. The rate schedule exhibit sits outside the system the match runs against.

## 3. Where do facilities rate violations originate?

Rate violations on facilities invoices originate at three points: a vendor's annual rate increase applied before the contract's escalation clause permits it, a personnel change on the vendor's billing side that reintroduces an old rate table, and a service tier change, such as moving from weekly to biweekly janitorial, that should have triggered a new rate but did not. An escalation clause typically ties a rate increase to a specific trigger: a calendar date, a CPI-linked index, or a contract anniversary. When a vendor applies its standard annual increase without checking that trigger against this specific customer's contract, the new rate lands early. Vendor account handoffs create a second source. A new account manager or billing clerk on the vendor side works from whatever rate table is in their system, which may predate the last negotiated change if that change was communicated informally rather than through a contract amendment. A third source is a service level change that was agreed verbally or by email but never formalized into a rate schedule amendment. The frequency or scope of the work changes, but the rate schedule the vendor bills against does not, and the mismatch compounds every billing cycle until someone checks it.

## 4. How do you build the reconciliation to catch this?

Reconciling a facilities invoice against its rate schedule means pulling the exhibit that sets the specific rate for each service type, extracting the billed rate from every recurring invoice line, and comparing the two directly, unit by unit, for the exact time window each invoice covers. Any escalation clause gets checked separately: has its trigger date passed, and does the new rate match what the clause specifies rather than what the vendor applied. Start with the contract's rate schedule exhibit, not the master agreement summary. The summary describes the relationship; the exhibit sets the numbers, and it is often an attachment added or revised after the base contract was signed. For each recurring invoice line, record the service type, unit of measure, quantity, and billed rate. Match each one to the corresponding row in the rate schedule for the period the invoice covers, because a schedule can carry different rates for different date ranges within a single contract term. ### A. Building the check Lay the invoice history and the rate schedule side by side in a spreadsheet: one row per invoice line, columns for contracted rate, billed rate, and variance. Run it across 12 to 18 months of invoice history in one pass rather than checking bills one at a time as they arrive, since a rate that drifted early is easy to miss looking at any single month.

## 5. Which facilities services see the most rate table complexity?

Janitorial, HVAC and general maintenance, and landscaping or snow removal each carry rate table structures that differ enough from each other that a single reconciliation template will not fit all three. Janitorial mixes per-square-foot and per-visit pricing with bundled add-ons, HVAC layers time-of-day labor rates over a separate parts markup schedule, and landscaping or snow removal ties per-event charges to a seasonal threshold. Each needs its own check built around how that service is actually priced in the contract. A single reconciliation template built for hourly labor rates will not catch a per-square-foot violation, and a template built for per-visit landscaping will miss an hourly markup on emergency HVAC labor. Each service type in a facilities contract needs a check built around its own pricing structure. This is also where bundled line items cause trouble. A janitorial invoice that rolls consumable restocking into a flat monthly rate can mask a rate change in either the base service or the restocking component, because only the combined total is visible on the invoice. - Janitorial services: Priced per square foot or per visit, often with separate rates for day porter service, deep cleaning, and consumable restocking bundled into a base rate that needs unbundling to check. - HVAC and general maintenance: Priced hourly with distinct rates for regular hours, after-hours, and emergency callouts, plus a separate parts markup schedule that is easy to leave unchecked. - Landscaping and snow removal: Priced per visit or under a seasonal minimum commitment, with snow removal frequently carrying a per-event rate above a stated snowfall threshold that needs its own verification against weather records.

## 6. What should you do when you find a rate violation?

Once a rate mismatch is confirmed against the contract's rate schedule exhibit, document the specific line items, dates, and variance amount, then raise a credit memo request with the vendor citing the exhibit and clause directly. Separately, correct the rate reference the AP team uses going forward so the same mismatch does not recur on the next invoice cycle. A confirmed violation has two parts to resolve. The first is recovery: the overcharged amount on invoices already paid, which the vendor typically credits once shown the specific exhibit clause and the variance calculation, rather than a general dispute. Vendors respond faster to a dated citation than to a general complaint about pricing. The second part is prevention, and it is the part that gets skipped. If the AP team's reference rate was wrong, correcting it once does not stop the next invoice from repeating the same error unless the corrected rate is the one checked against going forward. This is also the point at which a general disclaimer applies: contract interpretation questions, including whether an escalation clause was triggered correctly, are commercial and factual determinations here, not legal advice, and a genuinely disputed clause should go to counsel. For the wider pattern this sits inside, start with the [margin drift](/insights/indirect-spend-audit-categories) guide. See also [accessorial charge audit: the surcharges nobody validates](/insights/accessorial-charge-audit-the-surcharges-nobody-validates) and [duplicate freight billing and the multi-carrier consolidation problem](/insights/duplicate-freight-billing-and-the-multi-carrier).

## Common questions

### What is a rate schedule exhibit and where do I find it?

It is the attachment to the master facilities agreement that sets the actual per-unit prices: per-square-foot janitorial rates, hourly HVAC labor rates, per-visit landscaping charges. It is often filed separately from the signed contract, sometimes as a later amendment, so check the full contract folder, not just the executed signature page.

### Does a blanket purchase order protect against a rate violation?

No. A blanket PO usually sets a not-to-exceed dollar total or an estimated quantity, not a per-unit rate. An invoice can stay under the PO ceiling and still bill an incorrect per-unit rate, because the PO was never built to test that figure.

### How far back should I check invoice history for a rate mismatch?

Pull 12 to 18 months of recurring invoice lines in a single pass rather than reviewing bills one month at a time. A rate that drifted early is easy to miss when each invoice is checked in isolation against the prior month instead of against the contract.

### What if the vendor says the rate increase was authorized?

Ask for the specific escalation clause and its trigger, whether that is a calendar date, an index, or a contract anniversary, and compare the date and figure against what was actually billed. A vendor citing a general policy of annual increases is not the same as citing the clause in your contract.

### Can a rate violation exist even if the total invoice amount looks normal?

Yes. A bundled line item, such as a flat monthly janitorial rate that combines base service and consumable restocking, can hide a rate change in one component while the combined total stays close to prior months and draws no attention.

---

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
