Skip to content
Opentra
← Blog

The margin trap

21 July 2026 · Myles

Ask a small MSP owner where the margin went this year and you’ll rarely hear “we lost a client.” It’s quieter than that. The rates on your contracts were set a year or two ago. The cost of actually delivering the work, wages, security tooling, insurance, has climbed since. The gap doesn’t announce itself. It just shows up as a month where the team ran flat out and the bank balance barely moved.

That’s the margin trap. And here’s the part that doesn’t get said enough: a good chunk of it isn’t a pricing problem. It’s a plumbing problem. And the plumbing you can fix this quarter.

Margin leaks in the gap between doing the work and billing it

The squeeze everyone talks about is the rate versus cost gap. The one that quietly compounds is the gap between the work you did and the work that made it onto an invoice:

  • Time that never gets logged. A tech fixes something in six minutes between other jobs and never opens a timer. Do that a dozen times a day across the team and you’ve given away a technician’s afternoon, every day, for free.
  • Out-of-scope work that gets absorbed. The job drifts past what the contract covers, nobody flags it, and it just becomes part of “looking after the client.” Goodwill is fine when you choose it. It’s expensive when it’s an accident.
  • The month-end reconstruction. If billing means someone rebuilding a fortnight from memory, half-remembered emails and a spreadsheet, the version that gets invoiced is always the conservative one. You round down, because you can’t prove the rest.

None of that is a rates conversation. It’s leakage, and it’s happening between your inbox, your timer and your invoicing because those are three different places.

One system from first email to paid invoice

This is the whole reason Opentra exists. The path a client request travels, first email, to ticket, to tracked time, to a contract, to an invoice in Xero, runs through one system instead of four. So the work gets captured where it happens, not reconstructed later:

  • Inbound email becomes a ticket against the right client automatically, so nothing starts life as an unrecorded favour.
  • Time logs against that ticket while the work is fresh, not from memory on the 30th.
  • Out-of-scope work is visible against the contract, so you can decide to bill it or gift it, on purpose.
  • Month-end is a review, not an archaeology dig.

You’re not billing more than you earned. You’re billing what you already did and used to lose track of.

Flat pricing so your tools don’t widen the gap

The other half of the trap is the tooling bill climbing right alongside your delivery cost. As it gets more expensive to do the work, the last thing you need is software that charges you more for growing. Opentra is flat on every tier: Community free and self-hosted, Pro at $149/mo with unlimited techs and client orgs, or Opentra Cloud at $249/mo hosted with a 99.9% uptime SLA. Add the tenth tech or the hundredth client and the number holds.

The honest version

Opentra won’t reprice your contracts, and if your rates are genuinely below cost, no tool fixes that. What it does is make sure the work you actually did is the work you actually bill, and stop your own stack from being one more line item that grows faster than your margin.

If you’ve had a month that felt busy and paid like it wasn’t, the leak is usually in the plumbing. See how the workflow fits together at opentra.net.

Notes from building Opentra. Built by an MSP. Designed for yours.