kyslan

Kyslan / Library

Pricing

How to price a managed services contract

Updated 27 August 2026 · 12 min read · By Kyslan, a Northbeams product

The short answer

Price a managed services contract from your cost to serve one seat, not from what competitors charge. Add up fully loaded delivery labour, tooling per seat and any licences you carry, divide by seats served, then divide that cost by one minus your target gross margin to get the price. Price the exceptions separately, out of hours, projects, onboarding and offboarding, or they become free. Then set a minimum monthly contract value, because a small client costs nearly as much to run as a medium one.

Kyslan finds the unbilled work in your own PSA, then writes the change order that bills it. First report free, read-only. Claim it back →

Why competitor pricing fails

The most common way MSPs set a price is to find out what the shop down the road charges and land slightly under it. This fails for a reason that has nothing to do with courage: you do not know their cost structure, their client mix, or what their number includes. A $95 seat that excludes security tooling, out of hours and onboarding is a different product from a $125 seat that includes all three, and copying the first number while delivering the second is how an MSP works hard for a decade at 12% margin.

Market rates are useful for exactly one thing: telling you whether your cost-up answer is sellable. They are an input to the sanity check, not to the calculation.

Step 1: your true cost to serve

Everything that has to happen for a seat to be supported, per month:

CostIncludeNotes
Delivery labourYesSalary plus employer taxes, benefits, insurance. Service desk, field, escalation, anyone whose time is consumed by delivery
Tooling per seatYesRMM, PSA, endpoint security, backup, email security, MFA, documentation, remote access
Licences you carryYesOnly where you buy and resell. Pass-through at cost is a separate line
Subcontracted labourYesNOC, SOC, overnight cover, specialist escalation
Sales and marketingNoBelow gross margin. Recovered from the margin, not priced into cost
Admin and premisesNoSame. Overhead, not cost of delivery
The number nobody includes

Add the hours you deliver and do not bill. If 8% of your engineers' time goes to work that never reaches an invoice, that time is a real cost being funded by your recurring contracts, and leaving it out of the calculation understates your cost to serve by roughly the same 8%. Most MSPs do not know their figure, which is why the cost-up sum comes out optimistic. See where the money goes.

Getting to a per seat number

  1. Add up 12 months of fully loaded delivery labour.
  2. Add 12 months of tooling and subcontracted delivery.
  3. Divide by 12 for a monthly delivery cost.
  4. Divide by the total seats you served in an average month.

That is your blended cost per seat per month. It is blended across easy and hard clients, which is fine for setting a list price and useless for judging a specific account. For a specific account, use its own hours.

Step 2: set the margin, then the price

Pick a target gross margin for recurring managed services first, as a decision, before you look at any price. Then:

The formula

Price = cost to serve ÷ (1 − target gross margin)

At a cost of $46 a seat and a 60% target: 46 ÷ 0.40 = $115 a seat. Note this is division, not a markup. Adding 60% to $46 gives $73.60, which is a 37% margin, and that mistake alone accounts for a great many underpriced contracts.

Set the target margin high enough that it survives the things you have not thought of. Recurring work should carry a materially higher gross margin than projects or hardware resale, because that margin is what funds sales, management, tooling investment and the client who turns out to be harder than you priced.

A full worked example

A 9 person MSP serving 620 seats across 24 clients.

Monthly delivery cost

LineMonthly
5 delivery engineers, fully loaded at $6,400$32,000
Service desk coordinator, fully loaded$4,200
RMM, PSA, documentation$2,050
Endpoint security, email security, MFA$4,340
Backup and recovery$2,480
Outsourced overnight NOC$3,100
Total delivery cost$48,170

Cost per seat

$48,170 ÷ 620 seats = $77.69 per seat per month.

Price at three margin targets

Target marginCalculationPrice per seat
50%77.69 ÷ 0.50$155
60%77.69 ÷ 0.40$194
65%77.69 ÷ 0.35$222

If those numbers look high against your market, the honest conclusions are, in order of likelihood: the cost base is carrying too many seats-worth of labour for the revenue, the tooling stack costs more per seat than the service sells for, or seats are being served and not billed so the denominator is wrong. Reducing the target margin until the price looks familiar is the one response that guarantees the problem persists.

Check the denominator first

Before you conclude you are expensive, check that 620 is the number you are invoicing for. If 47 of those seats are being served and not billed, your real cost per billed seat is $84.06 and every price above is understated. Seat drift corrupts a cost-up model at the input, silently, which is why the reconciliation belongs before the pricing exercise, not after it.

Step 3: decide what is in and what is out

Write the boundary down at the level of "an engineer can decide in ten seconds". Vague inclusions do not get billed, they get absorbed.

Usually includedUsually separate
Service desk during contracted hoursOut of hours and public holidays
Patching, monitoring, antivirus, backupBackup restores beyond a stated volume
Support for existing users and devicesOnboarding and offboarding a user
Vendor liaison on covered systemsSupport for applications not on the covered list
Standard reportingProjects, migrations, office moves
Account reviewHardware and licence procurement

Step 4: set a floor

A 6 seat client does not cost a tenth of a 60 seat client to run. Onboarding, account management, reporting, reviews and the fixed slice of tooling all land almost identically. Without a minimum monthly contract value, small clients are subsidised by large ones and the subsidy is invisible in blended reporting.

Set the floor from your own fixed cost per client per month, plus the target margin, and apply it as a minimum rather than a per-seat exception. Clients below the floor pay the floor. It is a cleaner conversation than a special rate, and it does not create a precedent your next prospect will hear about.

Step 5: price the exceptions

Publish these on day one, in the agreement, with numbers:

An exception without a published price is not an exception. It is an inclusion you have not admitted to yet.

Discount discipline

  1. Discount the term, not the rate. A better price for a three year commitment is a trade. A better price for signing this month is a habit.
  2. Every discount gets an expiry date in the agreement. Permanent discounts are how a book ends up 20% below list with nobody able to say why.
  3. Remove scope before you cut price. A cheaper tier is a real product. A cheaper price for the same product tells the client your number was invented.
  4. Record the reason on the account. When revenue per seat is reviewed next year, an unexplained gap is indistinguishable from a leak.

Seven pricing mistakes

  1. Marking up instead of dividing. Cost plus 60% is a 37% margin. Cost divided by 0.40 is a 60% margin.
  2. Excluding unbilled time from cost. It is real cost, funded from your margin, and leaving it out flatters every number.
  3. Pricing off the competitor's headline. You cannot see what their number includes.
  4. No minimum contract value. Small clients quietly funded by large ones.
  5. Free onboarding. The most labour-intensive month of the relationship, given away.
  6. No annual uplift clause. Costs rise every year and the price does not, so margin erodes by default.
  7. One price for every client type. A 30 person accountancy and a 30 person manufacturer consume very different amounts of support, and one number cannot be right for both.

Once the price is set, the thing that decides whether you actually earn it is whether the work you deliver reaches an invoice. That is a reconciliation problem rather than a pricing one, and it is the one Kyslan exists to solve.

Common questions

How much should an MSP charge per user per month?

Derive it from cost rather than copying a market rate. Add fully loaded delivery labour, per seat tooling and any licences you carry, divide by the seats you actually serve, then divide that cost by one minus your target gross margin. Published market rates are only useful as a sanity check on the answer, because you cannot see what a competitor's headline number includes.

How do I calculate cost to serve per seat?

Take twelve months of fully loaded delivery labour, which is salary plus employer taxes and benefits for everyone whose time delivery consumes, add tooling and subcontracted delivery such as an outsourced NOC, divide by twelve, then divide by the average number of seats served in a month. Exclude sales, marketing and admin, which sit below gross margin. Include the hours you deliver and never bill, because that cost is real.

What margin should an MSP price recurring contracts at?

High enough that the margin still funds sales, management and tooling investment after the accounts that turn out harder than modelled. Recurring managed services should be priced at a materially higher gross margin than project or hardware work, because tooling cost is fixed and engineering labour is leveraged across clients. Set the target as a decision before you look at any price.

Should an MSP have a minimum contract value?

Yes. Client-level costs such as onboarding, account management, reviews and reporting are nearly identical whether the client has six seats or sixty, so without a floor your small clients are subsidised by your large ones and blended reporting hides it. Apply it as a minimum monthly value rather than a special per seat rate, which avoids setting a precedent.

Should MSPs include onboarding in the monthly fee?

Generally no. Onboarding a client or a user is the most labour-intensive part of the relationship and giving it away is the largest discount most MSPs grant without recording it as one. Publish a fixed onboarding fee per user and a one-off site onboarding fee, and put both in the agreement from day one.

Keep reading

See your own number, then send the invoice for it

Kyslan reads 90 days of your tickets, time entries and contracts, finds the work you delivered and never billed, then writes the change order that puts it back on the invoice. Read only, nothing installed, first report free.

Claim it back

Free · read-only key · no card · HaloPSA, ConnectWise Manage, Autotask PSA or a CSV export