# How do you report on invoice exceptions in Sage Intacct?

> Sage Intacct flags invoices that fail matching or approval rules. Here is what it reports natively and where contract-based exceptions still go unseen.

Source: https://valuexpa.com/insights/how-do-you-report-on-invoice-exceptions-in-sage-intacct
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. Sage Intacct's AP module gives Controllers a clear view of exceptions it is built to catch: unmatched purchase orders, approval holds, duplicate invoice numbers, and budget variance flags.

The harder question is what an exception report from Sage Intacct does not show. It reports against the rules configured in the system, not against the rate card, rebate clause, or surcharge schedule sitting in a vendor contract PDF.

## Executive Summary

Sage Intacct's exception reporting runs on data it already holds: the purchase order, the goods receipt, the approval workflow, and the GL budget. Bill entry and purchasing approval rules can hold an invoice for missing a PO reference, exceeding a budget threshold, or duplicating an invoice number already in the system. Dimension-based reporting lets a Controller slice these holds by vendor, department, or entity in a dashboard or custom report.

None of that reporting reaches a category of exception that never touches the ERP: an invoice that matches its purchase order exactly but violates a contract term the PO never captured. A rate card increase past its ceiling, a volume rebate never applied, a minimum-commitment surcharge charged twice. Sage Intacct has no field for a rebate clause, so it cannot flag its absence.

Getting [a full exception picture](/insights/diagnostic-or-software-what-to-buy-first) means running two separate checks: the system-native report for structural and approval exceptions, and a contract-to-invoice review for terms the system was never given. The two are not substitutes for each other, and mixing them into one report set understates what is actually at risk.

## 1. What exception types does Sage Intacct report on natively?

**Sage Intacct's AP and Purchasing modules report on structural and workflow exceptions: invoices without a matching purchase order, quantity or price variances against the PO line, invoices held in approval workflow, duplicate invoice numbers or amounts, and budget variance against a defined GL budget. Each is generated from data already inside the system: the PO, the receipt, the approval chain, and the budget record. These reports are reliable for what they check, but every one of them depends on the.**

Purchasing exception reports compare the bill against the purchase order line by line: unit price, quantity, and extended amount. A variance outside the configured tolerance routes the bill to a hold status rather than posting automatically.

Approval workflow reporting shows which bills are stuck, at what approval level, and for how long. This is useful for AP cycle-time tracking but says nothing about whether the underlying charge is correct.

Duplicate detection compares invoice number, vendor, and amount against bills already entered. It catches a literal resubmission. It does not catch the same charge billed under a different invoice number, which a vendor overbilling scenario often looks like.

Budget variance reporting flags a GL account exceeding its period budget. That is a spend-control signal, not a contract-compliance one: a bill can be fully within budget and still be priced above the contracted rate.

## 2. Can Sage Intacct match an invoice against a contract rate card?

**No. Sage Intacct matches an invoice against a purchase order and a receipt. It has no native object for a vendor contract's rate card, rebate tier, or surcharge schedule, so it cannot compare an invoice line against contract terms unless someone manually keyed those terms into the PO first. Most service contracts, including freight, contract labor, and maintenance agreements, live as PDFs outside the ERP entirely, which means the three-way match has nothing contract-based to check against.**

A purchase order in Sage Intacct carries a price and a quantity. It does not carry a volume tier that changes the price at a threshold, a rebate clause that pays money back after the fact, or a not-to-exceed cap on a labor rate.

Three-way matching checks the invoice against the PO and the receipt. It does not test whether the PO price itself is still the correct contracted price twelve months into a multi-year agreement.

This is not a Sage Intacct gap specifically. It is true of every ERP's native matching engine, because contract terms are negotiated in procurement or legal, stored as documents, and never entered as structured data anywhere the ERP can query.

## 3. How do you build a custom exception report in Sage Intacct?

**Sage Intacct's custom reporting and dashboard tools let a Controller combine AP transaction data with dimensions such as vendor, department, project, and location, then filter for held, unposted, or variance-flagged bills. Saved reports can run on a schedule and export to a dashboard tile. This is the right tool for tracking exception volume and aging across the AP team, but it is still built entirely from data the system already has, so it inherits the same blind spot toward unstructured.**

A custom report definition draws only from fields that exist somewhere in the Sage Intacct data model. It can rearrange and filter that data in useful ways, but it cannot introduce a fact the system was never given.

### A. What a custom report can add

A custom report can combine fields a standard report keeps separate: hold reason, vendor, dollar amount, and days outstanding in one view, filtered to a single entity or department. It can also compute a rolling total of held invoice value, which is useful for cash-flow forecasting during month-end close.

### B. What it cannot add

No custom report definition can introduce a data field that does not exist in the system. If the rebate percentage on a vendor contract was never entered anywhere in Sage Intacct, no report, however cleverly filtered, can compare an invoice against it. The report can only be as complete as the underlying data model.

## 4. What exceptions does the system miss even when everything looks correct?

**An invoice that matches its purchase order exactly, posts within budget, and clears approval can still violate the underlying contract. A surcharge that should have expired after 90 days but keeps recurring, a volume rebate tier crossed mid-year but never applied to pricing, and a minimum-commitment fee charged on top of actual usage all pass every native Sage Intacct check because none of those terms were ever represented as structured data the system could test.**

A surcharge clause with an expiration condition is a date test against a contract term, not against a PO. Sage Intacct has no field that stores a surcharge's expiration date, so nothing in the exception workflow evaluates it.

A rebate tier crossed by cumulative volume is a calculation across an entire contract period, not a single invoice line. The system evaluates each bill independently; it does not track a running volume total against a rebate schedule.

A minimum-commitment clause that guarantees a floor payment regardless of usage requires comparing the invoice to a contract minimum that exists only in the signed agreement. None of these are technical limitations specific to Sage Intacct. They are a consequence of contract terms living outside any transactional system, structured or not.

## 5. Is a manual spot-check enough to close the gap?

**A manual review can close the gap for a small sample of invoices and a short list of contracts, but it does not scale to the volume a mid-market AP team processes across freight, contract labor, MRO, and professional services vendors simultaneously. Someone still has to read every contract, extract every rate and rebate term, and re-check it against every relevant invoice line, on a schedule that keeps pace with new billing. That is a data-extraction and matching problem, not.**

A spot-check catches what the reviewer happens to look at. It is bounded by however many hours a Controller or AP lead can spend outside normal close activity, and it typically covers whichever vendors are top of mind, not the full vendor file.

The work does not shrink over time either. Every contract renewal, rate amendment, or new surcharge schedule adds another term that has to be tracked manually, and nothing in Sage Intacct notices when a contract changes unless someone re-enters the new terms into the PO by hand.

A one-time retrospective review of 12 to 18 months of historical invoices against contract terms is a different exercise from configuring ongoing exception rules, and it requires reading the contracts rather than querying the transaction table.

## 6. How should a Controller combine ERP reporting with contract review?

**Treat Sage Intacct's exception reports as the first pass for structural, approval, and budget issues, and treat contract-to-invoice review as a separate exercise that answers a different question entirely: does the price on this invoice match what was actually negotiated. Running both means an AP team catches duplicate payments and workflow bottlenecks through the ERP, while a periodic or one-time contract audit catches rate drift, rebate leakage, and surcharge persistence the ERP was never set up to see.**

The two review types use different source documents and different cadences, so they work best assigned to different owners rather than folded into a single exception queue.

- **Keep native exceptions for structure:** Let Sage Intacct's PO matching, approval workflow, and duplicate detection continue handling what they already do well: catching structural problems in real time.

- **Extract contract terms separately:** Rate cards, rebate clauses, and surcharge schedules need to be pulled out of vendor contract PDFs and checked against invoice history line by line, independent of what the ERP flags.

- **Set a review cadence:** A contract-to-invoice review is not a one-time fix. Renewals and amendments mean the terms it checks against change, so the review needs a recurring schedule to stay current.

- **Decide who owns which gap:** Assign the structural exception queue to AP operations and the contract-compliance review to whoever owns vendor relationships, since the two require different source documents.

For the wider pattern this sits inside, start with the [margin drift](/insights/best-invoice-validation-software-smb) guide. See also [the six categories drift hides in](/insights/indirect-spend-audit-categories) and [what is margin erosion? causes and prevention for manufacturers](/insights/what-is-margin-erosion-causes-and-prevention-for).

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

### Does Sage Intacct flag duplicate invoices automatically?

Yes. Sage Intacct checks new bills against existing ones for matching invoice number, vendor, and amount, and can hold a match for review before posting. It does not catch the same charge submitted under a different invoice number, which still requires a manual or contract-level comparison.

### Can Sage Intacct track rebate clauses from a vendor contract?

No. Sage Intacct has no native field for a rebate clause or volume tier. A rebate term has to be tracked outside the system, typically by extracting it from the contract and comparing cumulative purchase volume against the tier threshold manually or through a separate audit process.

### What is the difference between a PO variance and a contract compliance issue?

A PO variance means the invoice does not match the purchase order Sage Intacct already has on file. A contract compliance issue means the invoice matches the PO, but the PO itself no longer reflects the price, rebate, or surcharge terms in the underlying vendor contract.

### Can approval workflow rules in Sage Intacct catch a stale rate card?

No. Approval workflow rules route a bill based on dollar thresholds, department, or vendor, not on whether the unit price still matches a contracted rate. A stale rate card can clear every approval step without triggering a hold.

### How often should a business re-check contract terms against Sage Intacct invoices?

There is no fixed interval that fits every contract. A practical approach ties the review to contract renewal dates and rate amendments, since those are the points where a rate card, rebate tier, or surcharge schedule most often changes.

### Does budget variance reporting in Sage Intacct catch overbilling?

Not reliably. Budget variance flags a GL account that exceeds its period budget, which is a spend-control signal. An overbilled invoice that still falls within budget will not trigger a variance flag, even though the price itself is wrong.

### Is a contract-to-invoice audit a one-time project or ongoing work?

A retrospective audit covering historical invoices is typically a fixed, one-time engagement. Keeping pace with new contracts and renewals afterward requires an ongoing process, whether that is a recurring manual review or a forward-looking control.

### Can dimensions in Sage Intacct be used to spot vendor-level drift?

Dimension reporting can group invoice totals by vendor, department, or entity, which helps spot a vendor whose spend is rising. It cannot determine whether that rise is legitimate volume growth or a pricing error, since dimensions describe where the spend sits, not whether the rate behind it is correct.

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

Sage Intacct's exception reporting runs on data it already holds: the purchase order, the goods receipt, the approval workflow, and the GL budget. Bill entry and purchasing approval rules can hold an invoice for missing a PO reference, exceeding a budget threshold, or duplicating an invoice number already in the system. Dimension-based reporting lets a Controller slice these holds by vendor, department, or entity in a dashboard or custom report. None of that reporting reaches a category of exception that never touches the ERP: an invoice that matches its purchase order exactly but violates a contract term the PO never captured. A rate card increase past its ceiling, a volume rebate never applied, a minimum-commitment surcharge charged twice. Sage Intacct has no field for a rebate clause, so it cannot flag its absence. Getting [a full exception picture](/insights/diagnostic-or-software-what-to-buy-first) means running two separate checks: the system-native report for structural and approval exceptions, and a contract-to-invoice review for terms the system was never given. The two are not substitutes for each other, and mixing them into one report set understates what is actually at risk.

## 1. What exception types does Sage Intacct report on natively?

Sage Intacct's AP and Purchasing modules report on structural and workflow exceptions: invoices without a matching purchase order, quantity or price variances against the PO line, invoices held in approval workflow, duplicate invoice numbers or amounts, and budget variance against a defined GL budget. Each is generated from data already inside the system: the PO, the receipt, the approval chain, and the budget record. These reports are reliable for what they check, but every one of them depends on the. Purchasing exception reports compare the bill against the purchase order line by line: unit price, quantity, and extended amount. A variance outside the configured tolerance routes the bill to a hold status rather than posting automatically. Approval workflow reporting shows which bills are stuck, at what approval level, and for how long. This is useful for AP cycle-time tracking but says nothing about whether the underlying charge is correct. Duplicate detection compares invoice number, vendor, and amount against bills already entered. It catches a literal resubmission. It does not catch the same charge billed under a different invoice number, which a vendor overbilling scenario often looks like. Budget variance reporting flags a GL account exceeding its period budget. That is a spend-control signal, not a contract-compliance one: a bill can be fully within budget and still be priced above the contracted rate.

## 2. Can Sage Intacct match an invoice against a contract rate card?

No. Sage Intacct matches an invoice against a purchase order and a receipt. It has no native object for a vendor contract's rate card, rebate tier, or surcharge schedule, so it cannot compare an invoice line against contract terms unless someone manually keyed those terms into the PO first. Most service contracts, including freight, contract labor, and maintenance agreements, live as PDFs outside the ERP entirely, which means the three-way match has nothing contract-based to check against. A purchase order in Sage Intacct carries a price and a quantity. It does not carry a volume tier that changes the price at a threshold, a rebate clause that pays money back after the fact, or a not-to-exceed cap on a labor rate. Three-way matching checks the invoice against the PO and the receipt. It does not test whether the PO price itself is still the correct contracted price twelve months into a multi-year agreement. This is not a Sage Intacct gap specifically. It is true of every ERP's native matching engine, because contract terms are negotiated in procurement or legal, stored as documents, and never entered as structured data anywhere the ERP can query.

## 3. How do you build a custom exception report in Sage Intacct?

Sage Intacct's custom reporting and dashboard tools let a Controller combine AP transaction data with dimensions such as vendor, department, project, and location, then filter for held, unposted, or variance-flagged bills. Saved reports can run on a schedule and export to a dashboard tile. This is the right tool for tracking exception volume and aging across the AP team, but it is still built entirely from data the system already has, so it inherits the same blind spot toward unstructured. A custom report definition draws only from fields that exist somewhere in the Sage Intacct data model. It can rearrange and filter that data in useful ways, but it cannot introduce a fact the system was never given. ### A. What a custom report can add A custom report can combine fields a standard report keeps separate: hold reason, vendor, dollar amount, and days outstanding in one view, filtered to a single entity or department. It can also compute a rolling total of held invoice value, which is useful for cash-flow forecasting during month-end close. ### B. What it cannot add No custom report definition can introduce a data field that does not exist in the system. If the rebate percentage on a vendor contract was never entered anywhere in Sage Intacct, no report, however cleverly filtered, can compare an invoice against it. The report can only be as complete as the underlying data model.

## 4. What exceptions does the system miss even when everything looks correct?

An invoice that matches its purchase order exactly, posts within budget, and clears approval can still violate the underlying contract. A surcharge that should have expired after 90 days but keeps recurring, a volume rebate tier crossed mid-year but never applied to pricing, and a minimum-commitment fee charged on top of actual usage all pass every native Sage Intacct check because none of those terms were ever represented as structured data the system could test. A surcharge clause with an expiration condition is a date test against a contract term, not against a PO. Sage Intacct has no field that stores a surcharge's expiration date, so nothing in the exception workflow evaluates it. A rebate tier crossed by cumulative volume is a calculation across an entire contract period, not a single invoice line. The system evaluates each bill independently; it does not track a running volume total against a rebate schedule. A minimum-commitment clause that guarantees a floor payment regardless of usage requires comparing the invoice to a contract minimum that exists only in the signed agreement. None of these are technical limitations specific to Sage Intacct. They are a consequence of contract terms living outside any transactional system, structured or not.

## 5. Is a manual spot-check enough to close the gap?

A manual review can close the gap for a small sample of invoices and a short list of contracts, but it does not scale to the volume a mid-market AP team processes across freight, contract labor, MRO, and professional services vendors simultaneously. Someone still has to read every contract, extract every rate and rebate term, and re-check it against every relevant invoice line, on a schedule that keeps pace with new billing. That is a data-extraction and matching problem, not. A spot-check catches what the reviewer happens to look at. It is bounded by however many hours a Controller or AP lead can spend outside normal close activity, and it typically covers whichever vendors are top of mind, not the full vendor file. The work does not shrink over time either. Every contract renewal, rate amendment, or new surcharge schedule adds another term that has to be tracked manually, and nothing in Sage Intacct notices when a contract changes unless someone re-enters the new terms into the PO by hand. A one-time retrospective review of 12 to 18 months of historical invoices against contract terms is a different exercise from configuring ongoing exception rules, and it requires reading the contracts rather than querying the transaction table.

## 6. How should a Controller combine ERP reporting with contract review?

Treat Sage Intacct's exception reports as the first pass for structural, approval, and budget issues, and treat contract-to-invoice review as a separate exercise that answers a different question entirely: does the price on this invoice match what was actually negotiated. Running both means an AP team catches duplicate payments and workflow bottlenecks through the ERP, while a periodic or one-time contract audit catches rate drift, rebate leakage, and surcharge persistence the ERP was never set up to see. The two review types use different source documents and different cadences, so they work best assigned to different owners rather than folded into a single exception queue. 1. Keep native exceptions for structure: Let Sage Intacct's PO matching, approval workflow, and duplicate detection continue handling what they already do well: catching structural problems in real time. 2. Extract contract terms separately: Rate cards, rebate clauses, and surcharge schedules need to be pulled out of vendor contract PDFs and checked against invoice history line by line, independent of what the ERP flags. 3. Set a review cadence: A contract-to-invoice review is not a one-time fix. Renewals and amendments mean the terms it checks against change, so the review needs a recurring schedule to stay current. 4. Decide who owns which gap: Assign the structural exception queue to AP operations and the contract-compliance review to whoever owns vendor relationships, since the two require different source documents. For the wider pattern this sits inside, start with the [margin drift](/insights/best-invoice-validation-software-smb) guide. See also [the six categories drift hides in](/insights/indirect-spend-audit-categories) and [what is margin erosion? causes and prevention for manufacturers](/insights/what-is-margin-erosion-causes-and-prevention-for).

## Common questions

### Does Sage Intacct flag duplicate invoices automatically?

Yes. Sage Intacct checks new bills against existing ones for matching invoice number, vendor, and amount, and can hold a match for review before posting. It does not catch the same charge submitted under a different invoice number, which still requires a manual or contract-level comparison.

### Can Sage Intacct track rebate clauses from a vendor contract?

No. Sage Intacct has no native field for a rebate clause or volume tier. A rebate term has to be tracked outside the system, typically by extracting it from the contract and comparing cumulative purchase volume against the tier threshold manually or through a separate audit process.

### What is the difference between a PO variance and a contract compliance issue?

A PO variance means the invoice does not match the purchase order Sage Intacct already has on file. A contract compliance issue means the invoice matches the PO, but the PO itself no longer reflects the price, rebate, or surcharge terms in the underlying vendor contract.

### Can approval workflow rules in Sage Intacct catch a stale rate card?

No. Approval workflow rules route a bill based on dollar thresholds, department, or vendor, not on whether the unit price still matches a contracted rate. A stale rate card can clear every approval step without triggering a hold.

### How often should a business re-check contract terms against Sage Intacct invoices?

There is no fixed interval that fits every contract. A practical approach ties the review to contract renewal dates and rate amendments, since those are the points where a rate card, rebate tier, or surcharge schedule most often changes.

---

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
