Running the close

Start a close run by hand or on a monthly schedule, choose which periods it closes and its usage cutoff, and see how approved periods stay locked.

On this page

A close run applies every contract's terms to the usage you've imported. It drafts one line per contract and period, with a full calculation trace, and raises the exceptions that need a person. A run never approves or pushes anything. You can repeat a run as often as you like: approved lines never change.

Start a run by hand

Open Close runs and choose New run. The form has four fields:

FieldWhat it doesDefault
Close periods ending byCloses every period that ends on or before this date.The first of this month, so last month closes.
Only periods starting fromOptional. Skips periods that start before this date.Empty: no lower limit.
Usage cutoffUsage imported after this moment is left for the next run.Now.
ContractsTick contracts to run only those.All unticked: every active contract.

Period end dates are exclusive. A run set to close periods ending by 2026-10-01 closes September, and a quarter that runs July to September, but not a quarter that ends in December.

Archived contracts are never included. A run usually takes seconds. When it finishes you land on the run page to review the lines.

Analysts, approvers and admins can all start runs. Only approvers and admins can approve and push. See team and roles.

The usage cutoff

The cutoff is about when usage was imported, not when it happened. Rows imported after the cutoff are left out of the run, and an Info exception, imported_after_cutoff, says how many. They count in the next run.

This gives each run a fixed input. If someone uploads a corrected file while you're reviewing, rerun to pick it up.

Close time zone

Admins set the close time zone in Settings › General. It decides which day a line-level event falls on. An event at 2026-09-30T23:30:00Z is a September event in UTC but an October event in a time zone ahead of UTC. Monthly aggregate rows are dated by their period_start, so the time zone doesn't move them.

The time zone also decides the date of a scheduled close (below). New workspaces start on UTC.

Scheduled close

Admins can have the close run on its own each month. In Settings › General, set Scheduled close, day of month to a day from 1 to 28. Leave it empty to turn it off.

  • TrueUpp checks once a day, at about 12:05 UTC. If that moment falls on your close day in your close time zone, it starts a run.
  • The run closes every period that ended by the first of the current month, in your time zone. Its usage cutoff is the moment it starts. It covers every active contract.
  • At most one scheduled run starts per day.
  • When it finishes, every admin and approver gets an email with the expected true-up, the number of lines, the number of Review and Data exceptions, and a link to the run.
  • Nothing is approved or pushed automatically. A person still reviews every line.

Scheduled runs are marked scheduled in the run list, and the audit log records them under "scheduled close".

Locked periods

Once a period's line is approved, it is locked. Lines that are pushed, invoiced or voided in your billing system stay locked too. Later runs never recalculate a locked line.

A later run still replays a locked period with the usage it has now. If the replay differs, for example because late usage arrived, the difference is drafted as an adjustment on the next open period. The adjustment points back at the period it relates to. It is priced under the terms in force for that period, continuing its tiers, and it raises a late_usage exception for a person to accept. If there's no open period for it to land on, you get adjustment_unplaced. More on this in rollover, amendments and late usage.

Draft lines are different. A rerun recalculates them. If the result is the same, the draft is left as it is. If it differs, the draft gets a new version and the run page shows what changed. See versions.

The run list

Close runs lists your 50 most recent runs. Each row shows the run number, the usage cutoff, the date it closes periods to, the expected total, under-billed and over-billed amounts, and its status.

If a run fails, its status says so and the run page shows the error. Fix the cause and start a new run. If you can't tell what the error means, contact hello@trueupp.com.

When runs are blocked

A workspace that is read-only can't start runs. That happens when a payment has been overdue for more than 14 days, or after a cancelled subscription's paid term ends. See plans and billing.