Appearance
Reports
Every report family, grouped by the question it answers.
Reports read hourly buckets that are rolled up on a schedule, so the current hour is not in them yet — which is why a report and the dashboard can disagree about the last hour without either being wrong. Reports explains the buckets and the time zone.
Nearly every page below is permission-gated. If a colleague cannot see one, that is their role rather than a fault — Roles is where to look.
Reporting
AI Reporting
/admin/reporting/ai
A chat-style assistant that answers questions about this tenant's reporting data by calling the same report tools the dashboards use, backed by whichever AI credential resolves for the tenant.
When you would open it. Asking an ad-hoc question about logins, bandwidth or accounts in plain language instead of finding the right report tab and date filter yourself.
Before it has anything on it. AI switched on for the tenant (the A.I Model card on System › Settings) and an available credential (the tenant's own key, or the platform key) — without either, the page renders an off-state instead of the chat.
Needs the view-report-ai permission. Only when the tenant's ai_enabled switch is on.
Account
/admin/reporting/account
Tabbed reporting over guest and user accounts — live summary counts by type/status, plus expiry, creator, voucher/topup activation-and-availability, Voucher Groups (groups and people served with vouchers per month or year) and Voucher Utilization (used / unused / expired-unused codes, data, time and face value per batch, profile or zone).
When you would open it. Checking how many accounts are active, expired or suspended at a glance, or drilling into one lifecycle tab (who created what, which vouchers activated, how many codes are left) for a date range.
Before it has anything on it. Each tab is gated by its own permission and disappears if you lack it; the summary counts are a live query against the accounts themselves, not a bucketed report table.
Needs any of view-report-account-summary, view-report-account-expiry, view-report-account-creator, view-report-account-creation, view-report-account-voucher-activation, view-report-account-voucher-availability, view-report-account-voucher-groups, view-report-account-voucher-utilization, view-report-account-topup-availability.
→ Counting group visits with vouchers
Login
/admin/reporting/login
The largest report family — 17 tabs covering active sessions, login records, summaries, frequency, dwell time, errors, session concurrency, heatmaps, termination and zone comparison.
When you would open it. Investigating login volume or failures for a zone/profile, tracing one guest's login history for a support ticket, or spotting an over-broad zone rule via the heatmap/zone-comparison tabs.
Before it has anything on it. Most tabs read the hourly login report tables, rolled up at the top of the next hour, so the current in-progress hour always looks under-counted. Active Session and Login Record are the exception — they query the live session tables directly, so they are current to the minute.
Needs any of view-report-login-active-session, view-report-login-auto-login, view-report-login-browser-fingerprint, view-report-login-record, view-report-login-summary, view-report-login-device-frequency, view-report-login-frequency, view-report-login-frequency-profile, view-report-login-session-concurrency, view-report-login-error, view-report-login-dwell-time, view-report-login-dwell-time-profile, view-report-login-top-accounts, view-report-login-return-account-summary, view-report-login-heatmap, view-report-login-termination, view-report-login-zone-comparison.
Bandwidth
/admin/reporting/bandwidth
Usage reporting over rx/tx bytes — a tenant/zone summary, per-account totals, top consumers (all-time and current), and a bandwidth-vs-login comparison.
When you would open it. Finding who or which zone is consuming the most data, or checking whether a bandwidth spike lines up with a spike in logins.
Before it has anything on it. Reads the same hourly login bucket table as the Login report, so the current hour is not reflected yet; needs at least one zone with accounted traffic to show anything.
Needs any of view-report-bandwidth-summary, view-report-bandwidth-account, view-report-bandwidth-top-usage, view-report-bandwidth-current-top, view-report-bandwidth-vs-login.
DPI Usage
/admin/reporting/dpi
Deep packet inspection — per-application and per-domain traffic, queried live from a UniFi controller's own DPI stats rather than from a Kiwire report table.
When you would open it. Seeing what applications or domains a site's guests are actually using, site-wide or drilled into one client's traffic.
Before it has anything on it. At least one active controller on vendor "ubnt-console" (UniFi) — DPI is not collected for any other vendor, so a tenant without one gets an empty controller dropdown and nothing else.
Not a bucketed report: data is fetched from the controller on request (briefly cached), so it reflects the controller's own retention window rather than Kiwire's hourly aggregation — the "current hour not aggregated" caveat elsewhere on this page does not apply here.
Needs the view-report-dpi permission.
Impression
/admin/reporting/impression
Ad/campaign impression counts — how many times promotional content was shown to guests, summarised by zone and hour.
When you would open it. Checking how much impression inventory a zone delivered over a period, for example to back an advertiser report.
Before it has anything on it. Reads the same hourly login bucket table as Login and Bandwidth, so the current hour is undercounted until the roll-up runs.
Needs the view-report-impression-summary permission.
Engagement
/admin/reporting/engagement
Campaign and survey reporting — impression/click summaries for online campaigns, an offline-campaign summary, survey responses, and a consent & marketing tab.
When you would open it. Measuring how a campaign or survey performed, or checking who has consented to marketing contact.
Before it has anything on it. Impression, click and offline tabs read the hourly campaign bucket tables (same roll-up as Login, current hour excluded); Survey Response and Consent & Marketing query live rows instead, so they are not affected. Needs at least one active campaign or published survey for its own tab to have anything to show.
Needs any of view-report-campaign-impression-summary, view-report-campaign-click-summary, view-report-campaign-offline-summary, view-report-campaign-survey-response, view-report-engagement-consent.
Delivery Log
/admin/reporting/delivery-log
Outbound-message delivery reporting across three tabs — SMS, email, and PMS (hotel property-management system integration) transactions.
When you would open it. Confirming an OTP or notification actually sent, or tracing a stuck PMS check-in/check-out sync.
Before it has anything on it. SMS and Email tabs read the hourly login bucket table (current hour excluded, same as Login); PMS reads its own live transaction table and needs a PMS connector actually configured and sending data.
Needs any of view-report-delivery-log-sms, view-report-delivery-log-email, view-report-delivery-log-pms.
Insight
/admin/reporting/insight
A demographic and technical profile of registered guests across four tabs — device/brand breakdown, a searchable registration list, social-login aggregates (source, gender, age group), and the underlying social-login registration rows.
When you would open it. Understanding what devices your guests connect with, or who is signing up and through which social provider.
Before it has anything on it. The Device tab reads the hourly device bucket table (current hour excluded); the other three tabs query the accounts directly and are live. The social-network tabs need guests actually registering via a social login method to have anything to show.
Needs any of view-report-insight-device, view-report-insight-registration, view-report-insight-social-network, view-report-insight-social-network-data.
Payment
/admin/reporting/payment
A read-only ledger of voucher/buy-panel payment transactions — reference, payer, amount, provider and status — with a summary card and CSV export.
When you would open it. Reconciling self-service payment revenue, or looking up a guest's transaction when they say they paid but got nothing.
Before it has anything on it. A payment gateway connector configured (the provider filter is empty otherwise) and at least one completed payment. Reads its own monthly payment transaction tables directly rather than the hourly report buckets, so a transaction appears as soon as it is recorded, not after the next aggregation.
Needs the view-report-payment-transactions permission.
ISP
/admin/reporting/isp
ISP business figures — monthly recurring revenue, average per subscriber, active, new and lapsed subscribers, churn, the share of this month's invoices collected, invoiced against collected for 12 months, and the plan mix.
When you would open it. Tracking whether the subscriber base and collections are growing, or which plans sell.
Before it has anything on it. ISP switched on and subscribers on priced plans; collection figures need invoices.
Needs the view-isp permission. Only when the isp feature is enabled for the tenant.
→ Reports
Scheduled Reports
/admin/reporting/schedules
Recurring report delivery — pick one or more reports, a frequency (daily, weekly or monthly) and a send time, and the cron emails the CSV(s) to up to 10 recipients.
When you would open it. Getting a login summary or payment transactions report into an inbox automatically instead of exporting it by hand every week.
Before it has anything on it. An SMTP connector configured for the tenant (or the platform's own mail server as a fallback) for delivery to actually work; a schedule only offers reports its creator's own permissions already allow them to export, and it runs going forward under whoever last saved it.
What can be scheduled: a fixed catalog of 22 CSV exports spanning Login, Bandwidth, Impression, Account, Delivery, Payment and Engagement — not every report tab on the other ten pages qualifies (DPI, Insight and the AI assistant are not on the list, and only two of Account's several tabs are). Capped at 30 schedules and 8 reports per schedule, per tenant.
Needs any of view-report-schedules, manage-report-schedules.
This list is read from the admin menu itself, so it cannot fall behind it.