COGS
costs/cogs.md

COGS

How to configure and manage Cost of Goods Sold in Kleio.

What Are COGS

COGS (Cost of Goods Sold) is what you pay to acquire or manufacture the goods you sell. This typically includes the product cost, shipping from your supplier to you, and any import duties or taxes — the full cost of getting the product into your hands.

COGS vs Variable Costs

On top of COGS, you have variable costs — expenses like pick & pack, packaging, labels, and shipping to the customer. Some call the sum of COGS + variable costs “COD” (cost of delivery): your product “landed” at the customer’s doorstep.

Kleio keeps COGS and variable costs as separate lines on your P&L, so you can monitor each one independently. This is important because when margins drop, you need to know why. Is it product costs? Shipping? Packaging? If everything lives in one number, you don’t know whether to negotiate with your supplier or your 3PL.

How to Set COGS

Kleio automatically pulls COGS from your Shopify store, but some products may be missing cost data. You can review and fill in the gaps at Costs → Missing COGS.

Missing COGS

There are two types of missing COGS to look out for:

Existing Products

Products currently active in your Shopify store that are missing COGS data. When you set a COGS for an existing product within Kleio, the value is automatically pushed back to Shopify. This ensures your data stays synchronized across both platforms without manual double-entry.

Deleted Products

Items or variants that have been removed from your Shopify store historically. When a product is deleted in Shopify, its associated COGS data is also removed from their database.

Because Shopify no longer stores this information, Kleio has no way of retrieving it automatically. To maintain “apples-to-apples” year-over-year comparisons, you must manually set the COGS for these deleted products.

Different COGS Over Time

Shopify only stores a single cost per variant. When you update it, the new value applies to all orders — past and future. That makes it impossible to reflect COGS changes over time (e.g., a supplier price increase) without rewriting history.

Kleio’s Custom COGS solves this. At Costs → Custom COGS you can set a COGS override on specific products or variants with a start and end date. For example, set $8 for Jan–Jun and $9.50 from Jul onward — without touching your Shopify data.

Custom COGS values take precedence over the Shopify cost and any fallback percentage.

COGS Settings

In Settings, you can configure three global COGS settings:

Override All COGS %

A flat percentage of revenue (excluding tax) applied as COGS for every line item. When set to a value greater than 0, it overrides all other COGS sources — Shopify costs, Custom COGS, and the Fallback percentage. Set to 0 to disable.

COGS Markup % does not apply when the override is active — the override percentage is the final COGS amount.

This is useful for quick P&L estimation or industries with known standard margins where a single cost ratio applies across the board.

Fallback COGS %

A percentage of revenue (excluding tax) used as an estimated COGS when a variant has no cost data. Set to 0 to disable.

This is useful as a starting point if you haven’t filled in COGS for all products yet — it ensures your P&L isn’t overstating profit in the meantime.

COGS Markup %

A percentage markup applied on top of all COGS calculations to account for hidden costs like shrinkage, breakage, or other overhead. Set to 0 to disable.

For example, if your COGS is $10 and you set a 5% markup, Kleio will use $10.50 as the effective COGS.

FAQ

My supplier quotes one price for everything. How do I set it up?

If your supplier quotes you a single per-unit price that includes the product, shipping, and packaging, don’t log the whole thing as COGS.

When everything lives in one number, you lose visibility into what’s driving your margins. If margins drop 3%, you can’t tell if the product got more expensive, shipping went up, or packaging is eating into your margin. Kleio also can’t add back in the correct product cost when items are returned.

Instead, split the quoted amount into COGS (the product) and variable costs (shipping, packaging, fulfillment). That way, when margins move, you see exactly why.

If splitting isn’t possible, set all COGS to 0 in Shopify and create variable costs in Kleio for the full amount — typically quantity-based or weight-based. You lose the cost breakdown, but at least your P&L reflects the actual cost of each order.