# Before you compare a supplier price list

A practical checklist from Bench & Branch for a prepared catalog price comparison.

## 1. Agree the whole question

Are you comparing one current-price feed with one supplier-price feed? Name their roles first. This review produces a comparison and summary; it does not change a store, decide selling prices or certify an import file. If the whole job needs a different service, assess that scope first.

## 2. Preserve the originals

Keep an untouched copy of both feeds. Every finding should trace back to a supplied record. Source references count **logical CSV records**, with the header as record 1; they are not necessarily physical text lines.

## 3. Check the supported format

For this specific comparison, both files must be comma-separated UTF-8 CSV **without a BOM**, with the exact header:

`sku,currency,price`

Use exactly `USD` and plain nonnegative decimal prices. Zero is valid. Limits are **500 data records and 10,000,000 bytes per file**, with up to **2,000 characters per field** and no NUL. Quoted commas, newlines and Unicode are supported when correctly quoted.

Do not silently truncate, remap columns, repair values, extract a PDF or convert currencies to make a job appear supported.

## 4. Protect SKU identity

Keep leading zeroes, letter case and meaningful surrounding whitespace. `0007` and `7` are different SKUs. Avoid spreadsheet conversions that erase those distinctions. Do not use fuzzy matching or select a convenient match among duplicates.

## 5. Separate zero from unavailable

Duplicate or invalid records need explicit exceptions. A current-only item is MISSING; a supplier-only item is NEW. Neither status authorizes deletion or creation. An unavailable price or difference stays empty in the CSV / null in JSON, not zero.

In the [fictional exercise](demo.html), `7` has a known difference of `0.00`. The two unmatched items have null differences. These are different findings.

## 6. Apply the stated rounding rule

The supported rule rounds **each valid price HALF_UP to cents before comparing** rounded new minus rounded old. The retained example reports `0007` as `1.23` → `1.25`, with difference `0.02`.

Use the [original example result](evidence/result.json), not a guessed calculation or rewritten report.

## 7. Review coverage before acting

Ask which supplied records were accounted for, which comparisons are available and which remain excluded or ambiguous. The example accounts for six input records in four preview rows; it does not establish a full real-world catalog total or completeness. No duplicates or invalid records occur in this fixture, so it does not illustrate every exception.

Keep the original comparison, readable summary and sources together. Review the findings before any manual price edit.

## Start with a description

Describe the approximate row counts, formats and result you need to understand. **Do not send files, confidential records, credentials or payment details in the initial enquiry.** Confirm that you are authorized to supply the data. Agree the complete scope and actual transfer, access, copies and retention arrangements before real data. Local arithmetic does not make every transfer or provider copy offline.

[Describe your question through the Bench & Branch homepage](https://bench-and-branch.pages.dev/).

**Bench & Branch** · Fictional educational example, not a customer result, savings guarantee, audit or professional approval.

Sources: the [original summary](evidence/summary.md), [current feed](evidence/current.csv) and [supplier feed](evidence/supplier.csv). This is not a new price, delivery commitment or permission to submit files.
