Profit is what's left after the fees you forgot

September 15, 2026 by Michael

You know your revenue to the penny. You know your material cost if you’ve written down the recipe. And then there’s the third layer: the 2% the payment gateway kept, the mailer bag, the handling fee for the courier pickup. Small numbers, on every single order, that nobody writes down because each one is too small to bother with.

They add up to a margin you don’t actually have.

Panelque counts them in two places, and both land in the same profit number on every order.

Transaction fees, without asking

For Shopify Payments, Shopify reports the exact fee on each transaction, and Panelque uses that number as-is. Nothing to configure.

Third-party gateways are the gap. Shopify shows the full amount as paid; the gateway quietly settles you less. For those, Settings → Gateway fees lets you describe the fee structure once – a percentage and a flat amount per transaction:

Fee = amount × percentage / 100 + flat fee

From then on every transaction through that gateway carries its calculated fee into the order’s cost breakdown. Panelque only offers you gateways that have actually processed transactions in your store, so the list is your list, not a catalog. For common gateways there are presets with the standard rates – Przelewy24 and PayPo are there today – and you can always type your own.

One rule worth knowing: a reported fee always wins over a calculated one. The configuration fills the silence; it never overrules what the gateway actually charged.

The costs that belong to one order

The second layer is everything that isn’t a component and isn’t a fee, but still walked out the door with a specific order. Special packaging. A shipping surcharge. The extra handling on a fragile parcel.

On the order page, Additional costs takes free-form entries – a name and an amount. But the point is the templates: save “Mailer bag – 1.20” once and it’s a single click on every future order. Templates live in Settings → Additional cost templates, can be organized into groups (Shipping, Packaging, Fees – whatever matches how you think), and drag into the order you actually use them in, so the frequent ones sit on top.

Retired a packaging supplier? Hide the template. It disappears from the order page but every cost it ever added stays exactly where it was. Hiding is for the future, never the past.

Pay later, but count now

Some of these costs you don’t pay per order – the courier invoices monthly, the packer settles weekly. Marking a template cost as Pay later keeps it in the order’s profit immediately but defers the actual payment: the Expenses page keeps a running balance per template, and when the invoice arrives you add a cover for the amount paid.

The order’s margin was right on day one; the bookkeeping catches up when the money moves.

Where it all lands

Open any order and the cost side reads in full: inventory costs from the recipe, transaction costs from the gateway, additional costs from the templates. The Orders dashboard sums the same three across any period, next to revenue and profit. There is no separate “fees report” to remember to check – the fees are simply in the profit, where they always belonged.

The counting rules we settled on

  • Only successful transactions carry fees. A failed or voided payment attempt costs you nothing, so it counts as nothing.
  • Reported beats calculated. If Shopify provides the fee, that exact amount is used; your configuration only covers gateways that stay silent.
  • No configuration means zero, visibly. An unconfigured gateway shows zero fees rather than a guess – a number you can notice and fix, instead of an estimate you’d learn to distrust.
  • Pay later is about the payment, not the profit. Deferred costs hit the order’s margin the moment you add them.

What it changed for us

We configured our gateways in an afternoon, mostly by copying two numbers off a pricing page. The surprise wasn’t any single fee – it was seeing the transaction cost column on a month of orders and realizing it was the size of a supplier invoice. It had always been there. It just hadn’t been anywhere we looked.

In the documentation

Keep reading