# SAP Invoice Verification Tolerance Calculator

> Source: https://netray.co/tools/sap-invoice-verification-tolerance-calculator
> Publisher: Netray (netray.co), AI and integration engineering for ERP and manufacturing systems.
> Section: Free Tools

## Short answer

Simulates the price and quantity variance checks behind MIRO invoice blocks so you can test tolerance limits before changing OMR6.

## Category

sap

## Erp

SAP S/4HANA

## Audience

- SAP MM consultant
- Accounts payable
- Buyer
- Procurement analyst

## Tool

**Kind:** calculator

**Currency:** $

**Inputs:**

#### PO net price per unit

**Key:** po_price

**Type:** number

**Default:** 100

**Min:** 0

**Step:** 1

**Unit:** $

#### Invoice price per unit

**Key:** inv_price

**Type:** number

**Default:** 104

**Min:** 0

**Step:** 1

**Unit:** $

#### Invoiced quantity

**Key:** inv_qty

**Type:** number

**Default:** 100

**Min:** 0

**Step:** 1

**Unit:** units

#### Quantity received and not yet invoiced

**Key:** gr_qty

**Type:** number

**Default:** 98

**Min:** 0

**Step:** 1

**Unit:** units

**Help:** Goods receipt quantity less quantity already invoiced.

#### Price tolerance upper limit

**Key:** price_tol_pct

**Type:** number

**Default:** 5

**Min:** 0

**Max:** 100

**Step:** 0.5

**Unit:** %

**Help:** Percentage limit in tolerance key PP.

#### Price tolerance absolute limit

**Key:** price_tol_abs

**Type:** number

**Default:** 500

**Min:** 0

**Step:** 10

**Unit:** $

**Help:** Absolute limit in the same tolerance key.

#### Quantity tolerance upper limit

**Key:** qty_tol_pct

**Type:** number

**Default:** 2

**Min:** 0

**Max:** 100

**Step:** 0.5

**Unit:** %

**Help:** Percentage limit for invoiced quantity over received quantity.

**Outputs:**

#### Price variance value

**Key:** price_var_value

**Expr:** (inv_price - po_price) * inv_qty

**Format:** currency

#### Price variance

**Key:** price_var_pct

**Expr:** (inv_price - po_price) / po_price * 100

**Format:** percent

**Primary:** true

#### Price block triggered (1 = yes)

**Key:** price_block

**Expr:** if(or(gt(price_var_pct, price_tol_pct), gt(price_var_value, price_tol_abs)), 1, 0)

**Format:** integer

#### Quantity over received

**Key:** qty_excess

**Expr:** max(0, inv_qty - gr_qty)

**Format:** integer

#### Quantity excess

**Key:** qty_excess_pct

**Expr:** qty_excess / gr_qty * 100

**Format:** percent

#### Quantity block triggered (1 = yes)

**Key:** qty_block

**Expr:** if(gt(qty_excess_pct, qty_tol_pct), 1, 0)

**Format:** integer

#### Invoice amount blocked for payment

**Key:** blocked_amount

**Expr:** if(or(price_block, qty_block), inv_qty * inv_price, 0)

**Format:** currency

**Primary:** true

**Chart:**

#### Price variance value vs invoice price

**Type:** line

**X:** inv_price

**From:** 90

**To:** 120

**Steps:** 30

**Series:**

- price_var_value

**Disclaimer:** A simplified model of tolerance checks. The real behaviour depends on your OMR6 settings, tolerance keys, whether limits are conditional, and the PO's evaluated receipt settlement. Test in a sandbox client before changing production tolerances.

## Content

**Intro:** When a supplier invoice does not match the purchase order and goods receipt, MIRO blocks it for payment if the variance exceeds the tolerance limits configured in transaction OMR6. This calculator lets you test a variance against limits and see what would be blocked.

**Sections:**

#### How to use the calculator

**Body:** Enter the PO price, the invoice price and the invoiced quantity. Enter the quantity received that has not yet been invoiced, then set your percentage and absolute price tolerances and the quantity tolerance. The tool shows the price variance in value and percent, whether the price check would trip, the excess quantity beyond the receipt, and the amount that would be held for payment. Use the chart to see how far the invoice price can drift before the absolute limit trips.

**Bullets:**

- Take limits from OMR6 for your company code
- Use unrestricted receipts not yet invoiced
- Test several scenarios before editing limits

#### The logic

**Body:** SAP checks each invoice item against tolerance keys. Price variance (key PP) compares the invoice price with the PO price times invoiced quantity, against an upper limit expressed as an absolute amount and a percentage. If either limit is exceeded the item is blocked. Quantity variance compares invoiced quantity with the quantity received less quantity already invoiced, again against absolute and percent limits. A blocked invoice is posted but flagged, and must be released via MRBR before payment. Each limit left empty means no tolerance for that check in many setups, so confirm how yours behaves.

#### Reading the results

**Body:** If a price block triggers, ask whether the PO price is wrong, the invoice is wrong or a condition is missing. Fix price at source rather than raising tolerances, because loose limits let real errors slip through. If the quantity check triggers, the supplier has billed more than you received, so verify the receipt before releasing. Use the blocked amount to prioritise your MRBR queue by value.

#### Common mistakes

**Body:** Teams often raise tolerances to clear a backlog of blocked invoices, which hides root causes such as outdated info record prices. Another mistake is forgetting that tolerances are defined per company code and per tolerance key, so a limit that works for one entity can be wrong for another. Finally, remember that goods receipt based invoice verification and evaluated receipt settlement change which price is compared.

**Bullets:**

- Fix price master data first
- Keep a log of OMR6 changes
- Review top blocked suppliers monthly

**Cta:** Netray can analyse your blocked invoice history and show which suppliers and materials cause repeated variances, so you can fix the cause rather than the tolerance.

**Faq:**

#### Where do I set invoice tolerances in SAP?

**Answer:** In transaction OMR6 (Maintain Tolerance Limits in Invoice Verification), per company code and tolerance key such as PP for price variance and DQ for quantity variance. Customizing is under Materials Management, Logistics Invoice Verification.

#### How do I release a blocked invoice?

**Answer:** Use transaction MRBR to release invoices blocked for payment, after checking the reason. A release authorisation is required, and the block reason is shown per document.

#### Does a tolerance block stop the invoice posting?

**Answer:** Normally the invoice posts but is blocked for payment, so the liability exists and the payment run skips it. Stochastic blocks and manual blocks work in a similar way with different reason indicators.

#### Should I set tolerances to zero?

**Answer:** Zero tolerance maximises control but creates many small blocks from rounding and freight. Most companies set small percent limits plus an absolute cap, then review blocked items for patterns.

## Search terms

sap miro invoice blocked tolerance, sap omr6 tolerance limits, sap price variance tolerance, sap invoice verification tolerance key pp, sap quantity variance invoice block, sap three way match tolerance, sap blocked invoices mrbr

---
Talk to an engineer: https://netray.co/contact?intent=erp_ai | Machine catalog: https://netray.co/agent/catalog.json
