Skip to content
Billing Engine capability

Payment runs and batches: recurring collection you can audit

Updated 4 min read

Recurring collection in the Billing Engine is organised around payment runs and batches. Runs define per-site collection schedules with Direct Debit notice-day arithmetic (including bank-holiday adjustment); the next and subsequent batches are calculated automatically and kept current as memberships change, and each can be compared against the last batch so the movement in the total is explained before the money moves.

What does the capability do?

It turns “collect this month’s Direct Debits” from a spreadsheet-and-deadline exercise into a structured, inspectable process.

  • Runs define the schedule. A payment run carries its site, its collection cadence, and the notice arithmetic Bacs collection actually requires: mandate notice days, payment request lead days, and whether notice days include weekends, with bank-holiday adjustment applied to the resulting dates.
  • Batches group the work. Each cycle, the billing job generates recurring charges (from the live membership, freeze, and plan-change data) and groups them into payment request batches per run and per site.
  • Ready means complete. A batch is marked ready on final commit of its generation, so downstream processing never picks up a half-built batch.
  • Next and subsequent, always current. The platform automatically calculates the next batch and the one after it, and keeps both up to date as memberships change. A joiner, a cancellation, or a plan change is reflected in the forward batches the moment it happens, so the forecast is live, not a month-end surprise.
  • Movement you can explain. The last collected batch can be compared with the next and the subsequent: new joiners, leavers, freezes and unfreezes, and plan changes are broken out per batch. Finance sees why the total moved before the collection runs, rather than reverse-engineering it afterwards.
  • Charges reflect reality. Because charge generation reads the same records that drive freezes and scheduled price changes, a frozen member is charged their freeze fee and a due price change is already applied. There is no reconciliation step between membership state and billing state.

Why batch structure matters

Batches are the unit finance teams actually work with: this run, this site, this cycle. Structuring collection that way gives every question a place to be answered (which batch was this charge in, when was its cut-off, what state is it in) and gives failures a bounded blast radius. It is the same auditable, evidence-first design the Billing Engine applies across payments, refunds, and adjustments.

Why it matters commercially

Recurring revenue lives or dies on collection discipline. Notice periods miscounted around a bank holiday mean failed collections; half-generated runs mean missing revenue that surfaces as member complaints. Encoding the arithmetic and the batch lifecycle in the platform removes the two most common causes of both, and keeps the audit trail that regulated and multi-site operators need.

Frequently asked questions

What is a payment run?
A payment run defines a collection schedule: which site it covers, when charges are generated, and the notice periods that govern when payment requests and mandate submissions must go out. Each billing cycle, the run's charges are grouped into payment request batches for processing.
How are Direct Debit notice periods handled?
The run carries the mandate notice days and payment request lead days, including whether notice days count weekends, and dates are adjusted for bank holidays. Cut-off dates for charges, requests, and mandates are calculated per batch rather than estimated by staff.
Can each site have its own billing schedule?
Yes. Payment runs are configured per site, and batches are built per run and per site, with the batch marked ready only when its generation completes. Reporting rolls the per-site batches up to organisation level.
Can I see how the next collection compares to the last?
Yes. The next and subsequent batches are calculated automatically and kept up to date as memberships change, and each can be compared with the last collected batch: new joiners, leavers, freezes and unfreezes, and plan changes are broken out, so finance can explain the movement in the total before the money moves.
See it live

See this working in a demo

Book a consultation and we will demonstrate this capability on the Billing Engine accelerator, against your own scenarios.

Book a demo