Skip to content
Browse docs

Reports and CSV export

The Reports page's booking, capacity and attendance reports, and exports you can trust in Excel.

Tempo → Reports is the read-only deep view over everything the plugin records, in four tabs (bookings & capacity, attendance, financial, audit), each with a report picker, filters, and an Export CSV button that exports exactly what the filters show. Administrators and shop managers see it; teachers don't.

Your site may use different words. Tempo lets you rename class, student and teacher under Settings → Branding & vocabulary; these docs use the defaults.

Bookings & capacity reports

  • Students by class: distinct confirmed students per class, with booking counts by status.
  • Sessions, capacity & remaining: per session, the same truthful arithmetic as the capacity view (capacity, blocked, confirmed, pending, live holds, remaining), with near-capacity and full-only filters.
  • Packages: every half-term and full-term package with totals, credit applied and order links.
  • Cancelled, transferred, and pending & unpaid bookings: preset views with a count-and-value strip and an "open in the Bookings screen" link to act on the same rows.
  • Expired checkout reservations: holds that lapsed without converting; abandoned-checkout visibility.

Attendance reports

By student, by class and by session, over completed sessions of confirmed bookings, plus an expected-absences list. The semantics are the honest ones described in Attendance data: present means marked present; the absent total includes unmarked sessions, which also get their own column so you can tell real absence from an unmarked sheet; attendance % is present over present-plus-absent. Expected absences are shown for context and never massage the percentage.

CSV export, done properly

Every report exports, and the Bookings screen has its own filtered export too. The files are built for real offices:

  • Named dsb-{report}-{date-time}.csv and Excel-safe: they open cleanly with no mangled characters.
  • Formula-injection guarded: a name crafted to start with a spreadsheet formula character arrives disarmed. (Yes, that's a real trick people play on exported registers.)
  • Never silently incomplete. Oversized exports refuse with an explanation rather than quietly cutting off, and a capped row-level export ends with an explicit truncation warning line. If a CSV doesn't say it's truncated, it's complete.

What exports never contain

Sensitive data is excluded by construction, not by configuration: no export contains medical details, notes, dates of birth, gender, emergency or parent contact numbers, or consent flags. People are identified by display name, account ID, purchaser email and order numbers only. There is no setting to get this wrong: share an attendance CSV with a committee without re-reading every column first.

Note

For payments reconciliation, WooCommerce is the authoritative source of money truth, which is why order IDs appear throughout the reports; see Financial reports.

Was this helpful?

Still stuck?

Most questions are answered in a minute here. When they aren't, a real person replies.

Tempo customers Send us the question through the support form. The person who built it reads every message. Contact support
Not a customer yet? Demos, pricing and anything pre-sales. Ask before you buy. Ask a pre-sales question