- Z-report = daily fiscal close summary that TRA requires from every VFD-compliant business.
- Run once per business day, typically at end-of-day before closing.
- Tawala can auto-generate Z-reports at a configurable time, or you run them manually.
- If forgotten, Tawala runs them automatically at midnight so compliance isn't broken.
- X-reports are interim summaries (per shift, per cashier) that don't close the day.
If you've recently set up TRA VFD compliance, you've probably heard the term "Z-report" thrown around. Maybe your accountant mentions it monthly. Maybe TRA has asked you for one during an inspection. Maybe Tawala generates one automatically every evening and you've ignored it.
Whatever your starting point, this guide explains exactly what a Z-report is, why TRA requires it, when to generate it, what to do with it, and how Tawala automates the process so you never miss one.
What is a Z-Report?
A Z-report (also called a "Z-reading" or "fiscal closure report") is a daily summary document that closes off the trading day for TRA fiscal compliance. It totals every transaction processed through your VFD that day, broken down by tax category, payment type, and cashier, and generates a signed audit record that TRA can reference during any inspection.
The "Z" in Z-report comes from old fiscal printer terminology, where "Z" was the closing operation that reset daily counters back to zero — hence "Zero out the day." Modern VFDs don't physically reset counters (those numbers stay in the cloud forever), but the concept is the same: a Z-report represents the official end of one trading day and the start of the next.
Z-reports vs X-reports: what's the difference?
People often confuse Z-reports with X-reports. Both are end-of-period summaries, but they have different purposes:
- X-report = a non-fiscal interim summary you can run at any time. Useful for shift handovers, lunch-break checks, or reconciling cash without closing the day. X-reports do not reset counters or close the trading day.
- Z-report = a fiscal closing report that TRA recognizes as the official end-of-day record. Z-reports reset daily counters, generate a TRA-recorded audit trail, and are required at least once per business day.
Most businesses run several X-reports throughout the day (per shift, per cashier, mid-afternoon spot check) and exactly one Z-report at end-of-day. In Tawala, both are accessible from the POS dashboard with one click each.
Why does TRA require Z-reports?
Z-reports give TRA an audit-ready record of every business day. During an audit, TRA asks for Z-reports for specific dates and reconciles them against your VAT returns, your bank deposits, and your inventory movements.
The Z-report shows TRA:
- Total sales for the day, by tax category (VAT 18%, VAT-exempt, zero-rated).
- Total tax collected, which should match what's transmitted to TRA via VFD throughout the day.
- Total receipts issued, with first and last receipt numbers.
- Cancellations and credit notes, with the reason for each.
- Tender breakdown — cash, M-Pesa, Tigo Pesa, Airtel Money, card, bank transfer, store credit.
- Cashier breakdown — who rang up what, useful for reconciling tills.
Without consistent Z-reports, your VAT return data has gaps. TRA notices, and an audit gap is rarely interpreted in your favour. Generating a Z-report every day is the cheapest insurance you can buy.
When should you generate the Z-report?
The simple answer: once per business day, before you close. The longer answer depends on your operating hours:
- Standard business (8 AM – 6 PM): generate the Z-report between 18:00 and 22:00. Tawala can auto-trigger at 22:00.
- Late-night businesses (restaurants, bars): generate after closing — 23:00, 02:00, whenever your last sale of the day is rung up.
- 24-hour businesses: pick a "trading day end" — typically 04:00 or 06:00 — and run the Z-report at that fixed time daily.
- Multiple shifts: X-reports per shift, one Z-report at end-of-day for the whole site.
The key principle: one Z-report per calendar business day. Two Z-reports on the same day fragments your records; zero Z-reports on a day you traded creates a compliance gap.
How to generate a Z-report in Tawala
Three options, depending on how hands-on you want to be:
Option 1: Manual (one-click)
From any device logged into Tawala, navigate to POS → End of Day → Run Z-Report. Confirm the date range (default: today). Tawala generates the report, transmits it to TRA, and prints/emails a copy to ownership. Total time: 5 seconds.
Option 2: Scheduled (set-and-forget)
In Settings → VFD → Z-Report Schedule, set a daily auto-run time (e.g., 22:00). Tawala generates the Z-report at that time every day automatically and emails it to specified addresses (typically owner + accountant). This is the recommended approach — once configured, you never have to think about it again.
Option 3: Auto-fallback at midnight
If neither manual nor scheduled has been triggered by 23:59, Tawala automatically generates the Z-report at midnight. This is the safety net that ensures compliance even on days when the manager forgets, the till is busy, or the cashier closes early.
What's on a Z-report?
A typical Tawala Z-report includes:
- Header: business name, TIN, VRN, branch, trading date, Z-report serial number.
- Sales totals: gross sales, total tax (broken down by VAT 18%, exempt, zero-rated), net sales.
- Receipt range: first and last TRA receipt numbers issued today.
- Tender breakdown: cash, M-Pesa, Tigo Pesa, Airtel Money, card, bank transfer, voucher, store credit.
- Returns and credit notes: total credited, with original receipt references.
- Cashier breakdown: per-cashier sales, returns, voids, mean transaction value.
- Discounts: total discounts applied, broken down by type.
- TRA confirmation: the unique Z-report ID issued by TRA upon receipt.
- Footer: generated-by timestamp, signature placeholder, QR code linking to TRA verification.
What if the Z-report doesn't reconcile?
Sometimes the Z-report total doesn't match what's actually in the till — the cash drawer might be TZS 5,000 short, or your M-Pesa statement might show TZS 12,000 more than your Z-report. This is normal; the question is what to do about it.
Tawala's Variance Report compares Z-report totals against:
- Cash counted in the till at end-of-day.
- M-Pesa, Tigo Pesa, Airtel Money settlement reports.
- Card terminal batch totals.
- Bank deposit slips.
If any are out of balance, Tawala flags the variance. Common causes: cash skim/spoilage, mobile-money confirmations that arrived after Z-report time, card terminals that didn't settle, voided receipts not matched. The Variance Report makes the cause traceable.
For audit purposes, a small variance (under 1%) is normal and explainable. A persistent or large variance is a sign of a process problem (or worse). Read our TRA audit prep guide for how to handle variances during an audit.
Where Z-reports are stored and how to retrieve old ones
Tawala stores every Z-report indefinitely in the cloud, indexed by date and branch. To find an old Z-report:
- Navigate to Reports → Z-Reports → Search.
- Filter by date range, branch, or specific cashier.
- Click any Z-report to view, print, email, or download as PDF.
For TRA inspections, you can bulk-export every Z-report for a date range (e.g., the last 12 months) as a single ZIP. Auditors typically ask for this; having it ready in seconds rather than days is a meaningful advantage.
Z-reports for multi-branch businesses
If you operate multiple branches, each branch generates its own Z-report. Tawala's Consolidated Z-Report rolls up all branches into a single head-office summary, showing branch-by-branch totals plus the consolidated total.
This is essential for chains: instead of waiting for each manager to email yesterday's Z-report by 10 AM, the head office sees consolidated numbers the moment the last branch closes. Trends, comparisons, and anomalies are visible immediately.
Wrapping up
A Z-report is just a daily fiscal closure document, but it's the linchpin of TRA compliance. Get into the habit of either auto-running it nightly or manually triggering it at end-of-day, archive everything, reconcile any variances promptly, and you'll never have an audit problem.
Tawala automates the entire workflow: schedule once, never think about it again. See pricing or talk to our team if you want help setting up auto Z-reports for your business.