Measuring Offcut Loss in a Panel Stock
Yield per job overstates what you lose. Count the offcuts you book back into stock, and the kerf, to see the real loss. A worked example with the demo endpoint.
Ask a panel dealer how much material they lose and you usually get a feeling, not a number. The ERP knows what was bought and what was invoiced. The saw knows what was cut. Nobody compares the two per period.
A cutting plan reports yield: the area of the parts divided by the area of the sheets used. It is a useful number for one job. Read as a loss figure it is too pessimistic, because a large share of the remainder is not scrap. It is a rectangle that goes back on the rack.
One job, in numbers
The demo endpoint needs no API key. This request cuts a small cabinet from one 2800 x 2070 mm sheet with a 3.2 mm blade:
curl -X POST https://api.sawvant.com/v1/demo/optimize \
-H "Content-Type: application/json" \
-d '{
"parts": [
{"id": "side", "length": 720, "width": 560, "quantity": 2, "grain": "length"},
{"id": "shelf", "length": 564, "width": 540, "quantity": 3, "grain": "none"},
{"id": "door", "length": 716, "width": 396, "quantity": 2, "grain": "length"}
],
"sheets": [{"id": "oak-18", "length": 2800, "width": 2070, "quantity": 0, "grain": "length"}],
"machine": {"blade_thickness": 3.2, "max_levels": 3, "cut_direction": "default"}
}'The summary says yield_percent 39.46 and waste_percent 60.54, with a waste_area of 3,508,848 mm². Taken at face value, this job lost 61% of the sheet.
It did not. The parts add up to 2,287,152 mm², and the layout leaves a strip 818 mm wide over the full 2070 mm height at one end of the sheet, plus smaller gaps between the parts. That strip is a usable offcut. The response has total_cut_length as well: 16,192 mm. Multiplied by the 3.2 mm blade, that is about 51,800 mm², or 0.9% of the sheet. That part is gone as dust.
So the waste figure of the plan is an upper bound. What you actually lose depends on what you do with the remainder.
The period balance
Measure over a month or a quarter, per material and thickness, in square meters:
loss = purchased - sold in parts - change in offcut stockPurchased comes from goods receipts. Sold in parts comes from the cut lists of finished jobs. The change in offcut stock is the area of offcuts on the rack at the end minus the start, counting only offcuts that are booked with a size and a location.
The last term decides the result. An offcut that sits in a corner of the saw room without a booking is invisible to the formula, so it counts as loss. The same holds for an offcut that is booked but too small, or too narrow, to ever be picked again. The loss figure therefore depends on what happens to the remainder after the cut, as well as on how well the parts were arranged.
What to set up
Book every remainder above a minimum size back into stock, with its dimensions and grain direction. Pick the minimum from your own order book: the smallest part you cut regularly is a sensible lower bound.
Mark those pieces as offcut stock when you plan the next job. In the Sawvant API a sheet with is_offcut is used before new stock is opened. If offcuts are booked but never planned, the rack keeps growing and the loss shows up later as old stock nobody picks.
Count kerf in the plan. A 3.2 mm blade over 16 m of cuts is small on one sheet. Over a month of jobs it adds up, and a plan that ignores it produces parts that do not fit the layout.
Keep your ERP as the system of record. The optimizer takes sheets and parts as JSON and returns placements and the waste area, so you can write both back to the ERP at the end of each job and run the balance above from data you already have.
The demo endpoint accepts up to 30 part types, 100 parts in total and 3 sheet types, with 10 requests per minute per IP. It uses the fast strategy. The guillotine post explains what that means, and the API docs cover the full request, including offcut sheets.