# SAP Three-Way Match and Invoice Tolerance Calculator

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

## Short answer

Enter PO price, received quantity, invoice quantity and price, and tolerance to see price and quantity variances and whether the invoice would block.

## Category

sap

## Erp

SAP S/4HANA

## Audience

- Accounts payable
- SAP MM consultant
- Buyer

## Tool

**Kind:** calculator

**Currency:** $

**Inputs:**

#### PO net price per unit

**Key:** po_price

**Type:** number

**Default:** 12.5

**Min:** 0

**Step:** 0.01

**Help:** Price on the purchase order item

#### Quantity received (goods receipt)

**Key:** recv_qty

**Type:** number

**Default:** 100

**Min:** 0

**Step:** 1

**Unit:** units

#### Quantity on invoice

**Key:** inv_qty

**Type:** number

**Default:** 100

**Min:** 0

**Step:** 1

**Unit:** units

#### Invoice price per unit

**Key:** inv_price

**Type:** number

**Default:** 12.9

**Min:** 0

**Step:** 0.01

#### Price variance tolerance

**Key:** price_tol

**Type:** number

**Default:** 2

**Min:** 0

**Max:** 100

**Step:** 0.5

**Unit:** %

**Help:** Upper limit in percent (like a PP tolerance key)

#### Quantity variance tolerance

**Key:** qty_tol

**Type:** number

**Default:** 0

**Min:** 0

**Max:** 100

**Step:** 0.5

**Unit:** %

**Help:** Allowed excess over received quantity (like a DQ tolerance key)

**Outputs:**

#### Value at PO price for received quantity

**Key:** gr_value

**Expr:** recv_qty * po_price

**Format:** currency

#### Invoice value

**Key:** inv_value

**Expr:** inv_qty * inv_price

**Format:** currency

#### Value difference (invoice minus received)

**Key:** var_value

**Expr:** inv_value - gr_value

**Format:** currency

**Primary:** true

#### Price variance

**Key:** price_var_pct

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

**Format:** percent

#### Quantity over received

**Key:** qty_excess_pct

**Expr:** max(inv_qty - recv_qty, 0) / max(recv_qty, 1) * 100

**Format:** percent

#### Price check (1 = outside tolerance)

**Key:** price_block

**Expr:** gt(price_var_pct, price_tol)

**Format:** number

#### Quantity check (1 = outside tolerance)

**Key:** qty_block

**Expr:** gt(qty_excess_pct, qty_tol)

**Format:** number

#### Invoice would block (1 = yes, 0 = no)

**Key:** blocked

**Expr:** if(or(price_block, qty_block), 1, 0)

**Format:** number

**Primary:** true

**Description:** 1 means the invoice would typically be blocked for payment until released.

**Disclaimer:** Simplified model. Real SAP tolerance keys include several checks (price variance, quantity variance, small differences, order price quantity variance), absolute and percentage limits and upper and lower bounds. Confirm your limits in customizing (transaction OMR6).

## Content

**Intro:** Three-way match compares the purchase order, the goods receipt and the vendor invoice before payment. This calculator models the price and quantity checks so you can see why an invoice blocks in SAP before you try to fix it.

**Sections:**

#### How to use the calculator

**Body:** Enter the PO price, quantity received and the figures from the vendor invoice, then set your price and quantity tolerance in percent. The tool calculates the value difference, price variance percentage and the quantity billed beyond what was received. It then indicates whether the invoice would exceed tolerance. Use it to explain a blocked invoice to a buyer or to test whether a proposed tolerance is too tight or too loose.

#### The method behind it

**Body:** In logistics invoice verification, MIRO compares invoice quantity to the quantity still to be invoiced, which is the goods receipt quantity less what is already invoiced, and compares invoice price to the order price. Tolerance keys define the allowed variance, with separate keys such as price variance (PP) and quantity variance (DQ). If a variance exceeds the limit, the system blocks the invoice for payment, and someone releases it in MRBR after checking.

**Bullets:**

- Price variance = |invoice price - PO price| / PO price
- Quantity excess = invoiced quantity above received quantity
- Blocked invoices are released in MRBR
- Limits are set in customizing, not by the buyer

#### Reading results and common mistakes

**Body:** A value difference with no price or quantity variance usually means a rounding or price unit issue. Invoices that block on quantity often mean the goods receipt was not yet posted, so check timing before changing tolerances. Setting tolerances too wide hides pricing errors, while too tight produces blocked invoices that burn accounts payable time. Also remember that real tolerance rules can combine absolute and percentage limits, so use this tool as an explainer rather than a replica.

**Cta:** If blocked invoices and GR/IR differences eat accounts payable time, we can build read-only monitoring over your SAP data that flags the cause for each blocked invoice.

**Faq:**

#### What is three-way match?

**Answer:** It is the control that compares the purchase order, the goods receipt and the vendor invoice. If price and quantity agree within tolerance, the invoice can be paid. Otherwise the invoice is blocked or rejected until a person decides what to do.

#### Where are tolerances configured in SAP?

**Answer:** In customizing for invoice verification, tolerance limits are defined per tolerance key and company code, commonly reached with transaction OMR6. Keys cover price variance, quantity variance, small differences and similar checks.

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

**Answer:** Use transaction MRBR to list invoices blocked for payment, review the reason, and release them if the variance is acceptable. Authorization for release should be restricted and separate from the people who enter invoices.

#### Does this match SAP exactly?

**Answer:** No. It models percentage price and quantity checks only. SAP tolerance keys can also use absolute amounts and different upper and lower limits, and other checks apply, such as order price quantity. Use it for explanation, then confirm in your configuration.

## Search terms

sap three way match, sap invoice tolerance miro, sap invoice blocked for payment, sap price variance tolerance omr6, sap miro quantity variance, three way match calculator, sap release blocked invoices mrbr, sap tolerance key pp dq

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