top of page
Search

Your Tolerances Are Teaching Suppliers and Buyers

  • Beau Schwieso
  • 4 days ago
  • 5 min read

Somewhere in every ERP implementation, a well-meaning person says: “Just widen the tolerances so invoices stop failing.”


And it works. For about five minutes.

Because tolerances are not a technical setting. They are a behavioral policy.


They teach suppliers what they can get away with, and they teach your buyers what they no longer have to care about. You might call it efficiency. Your AP team will call it “Tuesday.” Your controller will call it “Why did our material costs creep up without anyone noticing?”


In manufacturing, this gets extra spicy because the volume is high, the variability is real, and the downstream consequences are expensive. A one percent drift on a high-volume raw material is not a rounding error. It is a quiet margin haircut.


The point of invoice matching is not to block the business. It is to keep the business honest, moving, and measurable. If your tolerances reduce exceptions but increase leakage, you did not fix a process. You just changed where the pain shows up.


And yes, I am going to say it out loud: if your solution to match failures is “make the system stop complaining,” you are not improving Procure-to-Pay. You are lowering the smoke alarm volume.

What D365 invoice matching actually does (and why it matters)

Dynamics 365 Finance treats invoice matching as comparing vendor invoices to purchase orders and, optionally, product receipts. Discrepancies are evaluated against tolerances, and when a discrepancy exceeds tolerance you see variance indicators on the invoice pages.

D365 gives you a few different “layers” of matching, and they stack:

  1. Invoice totals matching - Matches expected totals to actual totals. It is higher-level control and lower detail.

  2. Two-way matching - Matches invoice to PO pricing. No receipt quantity involvement.

  3. Three-way matching - Matches invoice pricing to PO pricing and matches invoice quantity to received quantity (product receipt).

  4. Price totals matching - Useful when multiple invoices hit the same PO line. D365 can compare invoice line net amounts (including pending and previously posted invoice lines) to the PO line net amount and evaluate variance by percent and or amount.

  5. Charges matching - Compares charge totals per charge code, using a tolerance percentage, and it only applies to charge codes configured for comparison.


And the operational kicker: invoice matching can update automatically during invoice entry, or be triggered manually depending on parameter settings. Microsoft even calls out that automatic updates are recommended unless you have performance concerns, and that disabling automatic updates means users must manually refresh match status to see results.


This matters because “how often the system checks” becomes part of the culture. If mismatches do not surface quickly, they become normalized.


The phrase “tolerances train behavior” is not a metaphor

Here is what happens in the real world.


Suppliers learn your tolerance boundary

If they discover that:

  • small unit price increases still pass

  • “freight” can be slapped on as a charge and still pass

  • partials and substitutions do not trigger real pushback


They adapt. Not maliciously. Efficiently. They stop spending time being precise because you stopped requiring precision.

Your internal teams learn the same boundary

Buyers and requesters also adapt:

  • PO accuracy becomes “good enough” because AP will clear it

  • change control gets sloppy because matching will “handle it”

  • receiving discipline drops because exceptions are “normal”


Once that happens, you are no longer using controls to keep the business moving safely. You are using settings to avoid hard conversations.


Manufacturing: where tolerances either protect you or quietly tax you

Manufacturing has a few realities that make invoice matching tolerances both necessary and dangerous.


Direct materials with real volatility

Metals, resins, chemicals, lumber, components tied to indexes, surcharges, and fuel. If you use tolerance to absorb volatility instead of using pricing agreements, vendor price updates, or disciplined PO change control, you will pay more than you planned and you will not notice until the month-end postmortem.


Partial receipts are normal

If three-way matching depends on product receipts and your receiving process is delayed because of quality inspection, staging constraints, or labor shortages, invoices will arrive first. Then your team feels pressure to “allow with warning” and move on. D365 explicitly supports controlling whether invoices with discrepancies can be posted and how workflow interacts with that choice.


Charges are where leakage hides

Expedite fees, minimum order fees, packaging, hazmat, restocking, energy surcharges, “handling.” D365 supports charges matching with tolerances by charge code, but only if you configure charge codes to be compared. If you do not treat charges as first-class citizens, they become a junk drawer.


Multi-invoice reality

Suppliers split shipments, split invoices, and do progress billing. Price totals matching exists for a reason. It helps when multiple invoices are posted against the same PO line, and it evaluates cumulative variance against tolerances.


The failure modes that show up when tolerances are wrong

These are the ones I see most in manufacturing. Not theoretical. These are the actual reasons match rates fall and leakage rises.


1) Price creep that never trips a failure

Your tolerance absorbs “small” increases. Suppliers repeat them. You just created subscription pricing for your raw materials.


2) Buyers use tolerance as change control

Instead of updating POs when requirements change, they rely on tolerances to get the invoice through.


3) Invoice before receipt becomes the default process

This is usually a receiving discipline issue disguised as an AP parameter decision.


4) UOM and price unit mismatches

The invoice is “right” in vendor logic and wrong in your item setup. Tolerance hides it until it becomes a cost variance pattern.


5) Charge code chaos

Freight is sometimes a header charge, sometimes a line, sometimes embedded, sometimes a separate invoice. If your charge strategy is inconsistent, matching becomes noise.


6) “Allow with warning” becomes “allow forever”

D365 allows workflows plus warnings, but if warnings do not trigger accountability, they are decorative.


7) Quantity variances get normalized

Over-ship and under-ship variances pass, and now inventory accuracy and production planning suffer.


8) Multiple invoices against one PO line without a strategy

This is why price totals matching exists, but teams often do not configure it intentionally.


9) Receipts are posted late, but payments are on time

Finance feels good. Operations pays the price.


10) Vendors learn which exceptions you never enforce

If a supplier sees that you never push back on expedite charges, congratulations, you now buy expedite.


11) Different tolerance rules by site that no one can explain

You can override matching policy by vendor, item, combination, and even purchase order depending on configuration. That flexibility is powerful, and also a fast path to inconsistency if governance is weak.


12) People confuse invoice matching validation with vendor invoice policies

Invoice matching validation is set up in Accounts payable parameters. Vendor invoice policies are separate and do not apply the same way to all invoice entry methods. If you mix these concepts, you end up with controls that look strong and behave unpredictably.


DynamicsDad sign-off: If your match rate improves because you stopped checking, congratulations. You did not fix Procure-to-Pay. You just taught it to lie with confidence.


DynamicsDad

 
 
 

Comments


bottom of page