Your markup is low because you are almost certainly pricing off the base cost you see in the product editor — and that number leaves out three real costs the supplier and your payment processor add on top: supplier shipping, supplier tax, and processing fees. Once you model the full invoice instead of "retail minus base cost," the gap between the markup you think you have and the profit that lands in your account usually explains itself. The good news: every missing cost is a lever you can pull.

Markup vs. margin: which one is actually low?

Before you fix anything, get the words straight, because "markup" and "margin" describe the same sale from two different angles and people mix them up constantly.

Markup is your profit as a percentage of cost. If an item costs you $10 and you sell it for $20, your markup is 100%.

Margin is your profit as a percentage of the retail price. That same item has a 50% margin.

A lot of sellers who ask "why is my markup low" actually have a healthy markup on the sticker — they just watch their bank balance grow slowly and assume the markup number is wrong. It usually isn't the markup that's broken. It's that the "cost" side of the calculation was never complete.

The number in the product editor is not your cost

Here is the single most common reason your realized markup disappoints: the base cost shown per variant in your Printify or Printful editor is only the first of three things the supplier charges you.

The full supplier invoice on a real, shipped order is:

Base cost + supplier shipping + supplier tax.

And then your payment processor takes its cut on top of that. So your true per-order profit is:

(retail price + shipping you charge the customer) − (base cost + supplier shipping + supplier tax) − processing fees.

If you priced with "retail − base cost = profit," you baked in a markup that two real costs quietly eat. That is the beginner margin error, and it is almost always the answer to "why is my markup low."

A worked example: where the markup goes

Say you sell a Bella+Canvas 3001 tee. Watch what happens between the markup you think you have and the profit you keep.

Line Amount
Retail price $24.99
Shipping charged to customer $5.99
Customer pays $30.98
Base cost (mid-range tee) −$9.04
Supplier shipping (US, first item) −$3.99
Supplier tax (resale cert on file) −$0.00
Payment processing −$1.20
Your profit ≈ $16.76

Representative apparel base and shipping figures here follow a 2026 POD pricing breakdown (ecommerceceo.com, captured 2026-07-14); the processor line assumes a common rate of about 2.9% plus 30 cents per transaction (raccoontransfers.com).

On base cost alone, $24.99 − $9.04 looks like roughly 176% markup. But subtract shipping and fees and your actual profit is $16.76 — the markup on your full landed cost of $14.23 is closer to 118%. Still fine, but noticeably lower than the sticker suggested. On a cheaper product priced tighter, that same gap is what turns a "good" markup into pennies.

Reason two: you priced below what the product can carry

Print-on-demand is crowded, and the reflex when sales are slow is to drop the price. That is the fastest way to crush your own markup.

A widely cited benchmark is that the average POD profit margin sits around 20%, with a healthy target range of roughly 20% to 40% (Printful). If your realized margin is well under that, underpricing — not high costs — is often the culprit.

Racing competitors to the bottom on price ignores the one thing you control that they can't copy: a design and brand worth paying more for. Pricing to perceived value instead of cost-plus is the highest-leverage fix, and it's the core idea behind improving your markup without touching your supplier at all.

Reason three: "free shipping" isn't free

Offering free shipping doesn't delete the supplier's shipping charge — it just moves it onto your side of the ledger. If a US tee costs you around $3.99 to ship first-item (ecommerceceo.com, 2026-07-14) and you advertise free shipping without raising the retail price, you just handed back four dollars of markup per order.

The gap between what you charge the customer for shipping and what the supplier bills you is the shipping spread, and it's a genuine margin lever. Free shipping is a fine strategy — but only when the shipping cost is baked into the product price, not absorbed. If your shipping economics feel off in either direction, it's worth understanding why a shipping margin runs high or why it runs low.

Reason four: every order is a single item

This is the lever most low-markup sellers never touch. Suppliers price shipping on a first-item / additional-item basis: the first unit pays the full rate, and each additional unit from the same provider in the same order ships at a much lower rate — commonly around $1.50 to $2.50 on apparel (ecommerceceo.com, 2026-07-14).

Watch what a second tee does to the same order:

Line Amount
Retail (2 × $24.99) $49.98
Shipping charged to customer (flat) $5.99
Customer pays $55.97
Base cost (2 × $9.04) −$18.08
Supplier shipping ($3.99 + ~$2.00) −$5.99
Payment processing −$1.92
Your profit ≈ $29.98

The second unit added about $13 of profit on roughly $16 of extra retail, because its shipping cost was only about $2.00 instead of $3.99. That's why average order value and bundling move your margin far more than shaving pennies off base cost. If your store only ever sells one item per checkout, your markup is structurally capped.

Reason five: wrong product, wrong provider, wrong plan

Three structural choices quietly set a ceiling on your markup before you price anything.

The product family fights you

Shipping scales with weight and fragility, not with base cost. A mug has a tiny base cost but ships fragile-packaged, so its landed cost is shipping-dominated and its true margin is thinner than the cheap base cost implies. Flat goods like stickers and posters ship cheapest; hoodies, canvas, and ceramics carry the heaviest shipping. If your catalog leans heavy or fragile, that's a markup drag baked into the SKU.

You're on a pricier provider than you need

The same blueprint costs different amounts depending on who fills it. For a Gildan 64000 tee in 2026, one comparison put the base cost around $12.95 on Printful versus roughly $6.21 on Printify's cheapest provider, narrowing to about $9.07 versus $4.97 once each platform's plan discount is applied (merchtitans.com, captured 2026-07-14). That three-to-four-dollar-per-shirt gap is pure markup. Printify's marketplace generally wins on base cost; Printful competes on owned-facility consistency. Neither is "right" — but paying more without needing the reliability is markup you're leaving on the table. Our guide to the best print providers on Printify walks through choosing on cost and speed.

You're skipping a discount you'd earn back

Both platforms sell a paid plan that lowers your per-unit cost. Printify Premium runs from $39/month, or from $24.99/month billed annually, advertising up to a 33% discount on products — though the everyday effective discount most sellers plan around is closer to 20% (printify.com/pricing, captured 2026-07-14). Printful Growth is $24.99/month, offers up to 33% off product pricing, and becomes free once your store reaches $12,000 per year in sales (printful.com/pricing, captured 2026-07-14).

These are pure volume calculations. Assuming roughly $2.40 saved per order, Printify Premium's monthly plan needs about $39 ÷ $2.40 ≈ 16 orders a month to break even. Below that, staying free is the higher-markup move; above it, not upgrading is quietly costing you.

Stop guessing which reason it is

The trouble with a low markup is that all five reasons look identical from a spreadsheet of retail prices. You can't see, per order, how much shipping and fees actually ate — so you tweak prices in the dark.

That per-order truth is exactly what PodVector is built to surface. It connects your Shopify, Meta Ads, Google Ads, Printify, Printful, and Stripe accounts and computes your true per-order profit — base cost, supplier shipping, and processing fees included, not "retail minus base." Victor, its AI operator, reads that live data and proposes the moves that matter, then executes the approved changes on your Shopify store. It doesn't touch your ad account, and it isn't a dashboard you have to read — it's an operator that tells you which of these five leaks is draining your markup. You can dig deeper into the full picture in our POD cost economics hub.

FAQs

Is markup the same as profit margin?

No. Markup is profit as a percentage of your cost; margin is profit as a percentage of the retail price. A $10-cost item sold at $20 has 100% markup but 50% margin. They describe the same dollar of profit from different angles, so always confirm which one you're measuring before deciding it's "low."

What's a good markup for print on demand?

There's no single right number, but a common benchmark puts a healthy POD margin in the roughly 20% to 40% range, with the industry average near 20% (Printful). If your realized margin sits well below that after all costs, you're likely underpricing or missing hidden supplier charges — not doomed by the model.

Why does my profit look smaller than my markup suggests?

Because the base cost in the product editor isn't your full cost. The supplier also bills you for shipping and, sometimes, tax, and your payment processor takes a percentage plus a flat fee. Model the complete invoice and the "missing" markup is almost always one of those lines.

Does raising prices always fix a low markup?

Not always — sometimes the cheaper fix is on the cost side: switching to a lower-cost provider for the same blueprint, bundling to spread first-item shipping across more units, or earning a plan discount. Pricing to perceived value helps, but only once you know your true landed cost.

Are mugs really low-markup even though they're cheap to make?

Often, yes. A mug's base cost is tiny, but it ships fragile-packaged, so shipping dominates its landed cost and its true margin is thinner than the base price implies. This is why "cheap to produce" and "high markup" aren't the same thing in POD.