Client agreements
An agreement is the contract between your practice and one client. It says what the client pays every billing period, and it decides how each piece of work your team logs for that client is billed: included in the contract, drawn from prepaid hours, billed by the hour, or written off. This page shows how to write an agreement, activate it, and look after its prepaid hours.
Before you begin
Section titled “Before you begin”- You are on the MSP plan. See Outpost for MSPs.
- Writing, activating, and ending an agreement needs
psa:write. Buying prepaid minutes needspsa:invoice. Reading agreements needspsa:read. - Define your charge types first, because agreement rules match on them. See Billing catalog.
How an agreement works
Section titled “How an agreement works”An agreement has three parts:
| Part | What it does |
|---|---|
| Details | The dates, the Billing day the agreement bills on, the Default hourly rate for billable work, and the Default charge type for time logged on tickets. |
| Lines | What the agreement bills every period, before any time on top. |
| Rules | How each time entry logged for this client is classified. |
A client has at most one active agreement. Its status is one of:
| Status | Meaning |
|---|---|
| Draft | Being written. A draft bills nothing at all. |
| Active | The client’s live agreement. It bills on its billing day and classifies work logged while it is active. |
| Ended | No longer in force. Work logged after it ends is not classified by it. |
Until a client has an active agreement, the time logged for it stays Unclassified and nothing recurring is billed. Unclassified time is classified by the agreement’s rules when the next invoice is drafted.
| Kind | Bills |
|---|---|
| Fixed | A flat amount every period. |
| Per device | The unit amount times the client’s billable endpoints that match the line’s device filter, counted when the invoice is drafted. With no filter, every live computer. |
| Per user | The unit amount times the client’s named users, counted when the invoice is drafted. |
| Per seat | The unit amount per named user, with devices included per seat and an overage price for devices beyond them. |
| Prepaid block | Its unit amount every period, and adds its Included minutes to the block’s balance. Prepaid rules draw the block down. |
Per device, per user, and per seat lines carry no quantity on the agreement. The count is taken at invoice time and recorded on the invoice. To price servers and workstations differently, add add-ons, or bill per seat, see Bill by device type and seat. To bill devices and people that come and go during the period, see Bill seat and device changes. A line that has been saved can be edited but not removed. Set its amount to zero to stop it billing.
An agreement that starts part way through a period bills its lines for the days from its start date to the end of that period. The invoice line says so, for example “prorated 8 of 31 days”. An agreement that started before the period bills the whole period.
Rules are tried top to bottom; the first match decides. Each rule matches on any combination of:
- Charge type, or Any.
- Ticket type, or Any type. Shown when the client has ticket types.
- Out of hours: Any, Yes for work outside business hours only, or No for work inside them only.
Each rule reaches one Outcome:
| Outcome | What happens to the work |
|---|---|
| Covered | Included in the recurring charge. It bills nothing extra, and it still counts in profitability reports. |
| Prepaid | Drawn from the rule’s Prepaid block. Work beyond the remaining balance bills by the hour for the overflow only. |
| Billable | Billed on the next invoice at the rule’s Rate, or the agreement’s Default hourly rate when the rate is empty. |
| Excluded | Not billed and not counted. Use it for work you write off. |
Work that no rule matches is billed by the hour at the agreement’s Default hourly rate. To treat unmatched work differently, for example as covered, put a catch-all rule with Charge type set to Any at the bottom.
Time is classified when it is logged, and classified again when its duration, start, or charge type changes. A time entry not marked billable is never billed, whatever the rule says.
Default charge type
Section titled “Default charge type”Default charge type is what the Time tab on this client’s tickets preselects in Charge type while the agreement is active. Choose the kind of work most of the client’s tickets are, such as Labor for a client billed by the hour, so technicians change it only for the exception. Rules match on charge type, so the default decides which rule most ticket time is classified by.
- Not set means Labor, which is also what a client with no active agreement gets.
- It applies to new time only. Changing it never changes time already logged.
- It does not apply to time logged on project tasks.
- Agreement templates have the same field. An agreement written with Start from a template, or created when a client accepts a quote built on a template, copies it. See Billing catalog.
See Time tracking and dispatch.
Write an agreement
Section titled “Write an agreement”- Open the client’s workspace, then select Client billing > Agreements.
- Select New agreement.
- In Details, enter a Name.
- To start from one of your agreement templates, choose it in Start from a template. It copies the template’s lines, rules, billing day, default rate, and default charge type into the form, and you can change any of them before saving.
- Enter Starts on. Leave Ends on empty for an open-ended agreement.
- In Billing day, enter the day of the month the agreement bills on, from 1 to 28.
- In Default hourly rate, enter what billable work costs when the rule that matched names no rate of its own.
- Optionally, in Default charge type, choose the charge type most of this client’s ticket work is. See Default charge type.
- Under Lines, select Add a line for each recurring charge. Choose the Kind, then enter the Description the invoice shows and the Unit amount. For a prepaid block, also enter Included minutes.
- Under Rules, select Add a rule for each way work is classified, and use Up and Down to order them.
- Select Save.
A Prepaid rule has to name a block, and a block has no identity until the agreement is saved. If you are adding a prepaid block, save once, then set the rule’s Prepaid block and save again.
An agreement with no lines bills nothing every period. That is right for a time-only contract.
Activate the agreement
Section titled “Activate the agreement”- Open the agreement.
- Select Activate.
- Confirm with Activate.
If the client already has an active agreement, activation is refused with This client already has an active agreement. End that one first. An agreement created from a renewal quote replaces the one it renews when you activate it, so you do not end the old one first.
End an agreement
Section titled “End an agreement”Select End agreement and confirm with End. Work logged after today is no longer classified by it.
Look after prepaid hours
Section titled “Look after prepaid hours”Each prepaid block on a saved agreement has a Prepaid block card. It shows the minutes left, the minutes sold, and every movement of the balance, with When, What, and Minutes. The balance is the sum of those rows, so it always agrees with them.
Minutes are drawn from the block when the period’s invoice is drafted. To add minutes to the block:
- In Minutes to add, enter the minutes.
- In Note, describe the purchase.
- Select Buy minutes.
Buying minutes adds them to the balance and raises no charge. Bill the client for them separately, for example with an adjustment on a draft invoice.
The client’s billing contact is emailed when a block falls below the warning level in the invoicing settings. See Invoice clients.
Quote a renewal
Section titled “Quote a renewal”When an agreement is coming to an end, select Quote a renewal on the
agreement. Outpost builds a draft quote from the agreement’s monthly lines at
their current prices and opens it in the quote editor, so you can review the
prices before the client sees them. This needs crm:write. A client can
have one open renewal per agreement. An agreement with a per seat line cannot
be renewed this way, because a quote cannot carry per seat lines.
Outpost can also raise renewal quotes on its own a set number of days before an agreement ends. See Sales pipeline and quotes.
See every agreement
Section titled “See every agreement”At the practice level, Client billing > Agreements lists agreements across your clients. Client chooses whose agreements you see, and the views Active, Drafts, and Everything choose which. The search box matches the agreement name only.
Verify
Section titled “Verify”- The agreement shows Active on the client’s Agreements page.
- On Client billing > Unbilled time, with the Everything view, new time logged on one of the client’s tickets shows Covered, Prepaid, Billable, or Excluded rather than Unclassified.
Next steps
Section titled “Next steps”Content is licensed CC BY 4.0. Code samples are MIT. Outpost and the Outpost mark are trademarks of Outpost Business Solutions, PBC and are not covered by either license.