Catalog Variances

Monitor price variances between catalog prices and invoice items

Catalog variances help you identify pricing discrepancies between your catalog prices and actual invoice charges. Ottimate calculates the variance by comparing the invoiced price against the effective catalog price (accounting for any applicable allowances).

A positive variance indicates overbilling (invoice price higher than expected), while a negative variance indicates underbilling (invoice price lower than expected).

Common Workflows

  1. Fetching Purchase History for a Catalog Entry - Get invoice items and purchase history for a specific catalog item
  2. Listing Catalog Variances - Retrieve catalog entries with price variance summaries

Fetching Purchase History for a Catalog Entry

The most common use case is retrieving all invoice items associated with a specific catalog entry. This provides a convenient way to get the complete purchase history for any catalog item, including pricing details and variance information.

Endpoint

1GET /v1/catalog/variances/{id}/invoice-items

Example Request

1GET /v1/catalog/variances/cte_12345/invoice-items?page=1&limit=20

Response

1{
2 "count": 5,
3 "results": [
4 {
5 "id": 98765,
6 "invoice_id": 54321,
7 "item_name": "Roma Tomatoes 6CT",
8 "price": 27.5,
9 "quantity": 10,
10 "invoice_date": "2024-12-01",
11 "price_variance": 2.51,
12 "effective_price": 24.99
13 },
14 {
15 "id": 98760,
16 "invoice_id": 54310,
17 "item_name": "Roma Tomatoes 6CT",
18 "price": 26.99,
19 "quantity": 12,
20 "invoice_date": "2024-11-15",
21 "price_variance": 2.0,
22 "effective_price": 24.99
23 }
24 ]
25}

Path Parameters

ParameterTypeRequiredDescription
idStringYesThe catalog entry ID (e.g., cte_12345)

Query Parameters

ParameterTypeRequiredDescription
pageIntegerNoPage number for pagination
limitIntegerNoNumber of results per page

Invoice Item Fields

FieldDescription
idOttimate-generated ID for the invoice line item
invoice_idOttimate-generated invoice identifier. Use with GET /v1/invoices/{invoice_id} for full details
item_nameItem name extracted from the invoice
priceActual item price on the invoice
quantityQuantity purchased
invoice_dateDate of the invoice
price_varianceDifference between invoice price and effective catalog price. Positive = overbilling, negative = underbilling
effective_priceCatalog price minus any applicable allowances and discounts

Listing Catalog Variances

Retrieve catalog entries with aggregated price variance information from invoice items. By default, returns all items that had purchases in the specified period, including items with zero variance.

Endpoint

1GET /v1/catalog/variances

Example Request

1GET /v1/catalog/variances?ottimate_company_id=15196&variance_only=true&page=1&limit=20

Response

1{
2 "count": 15,
3 "results": [
4 {
5 "id": "12345",
6 "ottimate_company_id": 15196,
7 "item_name": "Roma Tomatoes 6CT",
8 "price": 27.0,
9 "unit_price": 4.5,
10 "pack_size": "6 CT",
11 "case_size": "6 CT",
12 "erp_vendor_name": "Sysco Foods",
13 "last_invoice_item": {
14 "id": 98765,
15 "price": 27.5,
16 "invoice_date": "2024-12-01",
17 "price_variance": 2.51,
18 "effective_price": 24.99
19 }
20 },
21 {
22 "id": "12346",
23 "ottimate_company_id": 15196,
24 "item_name": "Chicken Breast 10lb Case",
25 "price": 90.0,
26 "unit_price": 8.99,
27 "pack_size": "10 LB",
28 "case_size": "10 LB",
29 "erp_vendor_name": "US Foods",
30 "last_invoice_item": {
31 "id": 98766,
32 "price": 85.0,
33 "invoice_date": "2024-11-28",
34 "price_variance": -4.99,
35 "effective_price": 89.99
36 }
37 }
38 ]
39}

Query Parameters

ParameterTypeRequiredDescription
ottimate_company_idIntegerYesThe Ottimate-assigned company ID
variance_onlyBooleanNoIf true, returns only entries with non-zero variance. Default: false
erp_vendor_idsStringNoComma-separated ERP vendor IDs to filter variances by vendor
exception_typeStringNoFilter by variance type: "underbilling" or "overbilling"
expandStringNoUse expand=invoice_items to include all invoice items inline (otherwise only most recent shown)
pageIntegerNoPage number for pagination
limitIntegerNoNumber of results per page

Response Fields

FieldDescription
idCatalog entry ID
ottimate_company_idCompany ID this catalog entry belongs to
item_nameItem description from catalog
skuSKU code from the catalog entry
upcUPC code from the catalog entry
priceCatalog pack price
unit_priceCatalog unit price
pack_sizePack size configuration
case_sizePack size used for unit conversion
erp_vendor_nameERP-assigned vendor name
last_invoice_itemMost recent invoice item with variance details (see below)
invoice_itemsAll invoice items for this catalog entry (up to 10, with pagination metadata). Only included when expand=invoice_items is passed — otherwise only last_invoice_item is returned.

Last Invoice Item Object

FieldDescription
idInvoice item ID
priceActual price charged on the invoice
invoice_dateDate of the invoice
price_varianceDifference between invoice price and effective catalog price
effective_priceCatalog price adjusted for applicable allowances

Understanding Price Variance

Price variance is calculated as:

price_variance = invoice_price - effective_price

Where effective_price is the catalog price adjusted for any applicable allowances.

Variance ValueMeaningExample
Positive (e.g., 2.51)Overbilling - you were charged more than the catalog priceInvoice: 27.50,Catalog:27.50, Catalog: 24.99
Negative (e.g., -4.99)Underbilling - you were charged less than the catalog priceInvoice: 85.00,Catalog:85.00, Catalog: 89.99
Zero or nullNo variance - invoice matches catalog priceInvoice: 24.99,Catalog:24.99, Catalog: 24.99

  • Catalog Entries - Manage catalog entries and sync inventory data
  • Allowances - Configure allowances that affect effective pricing
  • Invoices API - Work with invoice data and matched catalog entries