Navigation
14.8. Schedule Time-Bound Rate Changes on MSP Client Contracts
Use AlgaPSA pricing schedules to apply scheduled rate increases, promotional rates, or fixed-window pricing on MSP fixed-fee contract lines without editing the base contract.
Pricing schedules let you define time-bound rate overrides on a fixed-fee contract. Use them to lock in a future price increase, run a promotional rate for a fixed window, or build an auditable history of rate changes — all without editing the contract's base configuration or its underlying lines.
Navigate to Billing > Contracts > Client Contracts > [contract] > Pricing Schedules.
What a Pricing Schedule Does
By default, a fixed-fee contract line bills at the rate defined on the contract. A pricing schedule overrides that rate for a specific date window. During invoice generation, the billing engine identifies the service period for each fixed-fee line, looks for a pricing schedule whose window overlaps that period, and uses the schedule's custom rate instead of the contract-level rate.
Precedence, highest to lowest:
- Active pricing schedule with a custom rate (for the overlapping service period)
- Contract line
custom_rate(the rate set when the line was added or via Edit Pricing) - Service / plan configuration (the underlying fixed-fee pricing on the contract line's services)
If a schedule applies but is set to Use default rate, the schedule itself does not impose a rate — billing falls through to the contract line's underlying fixed-fee pricing for that window. This is the right way to explicitly document a "back to normal" period between two custom-rate windows.
Pricing schedules apply to fixed-fee contract lines only. Hourly and usage-based lines are not affected.
Viewing Pricing Schedules
The Pricing Schedules tab on the contract detail page shows two views of the same data:
- A Pricing Timeline — a visual representation of all scheduled rate changes, with each window's date range (or "Ongoing" when there is no end date), the custom rate or "Default rate," and any notes.
- A data table with columns: Effective Date, End Date (or "Ongoing"), Custom Rate (or "Use default rate"), Notes, Actions.
Each row in the table has a kebab menu with two actions: Edit Schedule and Delete Schedule. Clicking a row also opens the editor.
If no schedules exist, the tab shows: "No pricing schedules yet. Add pricing schedules to define time-based rate changes for this contract."
Adding a Pricing Schedule
Click Add Schedule to open the Add Pricing Schedule dialog.
- Effective Date (required) — the date this rate window starts.
- Choose how to define the duration:
- Toggle Use duration on to enter a Duration (a positive number) and Unit (Days, Weeks, Months, or Years). The end date is computed for you from the effective date plus the duration.
- Leave Use duration off and you'll see a Has end date toggle. Turn it on to pick an explicit End Date. Leave it off to make the schedule ongoing — it stays in force indefinitely until you edit it or add an end date.
- Choose the rate:
- Toggle Use default rate on to mark the window as using the contract line's underlying fixed-fee pricing. Useful for documenting a "back to normal" period between two custom-rate windows.
- Leave it off and enter a Custom Rate in dollars — this overrides the contract line's underlying pricing during the window.
- Add Notes (optional) — for example, "2026 annual rate increase" or "Q1 promotional rate."
- Click Add Schedule to save.
No-overlap rule. Pricing schedules on the same contract cannot overlap. If you try to add a schedule whose window touches an existing one, Alga returns "This schedule overlaps with an existing pricing schedule" and refuses to save it. A later schedule will not silently supersede an open-ended one — you must first close out the prior schedule by setting its end date.
Editing and Deleting Schedules
- Edit Schedule lets you modify the dates, rate, or notes. The same overlap and date-order checks apply on save.
- Delete Schedule removes the schedule. Already-generated invoices are unaffected. For service periods previously covered by the deleted schedule, future runs fall back to the contract line's underlying fixed-fee pricing (its
custom_rate, or the service/plan configuration if no line-level rate is set).
How Pricing Schedules Affect Invoices
When an automatic invoice is generated for a fixed-fee contract line:
- The billing engine determines the service period for the line.
- It queries for a pricing schedule on the contract whose effective date is before the service period's end and whose end date is either null or after the service period's start — that is,
[start, end)semantics. A schedule starting exactly on the service period's end date does not apply to that period; it applies to the next one. - If a matching schedule has a
custom_rate, that rate is used for the charge calculation for the period. - If no matching schedule has a custom rate, billing falls back to the contract line's
custom_rate, and then to the line's service/plan configuration.
Already-generated invoices are not retroactively recalculated when schedules change.
Constraints
- Per-contract scope. Schedules are configured on the contract, not on individual services or contract lines. When a schedule applies, it affects fixed-fee pricing for the contract's recurring fixed-fee lines during that window.
- Fixed-fee only. Hourly and usage-based contract lines are unaffected by pricing schedules.
- System-managed defaults are read-only. The auto-created attribution contracts that capture uncontracted work are system-managed defaults; pricing schedule authoring is disabled on them. The tab displays "This system-managed default contract is attribution-only. Pricing schedule authoring is disabled."
- No overlap. Two schedules on the same contract cannot share any time. Close out an open-ended schedule before opening a new one.
Example: Annual Rate Increase
A managed services contract for an MSP client has a base rate of $2,000/month. You've negotiated a $2,200/month rate effective January 1.
- Click Add Schedule.
- Effective Date: January 1.
- Use duration: off. Has end date: off (this is an ongoing increase).
- Use default rate: off. Custom Rate: 2200.00.
- Notes: "2026 annual rate increase."
- Click Add Schedule.
From January 1 forward, every invoice generated for this contract's fixed-fee lines will bill at $2,200. The change appears in the Pricing Timeline alongside any prior schedule history, giving you a clear audit trail of how the contract's effective rate has evolved. The base contract configuration remains untouched, so renewals, exports, and contract templates still reflect the negotiated baseline.
