# Parts matrix testing worksheet

Copy this document into a document editor or print it. Use it to check an existing or proposed matrix against your own records. Enter that matrix in the blank tables. Use a calculator for the formulas. Nothing in this worksheet calculates automatically or transfers into Brinlo.

**Teaching figures are not recommended prices. Ask your accountant to review the treatment used for your shop.**

## 1. Define this test

| Field | Your entry |
| --- | --- |
| Shop and person completing the sheet | |
| Period of completed sales reviewed | |
| Matrix version and effective date | |
| Supplier cost source and date | |
| Cost rule, including freight allocation | |
| Treatment of discounts and later rebates | |
| Source for cost of sold inventory | |
| Parts gross profit dollars needed and basis | |
| Target parts margin and basis | |
| Person allowed to approve price exceptions | |
| Review date | |

Set targets independently using your shop's budget and accountant's advice. Do not take targets from the teaching figures.

Test assumptions: USD, positive whole-unit quantities, unit costs in cents, parts only. No labor, customer sales tax, overhead allocation, customer core charges, or refundable supplier cores in the basket. Round each unit sell price to the nearest cent, with half cents rounded up, before multiplying by quantity. Actual accounting classifications need separate review.

Missing cost is not zero. Put missing, zero, negative, fractional-quantity, or unmatched records on the exceptions list. Split lines when their unit costs differ. Keep an inventory purchase separate from the cost of units sold. Keep original sales and later reversals linked even when they occur in different periods.

## 2. Record the whole-cost rules being tested

Copy each rule as it exists or as it has been proposed. For a whole-cost rule, apply the stated multiplier to the entire unit cost. Define each cutoff once. Rows must not overlap or leave gaps. A blank multiplier means the test setup is unfinished, not 1.00.

| Band | Unit cost greater than | Unit cost through, inclusive | Multiplier | Rule or exception owner |
| --- | --- | --- | --- | --- |
| A | $0 | | | |
| B | A's upper limit | | | |
| C | B's upper limit | No upper limit | | |

Add bands only when they serve a clear purpose. A separate price floor or carry-forward formula must be written explicitly rather than hidden in the multiplier column.

Unit sell price = round(unit cost × multiplier, 2).

Whole-cost markup before rounding = (multiplier − 1) × 100.

Whole-cost margin before rounding = (1 − 1 ÷ multiplier) × 100, for a positive multiplier and cost.

For the rounded price P and cost C, markup = (P − C) ÷ C × 100. Margin = (P − C) ÷ P × 100. These need positive denominators. Multiplier-only formulas do not describe carry-forward rules.

## 3. Reprice a complete basket

Use each part sold as a row or group units with identical costs and rules. Do not average costs across bands. Keep two passes: historical costs for checking the old rule, then current replacement costs for testing new quotes. Do not combine them in one reported historical result.

For the replacement-cost pass, copy the tables and label them simulation. Use replacement unit cost as C. Relabel A as modeled cost and enter Q × C on the same cost basis. State assumed discounts and adjustments. This assumes all test units are purchased at current costs, not issued from older inventory.

The simulation holds historical quantities and work mix fixed. It does not predict quote acceptance, future sales volume, or future gross profit.

| Part or record ID | Quantity Q | Quote unit cost C | Band | Multiplier M | Rounded unit sell P |
| --- | --- | --- | --- | --- | --- |
| | | | | | |
| | | | | | |
| | | | | | |

| Same record ID | Quote cost Q × C | Matrix sales Q × P | Adjustment J | Discount D | Net sales S | Actual sold cost A | Final gross profit G |
| --- | --- | --- | --- | --- | --- | --- | --- |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| **Totals** | | | | | | | |

Enter total line discount D, not a percentage or per-unit amount. Enter total actual cost for units sold, not a unit cost. J is a signed dollar price adjustment, positive for an increase and negative for a reduction. Give it a reason. Never enter the same reduction in both D and J. Use zero where no adjustment applies.

- P = round(C × M, 2).
- S = Q × P + J − D.
- G = S − A.
- Basket margin = sum(G) ÷ sum(S) × 100.
- Cost variance = sum(A) − sum(Q × C).
- Gross profit bridge = starting matrix gross profit + total J − total D − cost variance.

Leave margin undefined if net sales total is zero. Do not average row margins, divide by cost, or divide by unit count. For actual invoices, use the recorded net sale after allocating any whole-job discount consistently. Do not subtract a discount again if net sales already include it.

### Completed teaching basket

The three whole-cost multipliers are 2.00 through $20, 1.75 above $20 through $100, and 1.40 above $100. These rules intentionally contain boundary drops for the next test. J is zero on all three lines and omitted from this completed table.

| Record | Q | C | M | P | Quote cost | Matrix sales | D | S | A | G |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| A | 8 | $8 | 2.00 | $16 | $64 | $128 | $0 | $128 | $64 | $64 |
| B | 3 | $60 | 1.75 | $105 | $180 | $315 | $15 | $300 | $180 | $120 |
| C | 1 | $240 | 1.40 | $336 | $240 | $336 | $36 | $300 | $260 | $40 |
| **Total** | **12** | | | | **$484** | **$779** | **$51** | **$728** | **$504** | **$224** |

Before discounts and cost changes: $295 gross profit and 37.87% margin. After discounts only: $244 and 33.52%. After both: $224 and 30.77%.

Bridge: $295 − $51 − $20 = $224. A failure to match means a missing, duplicated, or differently classified amount. The row C cost change does not automatically change the price on an already approved job.

## 4. Test each boundary

| Cutoff | Cost one cent below | Sell below | Sell at cutoff | Cost one cent above | Sell above | Drop found | Chosen correction |
| --- | --- | --- | --- | --- | --- | --- | --- |
| | | | | | | | |
| | | | | | | | |

Teaching checks: $19.99 → $39.98, $20.00 → $40.00, $20.01 → $35.02. Second cutoff: $99.99 → $174.98, $100.00 → $175.00, $100.01 → $140.01.

Both cutoffs fail a no-downward-price-step test. Do not approve this teaching matrix for use. Record your correction and retest both the boundaries and basket.

One mathematical alternative for the first boundary is $40 + 1.75 × (cost − $20), only above $20 through $100. Round the final unit price. It gives $40.02 at $20.01, $110 at $60, and $180 at $100. Retaining the original third band still gives $140.01 at $100.01. This is not a recommendation and does not fix the second boundary by itself.

## 5. Keep unresolved items visible

| Original record | Item type | Amount paid or refunded | Credit expected | Credit received | Deadline | Return proof | Final status and accounting review |
| --- | --- | --- | --- | --- | --- | --- | --- |
| | Supplier core | | | | | | |
| | Supplier part return | | | | | | |
| | Customer refund or core | | | | | | |

Do not add this table to basket cost automatically. Pending credits are unresolved, not proven losses. A supplier refund is not a customer refund. Keep those accounts separate.

Teaching return: unsold part purchase $40, credit $34, nonrefunded return freight $6. The credit is for the part alone. Freight is separate and has not already reduced the credit or been counted elsewhere. Unrecovered amount = $40 − $34 + $6 = $12. No sale exists for this isolated return, so no margin percentage applies.

Teaching core: supplier deposit $50, expected credit $50, received $0, still within deadline. Open recovery = $50. Confirmed loss = unknown, not $50. If recovery is denied and the shop bears the amount, flag $50 once for classification. If already included in actual sold cost, do not subtract it again.

## 6. Record whether the rule passes the checks

- [ ] Every cost has a source and a stated basis.
- [ ] Each positive unit cost belongs to exactly one band.
- [ ] Both sides of every cutoff have been checked after rounding.
- [ ] Quantity affects line totals, not band selection.
- [ ] Actual mix and large-job sensitivity have been checked.
- [ ] Price adjustments, discounts, and cost changes explain the difference from the matrix result.
- [ ] Returns, core items, missing costs, and accounting differences are resolved or listed as open.
- [ ] Your targets and chosen price changes have been reviewed separately from the arithmetic.
- [ ] The old version is saved and the new version has an effective date.

Decision: keep / revise / hold. Reason: __________. Owner: __________. Date: __________.

Arithmetic checks for this completed example are in `check_calculations.py`. Run `python3 check_calculations.py` from this directory. The script checks teaching arithmetic, not your filled-in records or professional accounting judgment.
