Skip to main content

Cost Layers: Tracking Different Purchase Costs for the Same Material

Understand how Ply tracks inventory that was purchased at different prices, and choose how that cost shows up in your catalog.

If you buy the same material at different prices over time, Cost Layers lets Ply track each purchase as its own "layer" instead of overwriting the cost every time you buy more. This gives you a more accurate picture of what your inventory is actually worth.

Say you have 5 units of a material in stock: 2 of them cost $2 each, and 3 of them cost $1 each. Without cost layers, Ply only ever kept a single cost, so no matter what you paid for each batch, your stock showed one flat cost. Cost Layers keeps each purchase as its own "layer" instead, so tracking what your inventory is actually worth is more accurate.


Cost Layers currently supports two modes:

  • Last Purchase: uses the unit cost from your most recent purchase.

  • Average: a weighted average across your different purchase costs. Ply calculates this based on the quantity you currently have in stock, not your full purchase history.


Setting it up

  1. Go to Settings → Procurement → Cost Layers.

  2. Turn on Cost Layers.

  3. Choose your default costing mode: Last Purchase or Average.

  4. Optionally, set a lock date. Layers dated on or before this date can't be created, edited, or deleted; this protects closed accounting periods from retroactive changes.


How layers get created

Manually, directly from the material.

  1. Go to Catalog→ Open the material→ Select the Cost Layers tab → Add layer to add one yourself, without needing a PO. This is also how the location-template copy scenario creates a layer, since duplicating stock to another location effectively adds a new layer manually.

When reconciling a PO:

Receiving and reconciling a PO for a material creates a new layer on its own, with the cost and quantity from that purchase.

  1. You create and reconcile a PO for a material at a new price, for example, 5 units at $15, because your supplier raised their rate.

  2. Ply creates a new layer once you reconcile that PO for those 5 units at $15, on top of whatever layers already existed for that material.

    Remember to select your location in this section:

  3. As you use up that stock, for example, by transferring 4 of those 5 units to a job, the layer's available quantity drops to 1.

  4. Once the last unit from that layer is used, its available quantity hits 0 and it moves out of the active view into History. The purchase record isn't lost; it just no longer represents stock you currently have.

This setting is not retroactive; it only affects reconciliations made after it's turned on.

Layers are also created automatically when you copy a material's stock to another location using a stock template. Since that duplicates the stock, it creates a new layer carrying over the same cost.


Overriding a single material

  1. Open the material and go to its Cost Layers tab.

  2. Turn cost layers on or off just for this material, or set a different costing mode than your account default.

This is useful when most of your catalog can use one mode, but a specific category (say, a commodity that swings in price a lot) needs to be tracked differently.


⚠️ "Inventory layer date must be after the business lock date"

You'll see this error if the Layer date you entered falls on or before the account's lock date. Ply shows a reminder banner right in the form (for example, "Business lock date is set to Jul 23, 2026. Layers can't be back-dated to this date or earlier."), and blocks the submission if you try anyway.

Fix it by setting a lock date. Cost layers dated on or before that date can't be created, edited, or deleted, protecting closed accounting periods from retroactive changes. Layers dated after the lock date can still be managed normally.


Reconciling purchase orders to a job instead of stock

When a PO is reconciled to a stock location, a new layer is created as expected.

When it's reconciled directly to a job, the material never sits in your stock, so historically that purchase cost wasn't reflected in your catalog at all.

There's a new setting that fixes this by updating the catalog cost even when a PO reconciles straight to a job.

Go to Settings → Procurement → Cost Layers and turn this toggle on.


How Average is Calculated:

Average only looks at the quantity you currently have available, not everything you've ever received.

For example, if you have 8 units available at $10 and add a new layer of 1 unit available at $25, the average weighs both: (8 × $10 + 1 × $25) ÷ 9 = $11.67.

As you sell through the cheaper layers and only pricier ones remain available, the average shifts to reflect that.


Still need help? Contact support!

Did this answer your question?