The headline question — is the same SKU being sold at materially different prices, and is that variance defensible? — has an unusually clean answer in this business: virtually all price variance is rational segmentation. Every SKU trades within a 6% band, and that band decomposes into exactly five discrete price tiers that are a deterministic function of line quantity. Across 3,236 lines and 23.7 months, exactly one line violates the schedule — and it runs in the company's favor (+$59.99).
The margin story is different. Because transactional discipline is airtight, the margin variance that exists is structural, not behavioral: it lives at the SKU level, not the deal level. Fourteen SKUs earn gross margins 15–46 points below their category medians — driven by supplier cost increases that were never passed through to list price. The Estes Park Chair now earns 2.6% gross margin; at its deepest volume tier it would sell below cost. Re-anchoring these 14 SKUs to defensible category medians is worth $24.8K–$63.4K of annualized gross profit, against ~$123K of annualized revenue on those SKUs.
Every product line on every invoice and cash sale was expressed as a ratio of its unit price to the SKU's list price (the maximum observed sold price — validated against the tier structure). The entire dataset collapses into five discrete points with no scatter between them:
| Tier | Line Quantity | Price (% of list) | Lines | Revenue | Gross Margin | Channel |
|---|---|---|---|---|---|---|
| T1 — List | 1 – 4 units | 100% | 1,800 | $412,642 | 46.5% | Retail stores (SF, NY) + invoice |
| T2 | 5 – 9 units | 97% | 550 | $960,433 | 43.3% | Wholesale (LA DC, Miami) |
| T3 | 10 – 14 units | 96% | 388 | $389,841 | 41.7% | Wholesale |
| T4 | 15 – 19 units | 95% | 232 | $182,845 | 39.4% | Wholesale |
| T5 | 20+ units | 94% | 265 | $159,563 | 45.8% | Wholesale |
| Violation | 20 units @ 100% | 100% | 1 | $1,000 | 40.0% | INV03 — see Finding A |
INV03 · Jul 25, 2026 · Susan Adams (no rep) · 20 × INV_Grey Cotton Hoodie @ $49.99 (list) — the quantity earned the 94% tier ($46.99/unit). The customer was overcharged $59.99. This is also the only product line in the dataset with a null location, indicating a manually keyed invoice that bypassed the pricing engine. Immaterial in dollars; material as a control observation — manual entry is the one door that bypasses the schedule.
Stores (San Francisco loc 1, New York loc 3) transact 100% at list — every one of their 1,592 lines. The LA Distribution Center (loc 5) and Miami (loc 12) show 94–97% realization. This is not regional pricing: DCs take 5–35-unit wholesale orders and earn quantity breaks; stores ring 1–4-unit tickets. Within every location, tier tracks quantity exactly. Geography adds zero explanatory power once quantity is known.
| Sales Rep | Customers | Lines | Revenue | Realized % of List | Gross Margin |
|---|---|---|---|---|---|
| Tim Dietrich | 10 | 890 | $1,010,733 | 96.46% | 43.4% |
| Matt Fisher | 4 | 680 | $717,793 | 96.72% | 42.6% |
| Joel Williams | 2 | 74 | $124,567 | 96.66% | 40.7% |
| (No rep — retail walk-in) | 66 | 1,607 | $254,616 | 100.00% | 47.3% |
| Customer (top 12 by revenue) | Rep | Revenue | % of List | Margin |
|---|---|---|---|---|
| Jones Manufacturing | T. Dietrich | $316,493 | 96.64% | 41.8% |
| Design Excellence Ltd. | T. Dietrich | $238,487 | 96.06% | 43.6% |
| Panaderia Co. | M. Fisher | $224,003 | 97.20% | 45.1% |
| Pineapple Republic | M. Fisher | $203,434 | 97.25% | 41.4% |
| Davis Supplies | T. Dietrich | $194,680 | 97.39% | 45.8% |
| Realpoint inc. | M. Fisher | $158,750 | 96.17% | 39.9% |
| Recreational Outfitters | M. Fisher | $131,606 | 95.75% | 43.4% |
| Marshall Industries | J. Williams | $121,567 | 96.58% | 40.6% |
| Hugo Limited | T. Dietrich | $77,964 | 94.88% | 47.4% |
| Karmabit | T. Dietrich | $64,433 | 94.80% | 39.0% |
| Entenmanns LLC | T. Dietrich | $60,376 | 97.94% | 45.3% |
| Blockster Inc. | T. Dietrich | $52,750 | 96.17% | 38.4% |
Each line's gross margin (net amount − costestimate) was compared to its SKU's median line margin. Result: not a single line falls more than 5 percentage points below its SKU's median — at either a 10-point or 5-point threshold, the outlier set is empty. There are no fire-sale deals, no margin-destructive one-offs, no quiet exceptions. Whatever margin variance exists within a SKU comes from the 3–6% tier schedule and from unit-cost changes over time — not from pricing behavior.
Realized price as a % of list is flat across the entire window — between 96.4% and 97.9% every single month, with no trend. Discounting is not deepening; the tier schedule has not crept.
23 SKUs show unit-cost variation greater than 5% within the window. Where cost rose and list price did not follow, margin compressed silently. Two exemplars:
With transactional leakage ruled out, the defensible benchmark shifts from "SKU median line" to "category median SKU margin" — Apparel 46.2%, Beauty 51.9%, Home & Decor 48.6% (medians across 121 SKUs). Fourteen SKUs sit ≥15 points below their category median. These are pricing-file problems: cost moved, price didn't.
| SKU | Category | Ann. Revenue | Current Mgn | Cat. Median | Gap (pts) | Uplift @ Half-Gap | Uplift @ Median |
|---|---|---|---|---|---|---|---|
| INV_Estes Park Chair | Home & Decor | $12,969 | 2.6% | 48.6% | −46.0 | $4,015 | $11,615 |
| INV_The Bindel Jacket | Apparel | $16,383 | 10.5% | 46.2% | −35.7 | $4,082 | $10,872 |
| INV_The Gentleman | Beauty | $18,267 | 27.7% | 51.9% | −24.2 | $3,657 | $9,172 |
| INV_Brown Leather Satchel | Apparel | $19,495 | 22.7% | 46.2% | −23.5 | $3,491 | $8,511 |
| INV_Black Leather Jacket | Apparel | $18,646 | 28.7% | 46.2% | −17.5 | $2,605 | $6,061 |
| INV_Salida Backpack BU | Apparel | $5,728 | 17.1% | 46.2% | −29.1 | $1,219 | $3,098 |
| INV_Basil Lemon Hand Wash | Beauty | $7,445 | 32.0% | 51.9% | −19.9 | $1,270 | $3,073 |
| INV_Salida Backpack GR | Apparel | $5,339 | 17.1% | 46.2% | −29.1 | $1,134 | $2,884 |
| INV_Pro Essentials Brush Set | Beauty | $3,060 | 25.4% | 51.9% | −26.5 | $661 | $1,686 |
| LOT_Aqua True Cream | Beauty | $4,015 | 34.3% | 51.9% | −17.6 | $621 | $1,470 |
| INV_Rhinestone Blouse | Apparel | $3,812 | 26.1% | 46.2% | −20.1 | $598 | $1,422 |
| LOT_Scarlet Shimmer | Beauty | $2,749 | 29.9% | 51.9% | −22.0 | $513 | $1,259 |
| INV_Black Leather Belt | Apparel | $2,350 | 18.5% | 46.2% | −27.7 | $480 | $1,208 |
| LOT_3-Tone Eye Shadow w/ Mirror | Beauty | $2,920 | 34.1% | 51.9% | −17.8 | $458 | $1,083 |
| Total — 14 SKUs | $123,179 | $24,804 | $63,414 |
Attribution by the three requested dimensions, annualized (window factor 12 ÷ 23.7 months = 0.507):
Interpretation. "Bringing outliers to the defensible median" has no meaningful value at the transaction level — outlying transactions essentially do not exist. All recoverable value sits at the price-file level: 14 SKUs whose margins drifted 15–46 points below category norms as costs rose. The realistic, demand-aware capture is the half-gap case: ≈ $24.8K of annualized gross profit, concentrated in five SKUs that account for 74% of it. The full-gap ceiling of $63.4K requires price increases up to 90% and should be treated as an upper bound, not a target.
All CustInvc and CashSale product lines (mainline='F', taxline='F'), Sep 1 2024 – Aug 22 2026. Elimination subsidiary (id 4, xElim) excluded via transactionline.subsidiary. Item types: InvtPart, NonInvtPart, Kit, Assembly. SKUs with ≥5 sold lines qualify for tier/median statistics (121 SKUs, 3,236 lines, $2.105M). Excluded: SVC_Delivery Service (per-job service charge, $241–$11,311 per line — dispersion is job scoping, not pricing) and 13 low-volume SKUs (<5 lines, $2.4K combined).
List price = maximum observed unit price per SKU across the window. Validated: every SKU's observed prices sit at exactly {100, 97, 96, 95, 94}% of this anchor, confirming it is the true list price rather than an outlier. Unit price = |netamount ÷ quantity|. Gross margin = (|netamount| − |costestimate|) ÷ |netamount|; transactionline.costestimate is NetSuite's line-level estimated COGS. Defensible median = (a) at transaction level, the SKU's median line margin; (b) at SKU level, the category median SKU margin (Apparel 46.2%, Beauty 51.9%, Home & Decor 48.6%). Annualization = window totals × 0.507 (12 ÷ 23.7 months).
(1) Repricing uplift assumes constant unit volume and constant unit cost — no demand elasticity is modeled; the half-gap scenario exists precisely to hedge this. (2) costestimate is taken as the cost of record; where it varies within a SKU, actual costing (avg/lot) drives real margin. (3) Cash sales without a customer-level rep are classified as retail walk-in; rep attribution uses customer.salesrep (transaction-level salesrep is not exposed to SuiteQL in this account). (4) Single-currency account (USD) — no FX effects. (5) No discount or markup line items exist in the O2C data (verified — zero rows), so line net amounts are complete realized prices.
(i) 23 lines on IT-* electronics items carry zero costestimate → excluded from margin statistics, flagged in §07. (ii) One line (INV03) has null location. (iii) SER_Box Spring sells at a flat $500 to 3 customers, 145 lines, zero variance — a fixed-price add-on, no action. (iv) Several locations in this account share names; all location references use internal ids (1, 3, 5, 12).
All queries are SuiteQL, run against production Aug 26, 2026. The shared m subquery derives each SKU's list-price anchor.
-- Every product line bucketed by unit price as a ratio of the SKU's list anchor
SELECT
ROUND(ABS(tl.netamount / tl.quantity) / m.maxp, 2) AS price_ratio,
CASE WHEN ABS(tl.quantity) >= 20 THEN 'T5' WHEN ABS(tl.quantity) >= 15 THEN 'T4'
WHEN ABS(tl.quantity) >= 10 THEN 'T3' WHEN ABS(tl.quantity) >= 5 THEN 'T2'
ELSE 'T1' END AS qty_tier,
t.type AS channel,
COUNT(*) AS line_count,
ROUND(SUM(ABS(tl.netamount)), 2) AS revenue
FROM transaction t
JOIN transactionline tl ON tl.transaction = t.id
JOIN item i ON i.id = tl.item
JOIN (
SELECT tl2.item AS item_id, MAX(ABS(tl2.netamount / tl2.quantity)) AS maxp
FROM transaction t2
JOIN transactionline tl2 ON tl2.transaction = t2.id
WHERE t2.type IN ('CustInvc','CashSale') AND tl2.mainline = 'F' AND tl2.taxline = 'F'
AND tl2.subsidiary <> 4 AND tl2.quantity <> 0 AND tl2.netamount <> 0
GROUP BY tl2.item HAVING COUNT(*) >= 5
) m ON m.item_id = tl.item
WHERE t.type IN ('CustInvc','CashSale') AND tl.mainline = 'F' AND tl.taxline = 'F'
AND tl.subsidiary <> 4 AND tl.quantity <> 0 AND tl.netamount <> 0
AND i.itemtype IN ('InvtPart','Kit','Assembly','NonInvtPart') AND i.id <> 284
GROUP BY ROUND(ABS(tl.netamount / tl.quantity) / m.maxp, 2), qty_tier, t.type
ORDER BY 1, 2, 3
-- Lines whose realized ratio deviates >0.5% from the tier their quantity earns SELECT t.tranid, t.type, t.trandate, c.entityid AS customer, i.itemid AS sku, ABS(tl.quantity) AS qty, ROUND(ABS(tl.netamount / tl.quantity), 2) AS unit_price, loc.id AS location_id, loc.name AS location_name FROM transaction t JOIN transactionline tl ON tl.transaction = t.id JOIN customer c ON c.id = t.entity JOIN item i ON i.id = tl.item LEFT JOIN location loc ON loc.id = tl.location JOIN ( /* list-anchor subquery m, as in Q1 */ ) m ON m.item_id = tl.item WHERE t.type IN ('CustInvc','CashSale') AND tl.mainline = 'F' AND tl.taxline = 'F' AND tl.subsidiary <> 4 AND tl.quantity <> 0 AND tl.netamount <> 0 AND i.itemtype IN ('InvtPart','Kit','Assembly','NonInvtPart') AND i.id <> 284 AND ABS( ABS(tl.netamount / tl.quantity) / m.maxp - CASE WHEN ABS(tl.quantity) >= 20 THEN 0.94 WHEN ABS(tl.quantity) >= 15 THEN 0.95 WHEN ABS(tl.quantity) >= 10 THEN 0.96 WHEN ABS(tl.quantity) >= 5 THEN 0.97 ELSE 1 END ) > 0.005 ORDER BY t.trandate
-- Lines >5 margin points below their SKU's median line margin, with GP gap costed
SELECT t.tranid, c.entityid AS customer, i.itemid AS sku,
ROUND(100 * (ABS(tl.netamount) - ABS(tl.costestimate)) / ABS(tl.netamount), 1) AS line_mgn_pct,
med.med_mgn,
ROUND(ABS(tl.netamount) * med.med_mgn / 100
- (ABS(tl.netamount) - ABS(tl.costestimate)), 2) AS gp_gap_to_median
FROM transaction t
JOIN transactionline tl ON tl.transaction = t.id
JOIN customer c ON c.id = t.entity
JOIN item i ON i.id = tl.item
JOIN (
SELECT tl2.item AS item_id,
MEDIAN(100 * (ABS(tl2.netamount) - ABS(tl2.costestimate)) / ABS(tl2.netamount)) AS med_mgn
FROM transaction t2 JOIN transactionline tl2 ON tl2.transaction = t2.id
WHERE t2.type IN ('CustInvc','CashSale') AND tl2.mainline = 'F' AND tl2.taxline = 'F'
AND tl2.subsidiary <> 4 AND tl2.quantity <> 0 AND tl2.netamount <> 0
AND tl2.costestimate IS NOT NULL AND tl2.costestimate <> 0
GROUP BY tl2.item HAVING COUNT(*) >= 5
) med ON med.item_id = tl.item
WHERE t.type IN ('CustInvc','CashSale') AND tl.mainline = 'F' AND tl.taxline = 'F'
AND tl.subsidiary <> 4 AND tl.quantity <> 0 AND tl.netamount <> 0
AND tl.costestimate IS NOT NULL AND tl.costestimate <> 0
AND i.itemtype IN ('InvtPart','Kit','Assembly','NonInvtPart') AND i.id <> 284
AND 100 * (ABS(tl.netamount) - ABS(tl.costestimate)) / ABS(tl.netamount) < med.med_mgn - 5
SELECT TO_CHAR(t.trandate, 'YYYY-MM') AS mo,
ROUND(100 * (SUM(ABS(tl.netamount)) - SUM(ABS(tl.costestimate)))
/ SUM(ABS(tl.netamount)), 2) AS mgn_pct,
ROUND(100 * SUM(ABS(tl.netamount)) / SUM(ABS(tl.quantity) * m.maxp), 2) AS realized_pct_of_list
FROM transaction t
JOIN transactionline tl ON tl.transaction = t.id
JOIN item i ON i.id = tl.item
JOIN ( /* list-anchor subquery m */ ) m ON m.item_id = tl.item
WHERE /* standard universe filters as in Q1 */
GROUP BY TO_CHAR(t.trandate, 'YYYY-MM')
ORDER BY 1
-- SKUs whose unit cost varied >5% within the window, with best/worst margin at list SELECT i.itemid AS sku, ROUND(MIN(ABS(tl.costestimate / tl.quantity)), 2) AS min_unit_cost, ROUND(MAX(ABS(tl.costestimate / tl.quantity)), 2) AS max_unit_cost, ROUND(MAX(ABS(tl.netamount / tl.quantity)), 2) AS list_price, ROUND(100 * (1 - MAX(ABS(tl.costestimate / tl.quantity)) / MAX(ABS(tl.netamount / tl.quantity))), 1) AS worst_mgn_pct FROM transaction t JOIN transactionline tl ON tl.transaction = t.id JOIN item i ON i.id = tl.item WHERE /* standard universe filters + costestimate present */ GROUP BY i.itemid HAVING COUNT(*) >= 5 AND MAX(ABS(tl.costestimate / tl.quantity)) > MIN(ABS(tl.costestimate / tl.quantity)) * 1.05 ORDER BY MAX(ABS(tl.costestimate / tl.quantity)) / MIN(ABS(tl.costestimate / tl.quantity)) DESC
-- Rep rollup; swap the GROUP BY to c.entityid for the customer view SELECT COALESCE(e.entityid, '(no rep assigned)') AS rep, COUNT(DISTINCT c.id) AS custs, COUNT(*) AS ln, ROUND(SUM(ABS(tl.netamount)), 0) AS rev, ROUND(100 * SUM(ABS(tl.netamount)) / SUM(ABS(tl.quantity) * m.maxp), 2) AS pct_of_list, ROUND(100 * (SUM(ABS(tl.netamount)) - SUM(ABS(tl.costestimate))) / SUM(ABS(tl.netamount)), 1) AS mgn_pct FROM transaction t JOIN transactionline tl ON tl.transaction = t.id JOIN customer c ON c.id = t.entity LEFT JOIN employee e ON e.id = c.salesrep JOIN item i ON i.id = tl.item JOIN ( /* list-anchor subquery m */ ) m ON m.item_id = tl.item WHERE /* standard universe filters */ GROUP BY COALESCE(e.entityid, '(no rep assigned)') ORDER BY rev DESC
-- Category medians across per-SKU margins (>=5 lines, cost present) SELECT s.category, ROUND(MEDIAN(s.mgn_pct), 1) AS cat_median_mgn, COUNT(*) AS sku_count FROM ( SELECT COALESCE(cl.name, '(none)') AS category, i.itemid AS sku, 100 * (SUM(ABS(tl.netamount)) - SUM(ABS(tl.costestimate))) / SUM(ABS(tl.netamount)) AS mgn_pct FROM transaction t JOIN transactionline tl ON tl.transaction = t.id JOIN item i ON i.id = tl.item LEFT JOIN classification cl ON cl.id = tl.class WHERE /* standard universe filters + costestimate present */ GROUP BY COALESCE(cl.name, '(none)'), i.itemid HAVING COUNT(*) >= 5 ) s GROUP BY s.category ORDER BY s.category -- Outliers: per-SKU margins >=15 pts below these medians (14 SKUs) were repriced in a -- computation layer: new_revenue = cost / (1 - target_margin); uplift = Δrevenue × 0.507 (annualization).