Skip to main content
Best Practices

Getting the contract term right on every quote

Set the workspace default to the term you sell most, change Contract duration on each quote in Manage settings — templates cannot set it — and add a hidden reminder so reps confirm the term before they send.

Written By Mike Forte

Last updated 6 days ago

Contract duration is how long the deal runs — 12 months, 36 months, 3 years. It is a single setting on the quote. It is not the billing Term on a line (monthly, yearly, and so on). Every recurring line still bills on its own Term. The quote duration is the window those recurring amounts run over, and it is what Salesbuildr uses for contract-term totals, leasing payments, opportunity value, and how many times a Professional Services Automation (PSA) system should bill the line.

A new quote does not take this value from the quote template. It takes it from the opportunity, and the opportunity takes it from a workspace default. Out of the box that default is 12 months. If your team mostly sells three-year agreements and nobody changes the quote, the proposal, the lease, and the PSA all look like a one-year deal.

Why the default term is easy to miss

Reps often assume the template they picked — managed services, hardware, project — already set the right term. It did not. The template settings tab has no Contract duration control. Creating a quote from a template ignores any duration stored on the template. Applying a template to an existing quote updates layout and widgets only; it does not change the term.

The only place a rep sets the term for that proposal is Manage settings on the quote.

Leave the default in place on a longer deal and you get:

  • Wrong recurring totals. Show contract term total multiplies recurring lines across the quote duration. A 36-month managed-service quote that still says 12 months shows one year of contract value, not three. Yearly total-cost-of-ownership figures are omitted or show as zero when the duration is in months and is not a multiple of 12 (18 months is a common miss).
  • Wrong leasing calculations. The leasing monthly payment uses the quote duration (or a fixed leasing term your admin set). The wrong term produces the wrong payment. If the quote has a Leasing summary and no configured leasing period matches the duration, Salesbuildr blocks send: Cannot send quote because there is no valid leasing term selected.
  • Wrong PSA billing window. ConnectWise cannot calculate a recurring end date without a duration — sync fails with The quote contract duration is not set. HaloPSA writes Number of periods from the duration; an empty duration sends 0 (open-ended billing), and a 12-month duration on a three-year yearly line sends 1 period instead of 3.
  • Wrong opportunity value. Once a primary quote exists, the opportunity Contract duration follows the quote. Pipeline value is then calculated for the wrong number of months.

1. Set the workspace default to the term you sell most

Do this once, as an admin, so most quotes start on the right term and reps only open Manage settings for exceptions.

  1. Go to Settings → Opportunities.
  2. Open the Settings tab.
  3. Under Default values for Opportunities, find Calculate total for # months.
  4. Enter the length you sell most often — 12 for annual agreements, 36 for a typical three-year managed-services term.
  5. Do not clear this field to force reps to enter a term. Checking Required with an empty default does not make the duration mandatory: new quotes fall back to 1 month.
  6. Click Save.

New opportunities pick up that number. When someone creates a quote on that opportunity, Contract duration starts as the same number of months. A new Salesbuildr workspace ships with 12. If the field was cleared and never saved again, new opportunities fall back to 1 month — treat that as a misconfiguration, not a second official default.

This setting is not under Settings → Quotes. Quote configuration can turn on Show contract term total (off by default) so the proposal shows the full-term figure, but it does not set how long the term is.

You can still change Contract duration on an individual opportunity before the first quote exists. After a primary quote exists, that opportunity field is disabled and follows the quote — change the quote, not the opportunity.

2. Change the term on the quote — templates cannot do it

On every quote that is not your default term (and as a habit on every quote before send):

  1. Open the quote.
  2. Open Manage settings from the Actions tab (or the ⋯ menu).
  3. Set Contract duration — a number plus months or years.
  4. Set Contract start date when it appears (it is available once a duration is set). Recurring lines share that one start date; there is no per-line billing start.
  5. Save.

If the quote has a Leasing summary, Contract duration may be locked with the note that it follows the equipment leasing term. Pick the right term on the leasing widget instead; the quote duration follows.

Copy quote copies the source quote's duration. Apply template does not. Either way, open Manage settings and confirm the term matches the deal you are about to send.

Turn on Show contract term total in the same dialog (and on the Financial summary / Summary widget) so the full-term number is on the page. A 36-month total that still looks like 12 months is the fastest way to catch a missed change. Show one time and recurring total summary still lists each billing Term separately — the contract-term total is extra, not a replacement. See Presenting licenses and services so clients see the value.

Write the term in visible proposal copy as well (a content block or the line description). The client only sees Contract duration in settings if you also put it on the page.

3. Add a hidden reminder at the top of every template

Because the template cannot store the term, put a reminder the rep sees and the customer does not.

  1. Go to Quotes → Templates and open each template your team uses to send.
  2. In the left-hand outline, click + above the first widget (or add the widget and drag it to the top).
  3. In Insert Quote Widget, choose Content & Products for a short note, or HTML Content if you want to paste a merge field.
  4. Give it a title your team will recognize, such as Confirm contract term.
  5. Write the reminder, for example: Open Manage settings and confirm Contract duration before you send. This template does not set the term. The workspace default is 12 months unless an admin changed Calculate total for # months.
  6. On the widget, click the eye icon (Toggle to hide this widget), or open the widget editor and turn on Hidden. Quote managers still see the block in the editor (Spreadsheet View marks it Hidden). The customer does not see it in presentation view or on the PDF.
  7. Click the lock icon so a rep cannot remove or reorder the reminder. Locked widgets stay on every quote created from the template.

If you used HTML Content, open Available template variables in the Edit tab, copy the quote contract-duration field, and paste it into the reminder so the live quote shows the current term (for example “12 months”) instead of only a static warning. Tokens fill in on the live quote, not in the template preview. See HTML content, variables, languages, and starter templates.

Build the reminder once and reuse it as a linked widget if you maintain several templates.

4. Name templates by term (optional)

Name templates by the term they are meant for, for example Managed Services – 36 months. The name prompts reps to think about the term when they start the quote. The name does not set the duration; the rep still confirms it in Manage settings.

5. Review multi-year quotes before sending

A second check before send catches a missed change. If your team uses approvals, that review is another chance to confirm the term. See Users, roles and approvals as your team grows.

Checklist before send

  • Calculate total for # months matches the term you sell most
  • This quote's Contract duration in Manage settings matches the deal (months or years)
  • Contract start date is set when the deal has a start
  • Recurring line Term values are the billing cadence, not a substitute for duration
  • For yearly lines, the duration is a whole number of years (or a multiple of 12 months)
  • Show contract term total shows the number you expect
  • If the quote uses leasing, the leasing term and monthly payment match the deal, and send is not blocked
  • The hidden reminder is still at the top of the template, locked and hidden from customers
  • Visible proposal text states the term the customer is agreeing to

See also