Woodshop Bench All tools
Cut & machining

Cut list optimizer

A small shop doesn't need MaxCut or a CNC nesting algorithm — it needs a quick sanity check: "if I cut these parts out of stock this big, how much waste do I have?" This uses first-fit-decreasing packing to lay rectangles into a stock rectangle and reports the utilisation ratio.

Optimizer

First-fit-decreasing, briefly

The packer works by:

  1. Sorting parts by longest dimension, descending.
  2. For each part, finding the first stock board where it fits (length-wise and width-wise, including kerf).
  3. Placing it at the first available spot in that board.
  4. If no board has room, opening a new board.

This is not the optimal packer (that would be a 2D knapsack problem, NP-hard), but it gets within 10–15% of optimal for hobbyist cut lists and runs in milliseconds.

Why this isn't a CNC nest

CNC nesting software handles curves, grain direction, edge-banding constraints, lead-ins and dozens of other variables. This is the simplest version that catches the obvious "you need more lumber" case. If you're optimising for cost on a kitchen full of cabinets, this isn't the right tool — but it will tell you within 10% whether you're buying enough.

Limitations

Frequently asked questions

Can I enter angled parts or curves?

Not yet — this is rectangular-pack only. For curves, allow an extra 1/8″ around the bounding box as a fudge factor.

What about plywood sheet goods?

It works for sheet goods too — set the stock width and length to the sheet dimensions (typically 48″ × 96″). Packing gets more efficient because there's more room to fit parts, but offcuts from a sheet are usually unusable for furniture so the calculated "leftover" is really just throwaway.

My utilisation is 35%. Am I doing it wrong?

Probably not — utilisation depends heavily on the size distribution of parts. A handful of long, thin parts on a wide board will always pack badly. The right question is "do I have enough boards?" — the optimiser answers that directly.

How do I use Cut list optimizer step by step without mistakes?Follow the order given in the usage section: First-fit decreasing-height packer: enter your finished parts and your stock size, get utilisation % and leftover material. The step-by-step part matters less than the unit check that sits inside it. Confirm every unit matches the thing you are actually trying to measure before you press calculate - that single check catches more wrong answers than any other habit, and it costs about ten seconds.
What are the common mistakes when using Cut list optimizer?Most common mistakes come down to four habits: entering 20 when the field expects 0.2 because the field is a percentage; leaving a field blank and accepting the default without checking what it stands for; changing one input and reading a result that was calculated before the change; and quoting the output as an exact figure when the page describes it as a reference estimate. Press calculate again after any edit, and treat the number as a reference point rather than a final answer.
How do I read the result from Cut list optimizer?Read the final figure first, then come back to this section for the conditions behind it: Utilisation is part area divided by stock area. Higher is better; 60%+ is reasonable. Boards needed counts how many stock lengths the parts occupy given kerf. The packer uses first-fit-decreasing — good enough for hobby work, not optimal. Keep two things apart: the number itself, which comes from the values you typed, and the assumptions it depends on, which decide whether that number is meaningful. The page sets out what a higher or lower result means for your case, so check that direction as well as the magnitude.