Where every number on the report comes from, and when it was read — transcript
Play this as a presentation — one slide per step, with the same narration. Every word of every step is on this page.
This presentation is for the person who has been asked “why does the report say 37,912 when we rang up 38,000?” and needs an answer better than “the system”. In about eleven minutes you will be able to trace every figure on the four tabs back to the table it was read from and the rule that selected it — and to make the two sides meet.
Step 1 — Read your own side: five filters on the document table
After this step you will know exactly which of your documents the ERP Transaction Summary counted. It reads your document table and keeps a document when five things are true: it is finalised, it is not deleted, its document date falls inside your two chosen days, it is not marked Skip E-Invoice, and its currency is the company’s own currency. The amount is the document’s transaction amount; sales are invoices plus cash bills plus debit notes, less credit notes, returns and refund notes. Two things fall out of the filters before you have looked at anything else. A skipped document is left out of the total and counted once more on its own line, so read that line first. And a document in a foreign currency is not counted on this side at all — GadgetSphere’s US-dollar purchases from a Singapore distributor are simply not examined.
Reference: My E-Invoice Admin Applet — 8. Monthly Report → Discrepancies Report
Step 2 — Read the e-invoice side: a date, then a sort by status
After this step the IRB Audit Summary will mean something precise. It reads the e-invoice header table, keeping every header whose company code is this company’s and whose own date falls inside the range. There is no currency filter and, in the query, no status filter. The sorting happens afterwards, header by header, using the document type written on the header: a cancelled header goes to the Cancelled figure; a rejected header — status Invalid — goes nowhere; and everything else goes to Internal Submission. Everything else includes valid, submitted and awaiting an answer, queued and not yet sent, and queued for consolidation. So Internal Submission means “a record exists and has not been cancelled or rejected”. It does not mean LHDN has accepted it, and the tab’s title will not tell you that.
Reference: E-Invoice Submission Mechanics — The discrepancy report: what “missing” means
Step 3 — Know which month a header belongs to
After this step a whole class of “the sides don’t match” will resolve itself. An individual e-invoice carries its document’s date, so it lands in the same month on both sides. A consolidated e-invoice from the common by-document run is dated the last day of the receipts’ month, at midnight Malaysian time — so August’s receipts, consolidated on the fifth of September, still sit in August on both sides. Two paths date by the clock instead: the by-branch run stamps the previous or the current month’s last day according to which set it is consolidating, and a single-general e-invoice rebuilt after a failed submission is dated the month it was rebuilt in. If a company’s e-invoice total is short by exactly one consolidated e-invoice, open next month’s report and look for its header there before you look anywhere else.
Reference: My E-Invoice Admin Applet — 8. Monthly Report → Discrepancies Report
Step 4 — See how a consolidated e-invoice is counted
After this step the document counts on the two summaries will be comparable. On the e-invoice side an ordinary header counts as one document. A consolidated header does not count as one: the report counts the receipts linked to it from the Batch Pool, so that GadgetSphere’s retail company, which reports its walk-in receipts consolidated, shows thirty-eight thousand documents on both summaries and not thirty-eight thousand against a handful. The amount is the consolidated header’s own total. The drill-down on the discrepancy tab lists the receipts inside a consolidated e-invoice one by one, and that is the list to hand an auditor who asks which receipts were reported in it — read from the report, not reconstructed by hand.
Reference: My E-Invoice Admin Applet — 8. Monthly Report → Discrepancies Report
Step 5 — Read the gap tab as two exact tests
After this step “missing” will have a definition. The first direction, exists in ERP and missing in e-invoice, takes your side’s documents — with the skip filter deliberately left off — and keeps those that have neither an e-invoice header pointing at them nor a match-link row naming them as part of a consolidated one. The second direction keeps e-invoice headers that carry no document identifier and no active link: orphans, usually from a document deleted after submission. Beside them the report counts how many consolidated headers fall in the range, whatever their status, so you can see whether consolidation explains a difference. Because the skip filter is off, a skipped document meets the first test and is listed as missing. Subtract the skipped line before you treat that number as a problem.
Reference: E-Invoice Submission Mechanics — The discrepancy report: what “missing” means
Step 6 — Make the two sides meet, one line per document type
After this step you can explain 37,912 against 38,000 in a sentence. Take one document type — cash bills for the retail company. Start with the ERP count, 38,000. Subtract the skipped line: twenty voided receipts, 37,980. Subtract Internal Submission and Cancelled from the e-invoice side: 37,900 and none. Subtract the missing line on the gap tab: 68 receipts still failed in the Batch Pool. Twelve are left, and nothing on the report names them. Twelve is always one of two things: an e-invoice that LHDN rejected, which this report drops from every tab, or a receipt voided after its e-invoice went out. The rejection list is the To IRB E-Invoice screen filtered to Invalid. Do this line once per document type per company, and the month is proved rather than merely recorded.
Reference: My E-Invoice Admin Applet — 8. Monthly Report → Discrepancies Report
How the steps fit together
flowchart TD
s1["Step 1 — Read your own side: five filters on the document table"]
s2["Step 2 — Read the e-invoice side: a date, then a sort by status"]
s3["Step 3 — Know which month a header belongs to"]
s4["Step 4 — See how a consolidated e-invoice is counted"]
s5["Step 5 — Read the gap tab as two exact tests"]
s6["Step 6 — Make the two sides meet, one line per document type"]
s1 --> s2
s2 --> s3
s3 --> s4
s4 --> s5
s5 --> s6
Check yourself
Three to five questions on what you just heard. Every correct answer links to the page that makes it correct, so you can check the source, not just the mark.
Answer key
- Not on the ERP side at all — only documents in the company's currency are counted — My E-Invoice Admin Applet — 8. Monthly Report → Discrepancies Report
- Under Internal Submission — everything not Cancelled and not Invalid goes there — E-Invoice Submission Mechanics — The discrepancy report: what "missing" means
- August — the header is dated the last day of the receipts' month — My E-Invoice Admin Applet — 8. Monthly Report → Discrepancies Report
- Rejected e-invoices, or receipts voided after their e-invoice went out — My E-Invoice Admin Applet — 8. Monthly Report → Discrepancies Report
Next: What passes the report silently, and how you will know · Back to the series · Play this as a presentation