Cost Modeling Engine

The most comprehensive cost engine on Shopify

Seven cost types. Temporal periods. Country-specific COGS. Bundle rollup. Weight-tier shipping. Per-currency gateway fees with international surcharges. Every cost, every order, penny-accurate.

All Plans

Why accurate costs matter more than revenue

Most merchants see their Shopify revenue number and think that's profit. It's not. A $100 order might have $25 in product cost, $8 in shipping, $5.32 in gateway fees, and $12 in overhead allocation. That's only $49.68 in net profit — half the sale price. Miss just one cost category, and your P&L is fundamentally broken.

Spreadsheets fail because costs shift: suppliers raise prices mid-year, shipping carriers change zones, payment processors adjust rates, and you scale from manual fulfillment to 3PL. Tracking cost periods manually is error-prone and slow. By the time you realize a cost was wrong, you've already made a dozen pricing decisions based on bad data.

NetNet's cost engine solves this by modeling every cost type the way your business actually works. Costs are captured at order ingestion time, stored with full audit trail, and evaluated using lookup chains that resolve the exact cost for each variant, country, and time period. When costs change, old orders keep old costs — you get historical accuracy for any date range.

Seven cost types, built for real businesses

Every cost is calculated per-order at ingestion time — not aggregated, not estimated. Stored with full audit trail. Each cost type is optimized for a different part of your P&L, from tangible product costs to intangible overhead allocation.

Product COGS

Bundles, tiers, periods

Shipping

Profiles, zones, weight

Gateway Fees

% + flat + tax-on-fee

Per-Order Fees

Flat, %, COD-specific

Per-Item Fees

Per unit, per line item

Custom Costs

6 overhead categories

Chargeback Fees

Per-currency defaults

Product COGS

Not just a cost field — a full COGS engine

Most apps give you one cost per product. Real businesses source differently by country, negotiate volume tiers with suppliers, bundle components together, and adjust costs when suppliers raise prices. NetNet's COGS engine handles all of it by running a 7-step lookup chain that always picks the right cost for each order.

Per-variant costs

Different colors, sizes, or materials have different costs. Set cost individually per variant. Products without costs show amber warnings so you never accidentally miss a SKU.

Quantity tiers

Suppliers offer bulk discounts. Buy 10 units at $28, but 100+ at $22. Your orders automatically use the highest matching tier. Encourages customers to buy bigger orders that hit lower cost tiers.

Bundle COGS

When you bundle products together, cost auto-calculates from component costs. Edit a component once and it flows through to every order that includes it — no double-data-entry nightmare.

Country-specific COGS

Manufacturing costs differ by destination. US orders from a local supplier might be $15, but EU orders from a European distributor are $18. NetNet resolves the right cost per country, per order.

Date-range periods

When a supplier raises prices mid-year, create a new cost period. Old orders keep old costs (historically accurate), new orders use new costs. Overlapping periods auto-resolve — no manual date juggling.

CSV import/export

Manage hundreds of SKUs via bulk import. Export a CSV template with all your variants, fill in cost_per_unit, re-import, and NetNet shows you exactly what imported, what skipped, and what failed — with reasons.

COGS Lookup Priority
1
Quantity tier match variant + min_qty ≤ order qty
2
Bundle component rollup SUM(component_cost × qty)
3
Country + period match variant + country + date range
4
Period match variant + date range (any country)
5
Country match variant + country (default period)
6
Default cost variant cost (no country, no period)
7
Product-level fallback product cost if variant has none
First match wins. If no COGS found → order flagged as "Missing COGS"
Gateway Fees
Estimated vs actual fee rates
Flat 2.9% estimate
Actual rate

Using a flat 2.9% estimate understates fees by $1,240/mo on international and AMEX transactions.

Shipping Costs

Shipping profiles, zones, and weight tiers

Shipping is never simple. A D2C brand selling apparel and home goods pays different rates by zone, product weight, and order volume. NetNet models this complexity with multi-profile shipping that tracks historical rate changes and always applies the rate that was active on the order date.

Three shipping modes

Use manual configured rates you negotiate with carriers, pull the customer's quoted shipping cost from Shopify, or bake shipping into your product COGS. Pick what matches your business model.

Shipping profiles

Lightweight items (apparel, accessories) ship different rates than heavy items (furniture, bulk orders). Create separate profiles, assign products, and each profile gets its own zone/rate configuration.

Zones with country groups

Group countries into zones (Domestic, EU, International). Rates vary by zone. Use 'Rest of World' to catch countries you haven't explicitly defined — no orphaned orders.

Three rate types per zone

Configure flat rates (one price for all weights), quantity-based (first item + each additional item), or weight tiers (0-500g, 500g-1kg, etc.). One active type per zone — switch easily as your carrier rates change.

Weight tier contiguity

Ranges must be continuous with no gaps. 0-500g, 500g-1000g, 1000g+ is valid. 0-500g, 600g-1000g is invalid (gap at 500-600g). The API enforces this to prevent edge case orders with undefined costs.

Temporal rate periods

Carrier changed rates on June 1st? Create a new period. May orders use May rates, June orders use June rates. When you add a new rate, the old open-ended period auto-closes — no manual date bookkeeping.

Multi-item aggregation

When an order has apparel (light profile) and furniture (heavy profile), choose Sum to add both costs, or Max to use the highest. Prevents undercharging on mixed orders.

Example: Weight-Tier Shipping
Zone: US Domestic
0 – 500g $5.50
500g – 1kg $8.50
1kg – 2kg $12.00
2kg+ $16.00
Order: 3 items, 1.2kg total $12.00
Cost Breakdown
Where your money goes
COGS
$16.4K · 46.6%
Ad Spend
$8.1K · 23.1%
Shipping
$4.8K · 13.7%
Overhead
$3.2K · 9%
Fees
$2.6K · 7.5%
Gateway Fees

The 3-part fee formula no other app has

Most apps assume Shopify Payments at 2.9% + 30¢ flat. That's rarely right. Stripe is 2.9% + 30¢, but PayPal is 2.9% + 30¢ with sometimes a higher percentage for cross-border, and many gateways charge tax ON the fee itself. A $100 order in India on Razorpay is 2% fee + 18% tax on the fee. NetNet's 3-part formula captures the exact cost structure of every payment method you use.

Percentage + flat fee + tax-on-fee

The three-part formula that most merchant tools ignore. A $100 Stripe transaction costs 2.9% ($2.90) + $0.30 flat = $3.20. But in some jurisdictions, tax applies to the fee itself. NetNet handles all three independently.

International surcharges

Cross-border transactions cost more. If a Canadian customer pays in CAD on a USD store, the processor charges currency conversion fees and international card surcharges. NetNet tracks these as separate percentages from your base rate.

Keyword matching

Match gateway names via case-insensitive substring. A single rule 'stripe' matches 'Stripe Inc', 'Stripe Direct', 'stripe_connect' — no regex needed. Use comma-separated keywords if a gateway goes by multiple names.

Date-range periods

When Stripe raised rates from 2.8% to 2.9%, add a new period. April orders keep old rates, May onwards use new rates. No retroactive changes, no guesswork.

COD detection

Cash on Delivery is fundamentally different — the processor charges a flat fee per order, not a percentage. NetNet auto-detects COD via keywords and applies separate fee logic to COD vs card orders.

Fallback chain

Configure your own rates. If missing, use Shopify's extracted transaction fee from order metadata. If still missing, use plan-based estimates (2% Basic, 1% Shopify, 0.5% Advanced, 0% Plus). You control the priority.

Tax-on-fee — unique to NetNet International surcharges — unique to NetNet
Gateway Test Tool
Unique to NetNet
Gateway Name
stripe
Order Amount
$247.00
Matched Rulestripe (2.9% + $0.30)
Base Fee$7.46
Flat Fee$0.30
Total Fee$7.76
COD DetectedNo
Pre-configured Defaults
Stripe 2.9% + 30¢
PayPal 2.9% + 30¢
Shopify Payments 2.0%
Razorpay 2.0% + 18% tax
Cashfree 1.95% + 18% tax
PhonePe / Paytm 1.99% + 18% tax
Per-Order & Per-Item Fees

Fees that apply to every order — or every unit

Your supplier charges you $5 per order for packaging, your warehouse charges $1.50 per unit for pick-and-pack, and you charge customers a 2% convenience fee. These are separate systems because they scale differently — one applies once, the other multiplies by quantity.

Per-Order Fees

Applied once per order, regardless of order size. Configure as a flat amount or percentage of revenue. Can scope to COD orders only if you handle those differently.

Flat fee — $5 packaging fee on every order
Percentage fee — 2% convenience fee on revenue
COD-specific — $3 COD processing fee (matched by gateway keyword)
Date ranges — Changed your packaging vendor? New rate auto-closes the old one.

Per-Item Fees

Applied per unit in the order. Flat fees multiply by quantity, percentage fees calculate on each line item's subtotal. Handles bundled items correctly.

Flat per unit — $1.50 pick-and-pack fee × 4 units = $6.00
Percentage per line — 0.5% QC fee calculated on each line item's price × quantity
Gift wrap — $2 gift wrap fee per unit
Date ranges — Seasonal surcharges with auto-close on previous period.
Chargeback Fees

Dispute costs tracked automatically

When a customer disputes a charge, the payment processor charges you a chargeback fee. Stripe charges $15, Razorpay charges different amounts for domestic vs international disputes, and each currency may have a different default. NetNet tracks disputes automatically and applies the right per-currency fee, with the option to waive fees on disputes you win.

Per-currency defaults

USD/CAD: $15, GBP: £10, AUD: $25, JPY: ¥1,300, and 12+ more currencies pre-configured with Shopify Payments standard rates. The right fee applies based on customer currency.

Configurable per store

Your processor charges differently? Override the default. Custom per-currency amounts stored in store settings. Add new currencies anytime.

Win-aware

If you enable 'waive fee on win', disputes with status WON or CHARGE_REFUNDED don't hit your profit. You only pay when the dispute is actually lost.

Per-dispute tracking

An order can have multiple disputes. Each is tracked independently — not a flat one-fee-per-order model. A customer disputes twice, you pay twice.

Chargeback Fee Defaults
USD / CAD / EUR / CHF $15.00
GBP £10.00
AUD $25.00
NZD $20.00
JPY ¥1,300
SGD $16.35
INR ₹1,300
MXN $200
Default (any other) $15.00
Custom Costs

Six categories of overhead, prorated daily

Your P&L isn't just per-order costs. It's also rent, payroll, tools, fulfillment infrastructure, and marketing. These are fixed monthly costs that should be spread evenly across your profit calculation. If you had $30K in rent + salaries this month, that's about $1K per day. When you view a 7-day P&L slice, it should automatically allocate 7K of those costs. NetNet's custom cost system handles this by letting you define monthly budgets and automatically prorating them daily.

Overhead

Rent, utilities, insurance

App / Software

Shopify subscription, tools, SaaS

Marketing

Influencer spend, content, PR

Fulfillment

Warehouse ops, 3PL fees, packing

Salaries

Payroll, contractor costs

Other

Returns processing, photography

Example: Monthly Cost Proration
Overhead
Rent: $2,000/mo → $66.67/day
Insurance: $300/mo → $10/day
Software
Shopify Plus: $2,300/mo → $76.67/day
Klaviyo: $450/mo → $15/day
Fulfillment
3PL: $1,200/mo → $40/day
Packaging: $800/mo → $26.67/day
Monthly costs divided by days in month. 7-day P&L view shows 7 × daily rate. Accurate to the day.
Across All Cost Types

Every cost supports date-range periods

Supplier raised prices on June 1st? Gateway changed rates mid-month? Shipping carrier updated zones? In spreadsheet systems, this forces retroactive changes that corrupt your history. NetNet's temporal periods solve this: add a new cost period, old orders keep old costs, new orders use new costs. Your P&L for any past date range stays frozen-accurate forever.

Auto-overlap resolution

When you create a new period, the previous open-ended period auto-closes automatically. No manual date management, no accidental overlaps.

Historical accuracy

Viewing January orders? They use January's costs, not today's. Your P&L for any past period is frozen accurate and never changes — even when costs go up.

Open-ended periods

Leave the end date empty for 'until further notice'. When you add a new period, the open one closes automatically. No date hunting.

Visualize your cost breakdown

See how gateway fees, shipping, COGS, and overhead stack up across your orders. Use these charts to identify cost optimization opportunities.

Cost Breakdown
Where your money goes
COGS
$16.4K · 46.6%
Ad Spend
$8.1K · 23.1%
Shipping
$4.8K · 13.7%
Overhead
$3.2K · 9%
Fees
$2.6K · 7.5%
Gateway Fees
Estimated vs actual fee rates
Flat 2.9% estimate
Actual rate

Using a flat 2.9% estimate understates fees by $1,240/mo on international and AMEX transactions.

Stop guessing.
Start knowing.

Free plan. No credit card. Install in 60 seconds.

Install Free on Shopify