SKU PROFIT & AD EFFICIENCY

Bulk SKU Profit Auditor

Audit product CSVs for per-SKU contribution profit, ad headroom, break-even ROAS and target-price gaps using your own fee assumptions.

Choose one currency for the full file. Currency columns are checked; no exchange-rate conversion is performed.

01Upload CSV
02Map fields
03Review SKUs

Audit contribution by product SKU

Upload a Shopify product export or a copy of the starter template. The file is parsed in this browser tab and is never sent to a server.

Download the starter CSVThe starter rows are fictional examples. Replace every price, cost and fee with your own data before using the result.

The CSV and product rows stay in this tab. They are not uploaded, saved in local storage or sent with analytics events.

Audit contribution profit and ad headroom across product SKUs

A bulk SKU profit audit helps a store owner compare unit economics from a product export before changing prices, promotions or acquisition budgets. Every figure depends on the mapped CSV fields and fee assumptions you enter.

What this SKU profit auditor calculates

The auditor reads one product row at a time and calculates modeled selling price, payment and platform fees, pre-ad contribution, optional after-ad contribution, contribution margin, maximum CPA, break-even ROAS and (when configured) a minimum price for a target contribution margin. It does not connect to Shopify or alter the source CSV.

“Contribution” means modeled revenue left after the variable per-unit and per-order costs listed in the formulas. It is not company net income or accounting profit. This model does not automatically include tax, refunds, returns, fixed overhead or customer lifetime value.

Map Shopify fields and review each row

A standard Shopify products export commonly includes Title, Variant SKU, Price and Cost per item. Confirm each suggested mapping because merchant exports and third-party product CSVs can use different headings. SKU is the unique row key; the tool never joins or merges rows by title. Duplicate or blank SKUs are flagged instead of guessed.

Map fulfillment, payment and platform fees, advertising CPA, and other unit costs when those values exist in your CSV. A nonblank mapped value overrides its visible store-wide default for that SKU. Blank fee and cost cells use the displayed default. An empty ad CPA stays unknown: the auditor still calculates pre-ad contribution, but leaves after-ad contribution and after-ad margin blank.

Formula and worked example

Modeled price P = list price × (1 − discount). Payment fee = P × payment rate + payment fixed fee. Platform transaction fee = P × platform rate + platform fixed fee. Pre-ad contribution = P − product cost − fulfillment − payment fee − platform fee − other unit costs. After-ad contribution = pre-ad contribution − entered ad CPA.

Suppose a product has a $48 list price, 10% modeled discount, $12 product cost, $5 fulfillment, a 2.9% + $0.30 payment fee, a 0.5% platform fee, $1 other unit cost and $8 CPA. P is $43.20. Payment is $1.55, platform fee $0.22, pre-ad contribution $23.43, after-ad contribution $15.43, and after-ad contribution margin is 35.72%. Maximum CPA is $23.43 and break-even ROAS is 1.84x. With a 20% target contribution margin, the modeled minimum price is $34.33 because the entered CPA is included in the target-price numerator.

These are illustrative USD inputs only, not published Shopify, Stripe or advertising rates. Replace them with the rates and costs that apply to your own account, country, plan and payment methods.

Understand maximum CPA, ROAS and target price

Maximum CPA is the positive pre-ad contribution available to pay for acquisition before the listed variable costs leave no contribution. If pre-ad contribution is zero or negative, maximum CPA and break-even ROAS are unavailable, and the SKU is labeled as having no positive contribution before ads.

For a target contribution margin M, minimum price = (product cost + fulfillment + other unit costs + fixed fees + entered CPA) ÷ (1 − payment rate − platform rate − M). If the denominator is zero or negative, the selected rates and margin cannot be reached at any finite price. If CPA is blank, the target-price estimate is pre-ad and does not imply a profitable advertising price.

Use weighted summaries without averaging SKU percentages

If you map an orders or volume column, enter a nonnegative order weight for each valid row. The weighted contribution margin is total weighted contribution divided by total weighted modeled revenue. Without complete weights, the tool does not display a store-wide contribution margin and never takes a simple average of SKU margin percentages.

The what-if controls create a second calculation from the same baseline rows. A scenario discount or fee rate changes only the what-if result; it does not overwrite the original discount, mapped fees or SKU-level values. Blank scenario fields inherit the baseline assumptions.

Data quality, currency and model limits

Blank price, missing or negative product cost, malformed numbers, duplicate SKU, missing currency, mixed currencies, and invalid mapped costs are surfaced. Price and cost cells must contain plain numeric values; currency symbols or separators are not silently stripped. Correct a row in its expanded SKU inputs or fix the source CSV and upload it again.

Choose one currency for the whole audit. If the file contains a currency column, map it; rows that do not match the selected currency are held out of calculation. There is no exchange-rate conversion. Fee defaults begin at editable zero placeholders and are not claims about standard rates. You can save those assumptions on this device and clear them; uploaded rows are never saved.

Shopify product CSV headings and Cost per item field are described in the official product CSV guide. Provider fee rates vary, so this tool uses your inputs rather than treating defaults as current quotes. Shopify product CSV columns · Shopify third-party transaction fees

Bulk SKU profit auditor FAQs

Does the auditor upload my Shopify product CSV?+

No. The CSV is read and calculated in the current browser tab. Product names, SKUs and prices are not sent to a server or analytics event, and the file is not saved in local storage.

Which Shopify columns should I map?+

Map Variant SKU, Title, Price and Cost per item when those headings are present. Confirm the mapping on screen. Optional fee, ad CPA, order-weight and currency columns can also be mapped.

What happens when advertising CPA is blank?+

The auditor shows pre-ad contribution, maximum CPA and break-even ROAS when pre-ad contribution is positive. It leaves after-ad contribution and after-ad margin unavailable rather than treating a blank CPA as zero.

Are the default fee rates official Shopify or payment rates?+

No. Fee defaults start at zero placeholders and are editable. Enter rates and fixed fees that apply to your own country, Shopify plan, payment provider and payment method; the tool does not fetch current provider rates.

How does it calculate a store-wide margin?+

Only when an order-weight column is mapped and every valid SKU row has a weight. It divides total weighted contribution by total weighted modeled revenue. Without complete weights, it does not average SKU percentages into a store-wide margin.

Can I import the audit CSV back into Shopify?+

No. The download is an analysis report with baseline and what-if metrics. It is not a Shopify product import file and does not change prices, costs or products.

Does this show company net profit?+

No. It shows contribution estimates after the specific variable costs you enter. It does not automatically include taxes, refunds, returns, fixed operating costs or customer lifetime value.

NEXT STEP

Review the cost assumptions before changing a price or budget.

Resolve flagged rows, confirm actual fees and choose an explicit ad CPA before treating a SKU as ready for paid acquisition.Explore all tools