Stock pools and matching
Bind a configurator to your stock so it picks the nearest matching item and falls back to a formula when nothing fits.
A stock pool is a set of items that share declared key attributes. You manage pools and their items in the Stock tab of the Design area: each item has a sku, description, attributes, quantity, reserved quantity, cost and a low stock threshold.
Pool bindings
A binding exposes a pool to formulas under a key such as stock.rod. It matches on an attribute against a target expression over parameters, using one of three modes: nearest, nearest_above or nearest_below. A secondary attribute can refine ties.
Take the carbide rod example. A custom endmill binds the carbide_rods pool, matching diameter nearest_above the requested diameter and length nearest_above the required overall length. The cost path then reads stock.rod.cost and stock.rod.matched.
match: {
attr: "diameter_mm",
target: "diameter_mm",
mode: "nearest_above",
secondary: { attr: "length_mm", target: "oal_mm", mode: "nearest_above" }
}Fallback pricing
When no item qualifies, stock.rod.matched is false and the cost comes from the binding fallback expression instead. This keeps the configurator priceable even when the exact stock is not on the shelf.
// fallbackCostExpr, used when nothing matches
diameter_mm * oal_mm * 0.012Why nearest rather than exact
A custom part is almost never made from stock that matches it exactly. It is made from the next size up, and the difference is machined away. A configurator that insisted on an exact match would fail on nearly every real enquiry; one that ignored stock entirely would price against material you do not hold.
So a binding matches on an attribute against a target the formulas compute, and the mode says which direction is acceptable. nearest_above is the usual choice for material you cut down from: the rod has to be at least the diameter you need. nearest_below suits the opposite case, and nearest is for attributes where either direction is fine. A secondary attribute settles ties, so two rods of the right diameter are separated by length rather than by whichever came back first.
Low stock
Each item carries a quantity on hand, a reserved quantity and a low stock threshold. When a pool drops below its threshold an amber banner shows on the pool and a chip appears on the dashboard.
Nothing reserves pool stock automatically. This page used to say that ordering a configured product raises the reserved quantity at order creation and releases it on cancellation, and that has not been true since P16: the reservation path belonged to the platform Configure module that was removed then, and the function the order flow still calls does nothing. The reserved column is yours to set by hand until automatic depletion is built, and it will be built where the stock physically moves.
Stock pools answer one question: which stock item does this configuration price against. Whether you hold that item, whether it needs preparing first and which machine prepares it is a different question, answered by Stock modes and the machine bridge.
The seeded carbide_rods pool ships with twelve sample items. The numbers are illustrative starting points for you to edit, not pricing advice.