Contracts in BMS can be created with or without an expiry date — the expiry date controls when BMS considers the contract to have ended its fixed term and transitions it to Ongoing status.
Contract expiry settings are managed on the contract record in Billing → Contracts.
Contracts Without an Expiry Date
If a contract is created without an expiry date, it transitions to Ongoing status immediately after it is activated. Ongoing contracts continue to bill and operate indefinitely until manually ended.
Contracts With an Expiry Date
When an expiry date is set, BMS monitors the contract's billing periods against that date. The contract automatically transitions to Ongoing when its latest open billing period moves past the expiry date minus the default termination period.
The termination period is a buffer — a number of days before the expiry date at which point BMS treats the contract as having run its course. This allows the final billing period to be processed cleanly before the contract formally ends.
The Nightly Catch-All
Beyond the two rules above, BMS runs a catch-all as part of the nightly generate pending billings background task. Each night, the task evaluates active contracts and transitions to Ongoing any contract that meets the expiry criteria but has not yet transitioned — including contracts that were previously set to Active incorrectly and should already be Ongoing. In practice this means a contract that qualifies for Ongoing status will be picked up within a day even if it was missed at activation or billing time.
Preventing the Transition to Ongoing
If a contract is genuinely ending rather than rolling over, schedule its termination before the expiry date falls within the default termination period from the current date. A scheduled termination stops the contract from lapsing into Ongoing status.
Managing Contracts Approaching Expiry
It is good practice to review contracts ahead of their expiry date and decide the outcome deliberately:
Renew the contract with a new term by updating the expiry date on the contract record before the termination period is reached.
Terminate the contract by scheduling a termination, as above.
Allow it to lapse into Ongoing status, where it continues billing on its existing terms until ended manually.
Related Articles
Billing - Creating Contracts
Billing - Contract Reconciliation
