Skip to content
MSP Sales

The MSP Service Proposal Template That Separates Recurring From One-Time

Scopable Team5 min read
The MSP Service Proposal Template That Separates Recurring From One-Time

Most MSP proposals lose money before the client ever sees them. Not because the price is wrong. Because the monthly number and the project number get buried in the same total, and three months later someone is doing work the retainer was never priced to cover.

The fix is structural, not cosmetic. Put recurring and one-time on separate lines, write the scope and the exclusions next to the price, and let the client sign what they can actually see.

Here is the copyable structure, plus where it breaks if you skip a piece.

The one rule the whole template hangs on

A service proposal has two different totals, and they answer two different questions.

  • Recurring: what the client pays every month to keep this running.
  • One-time: what the client pays once to get set up, migrate, or harden.

If those two numbers share a line, the client cannot budget either one, and you cannot tell where your margin is leaking. Every winning managed services quote puts three numbers on the page: the monthly retainer, the one-time work, and the total. MSP quoting done right keeps them separate.

Pick one pricing model for the retainer and stick to it. Per user bundles everything a person needs into a single monthly figure and scales as the client hires. Per device charges for each managed endpoint and works better when there is a lot of shared or IoT equipment with no clean person-to-machine mapping. Do not mix the two inside the same proposal.

The copyable sections

1. The monthly plan

List the retainer as a table, one line per line item. Each row needs the unit, the rate, the quantity, and the subtotal.

For a 35-user shop this looks like:

  • Managed IT services: $125 per user per month, 35 users, $4,375 monthly
  • Microsoft 365 Business Standard (pass-through): $22.50 per user per month, 35 users, $787.50 monthly
  • Endpoint security: $8 per device per month, 40 devices, $160 monthly

The client sees one clean monthly total. Your per-user number is yours. The mistake is burying the monthly figure inside a project total, or the reverse.

2. The one-time work

Onboarding, migration, a security audit, hardware. Anything that is not recurring goes here, on its own line, priced once.

  • Onboarding and inventory: $2,400 once
  • Security hardening and baseline: $1,800 once

Show the one-time total separately from the monthly. If the client asks for a hardware quote, add it here as pass-through rather than folding it into the retainer and pretending it is margin.

3. What is included

Put the scope next to the price, not in an appendix. Clients sign what they can see. Be specific enough that the engineer can validate it later.

  • Remote support during business hours
  • Patch management for operating systems and core applications
  • Monitoring and proactive alerting
  • A named account manager

4. What is not included

This is the line that stops scope creep six weeks after kickoff. Anything not listed as included is out of scope, and this section says so in plain language.

  • After-hours on-site work
  • Line-of-business application development
  • Projects over eight hours, quoted separately
  • Hardware procurement and physical installation

The "not included" list is where margin protection actually happens. A vague scope is the single biggest cause of managed services scope creep, and it is almost always the MSP, not the client, who absorbs the difference.

5. Service levels

Convert the vague promise into something the client can hold you to, and hold themselves to. A three-tier table is enough.

PriorityMeaningResponseResolution
CriticalBusiness down15 minutes4 hours
HighSingle user blocked1 hour8 hours
StandardDegraded, workaround exists4 hours2 business days

Keep this short. The SLA is the contractual heart of the deal because it turns "we respond fast" into numbers.

6. Term, renewal, and change orders

State the contract length, the renewal terms, and how changes get handled. Mid-term changes are where generic tools and static templates both fail. If the client adds 12 seats six months in, they need a change order, not a full re-negotiation of the entire agreement.

Write one line: changes to endpoints, users, or SLA are handled by change order, not a rewritten proposal.

Where static templates stop helping

A static template gets you a clean first draft. It does not keep the scope current after the client signs.

Six months in, the client has added seats, retired hardware, and moved to Microsoft 365. Your template still shows the original numbers. When it is time to renew or run the quarterly business review, someone has to reconcile what the environment actually looks like against what the paper says.

The better workflow keeps the proposal connected to the live client data. When asset counts and license counts update automatically, the recurring total stays honest without a manual recount, and the scope you quote matches the scope you actually deliver. For how scope should flow into a defensible quote, start with how to scope an MSP project.

If you want the copyable scope and SOW pieces that sit next to this proposal, grab the MSP scope of work template and the proposal template that handles qualification and pricing options.

For the product workflow that keeps the proposal's numbers tied to the live environment instead of a static spreadsheet, see MSP quoting software.

If you want to send a quote that matches the environment it describes, start a free Scopable account.

Buyer path

Where this fits in Scopable

This article feeds the quoting cluster: client context, scope, products, labor, and review in a quote your team can defend.

Need the decision framework first? Read the MSP quoting guide. Start with scope, labor, and approval decisions before evaluating a quoting workflow.