PDF Forensics · Ashadh 2083 · Fiscal Law

Nepal's Finance Bill came from two computers. That explains the page count. It doesn't explain the missing provisions.

Nepal's Finance Bill 2083 was produced on two different computers running two different versions of Microsoft Word. That is why the page counts differ. It is not why substantive tax provisions appear in one version and not the other. We obtained both PDFs, extracted their metadata, and examined every disputed provision from the document text, and checked each against the Finance Minister Dr. Swarnim Wagle's budget speech. Dr. Wagle had a point in his defense about certain provisions and his explanations for page differences. But he also made claims about the content of the documents that are not supported by the evidence. The same goes for his critics. Dr. Wagle did not tell the full story, and neither did his critics. Here is the full story, based on what the documents actually support.
Published Ashadh 2083 / June 2025 Sources आर्थिक विधेयक २०८३ — parliamentary (470pp) · MoF website (450pp) · बजेट वक्तव्य २०८३/८४ Method pdfinfo · pdftotext · Python word-level diff · direct page reading Category Document Analysis
Parliamentary tabled
470
pages · Word 2013 · Jestha 20
MoF website version
450
pages · Word 2019 · Jestha 17
"16 pages missing"
~Right
direction correct — MoF version is 20pp shorter; count was approximate
Omitted from parliament
2
cinema holiday + tuition deduction absent from tabled text
Added in MoF version
1
B2B electricity exemption — not in parliament, not in speech
Honest clerical errors
2
bag tariff rate (15%→30%) and excise double-charge proviso

The two documents

The page count difference between the two Finance Bill PDFs traces back to Microsoft Word. The parliamentary version was produced in Word 2013. The website version came from a different machine running Word 2019. Different versions paginate the same source content differently. On that point, the Finance Minister was right.

What Word cannot explain is why certain provisions appear in one document and not the other. Most have plausible innocent explanations. One is harder to read that way. Whether deliberate intent was involved is a question these documents cannot settle, but they do narrow the field.

Two PDFs. The parliamentary version: 470 pages, Word 2013, Jestha 20, carrying an erratum appendix at pages 465–470 from the FM's office dated Jestha 17. The MoF website version: 450 pages, Word 2019, created the same day, with the corrections folded directly into the body text.

One document appends corrections as a separate notice. The other rewrites the law in place. Neither approach is a Finance Committee amendment, which is the constitutionally correct mechanism. Whether the erratum provisions carry legal force has not been tested.

Each disputed provision — what the documents actually say

1  ·  Electricity VAT exemption — HS 2716.00.00 (Schedule 1, Group 2)
Added in MoF website version

Parliament received an exemption for household consumption up to 50 units per month only. The website version adds B2B wholesale electricity trading — covering hydropower producers selling to NEA. The erratum also adds it, so parliament formally acknowledges the omission. No corresponding announcement in the FM's speech makes this the provision with the weakest evidence of innocent intent.

NOT in budget speech

The FM's Jestha 15 speech does not mention VAT on electricity, the 50-unit threshold, or B2B electricity trading exemptions. The erratum frames this as a correction of an omission, but there is no independent speech announcement to corroborate that intent.

2  ·  Clean Infrastructure Levy — excise-paid vehicle proviso (Section 11)
Honest clerical omission

Section 11 imposes a new Clean Infrastructure Levy. Parliament's version lacked a standard anti-double-taxation clause protecting importers who had already paid excise at the border. The MoF version adds it. No directional beneficiary.

NOT specifically in budget speech

The Clean Infrastructure Levy itself is referenced in the speech in the context of EV policy, but the anti-double-tax proviso is not mentioned.

3  ·  Green tax on petrol and diesel — Section 35(2)
No difference between the two documents

Media reporting cited a "percent vs. rupees" discrepancy. The two PDFs do not support this between themselves.

Parliamentary tabled · page 19
पेट्रोल र डिजलको पैठारीमा प्रति सलटर रू.दशका दरले हरित कर लाग्नेछ।
MoF website version · page 17
पेट्रोल र डिजलको पैठारीमा प्रतिलिटर दश रुपैयाँका दरले हरित कर लाग्नेछ।

Both PDFs say Rs. 10 per liter. Same rate, typographic variation only. Earlier reporting cited "10 percent" in the parliamentary version; our reading of page 19 finds Rs. 10 per liter. The likeliest explanation is that the "percent" wording was in an earlier internal draft. No substantive difference between these two documents.

In budget speech (concept)
4  ·  Cinema hall 10-year income tax holiday — Section 57 amendment, Sub-section (३ि)
Omitted from parliamentary text — announced in speech

A 10-year income tax exemption for cinema halls outside major municipalities. The FM announced it near-verbatim in his budget speech. It is in the website version's operative body. Parliament never received it. It appears only in the erratum appendix. You don't publicly announce a provision and then introduce it as an unauthorized amendment. This was dropped by error.

In budget speech — near-verbatim
5  ·  Tuition fee income tax deduction — Section 57 amendment, Sub-section (१६ि)
Omitted from parliamentary text — not in speech
Parliamentary tabled · Section 57 body
Sub-section (१६ि) absent from operative Section 57 text. Appears only in the erratum appendix at page 469.
MoF website version · page 234
(१६ि) ... कुनै बासिन्दा प्राकृतिक व्यक्तिले आफ्नो सन्ततिको शिक्षाका लागि ... शिक्षण शुल्क बापत भुक्तानी गरेको वार्षिक रकमको पच्चीस प्रतिशत वा पच्चीस हजार रूपैयाँमा जुन घटी हुन्छ त्यस्तो रकम करयोग्य आयबाट घटाई...

Same pattern as the cinema provision: missing from parliament, present in the website version, acknowledged by erratum. No budget speech announcement. Payroll systems computing TDS from the parliamentary text would miss this deduction. The intent is harder to read than the cinema holiday.

NOT in budget speech
6  ·  EV clean infrastructure levy — value-band concessions (Schedule 4)
Identical in both documents

Media reporting stated the parliamentary version applied a flat 5% road construction duty to all EVs, and that the MoF version introduced a concessional 2.5% rate for EVs under NPR 20 lakh transaction value: a rate change, not an absent clause. We found the 2.5% concessional band present in both PDFs' operative body text.

Parliamentary tabled · page 427
Clause (ख) present: उपशीर्षक 8703.80.91 र 8703.80.99 मा पर्ने मोटर गाडीहरुमा दुई दशमलब पाँच प्रतिशत मात्र स्वच्छ पूर्वाधार लगानी शुल्क लाग्नेछ।
MoF website version · page 411
Same clause present with identical text. 2.5% concessional rate for EVs under Rs. 20 lakh is in the operative body of both documents.

The 2.5% concessional rate for EVs under NPR 20 lakh appears in the operative body of both documents. No difference here.

Not in budget speech
7  ·  Bag / briefcase customs tariff — HS 4202.12.90
Honest rate error — corrected by erratum
Parliamentary tabled · page 286
4202.12.10  भ्याक्सिन/ब्लड क्यारियर    15   15
4202.12.90  ---अन्य (handbags, travel bags)    15   15  ← wrong

Erratum (p470): "१५ अङ्कको सट्टा ३० अङ्क समावेश गरिएको"
MoF website version · page 268
4202.12.10  भ्याक्सिन/ब्लड क्यारियर    15   15
4202.12.90  ---अन्य (handbags, travel bags)    ३०   ३०  ← correct

Parliament received both bag subheadings at 15%. Vaccine carriers stay at 15%; regular bags were meant to be 30%. A copy-paste error put them both at 15%. The erratum corrects it. Clean error, clean fix.

NOT in budget speech

Summary across all seven provisions

Provision Parliamentary (470pp) MoF website (450pp) In FM speech Nature
Electricity B2B trading exemption Erratum appendix only (p468) Operative body (p39) No Added in MoF version
Clean infra levy — excise proviso Absent entirely Operative body (p6) No Clerical omission
Green tax rate petrol/diesel Rs. 10/liter (p19) Rs. 10/liter (p17) Yes (concept) No difference
Cinema hall 10-yr tax holiday Erratum appendix only (p469) Operative body (p220) Yes — verbatim Omitted from parliament
Tuition fee deduction Erratum appendix only (p469) Operative body (p234) No Omitted from parliament
EV road duty 2.5% clause Operative body (p427) Operative body (p411) No Same in both
Bag tariff HS 4202.12.90 15% — wrong (p286); erratum corrects to 30% (p470) 30% — correct (p268) No Clerical rate error

what needs to change

The simpler fix is upstream. The Ministry of Finance should either publish nothing until the bill passes, or label any pre-passage version explicitly as a draft under parliamentary consideration. Not the law, not the operative text, not a substitute for what parliament received. What gets posted on a ministry website should not be ambiguous about its own legal status. That ambiguity is what made this controversy possible.

Raw document metadata

Extracted using pdfinfo (poppler-utils) directly from both files. Fields are embedded in the PDF document information dictionary at export time from the source Word document.

Field Parliamentary tabled (470pp) MoF website version (450pp) Significance
Author Yug Raj Yug Raj Same individual on both; produced on different machines
Creator / Producer Microsoft® Word 2013 Microsoft® Word 2019 Different Word versions confirm different physical machines
Creation date Jun 3, 11:28 UTC (Jestha 20) May 31, 12:42 UTC (Jestha 17) Website version was created 3 days before the parliamentary PDF
Tabling date Jestha 15, 2083 (~May 29, 2026). Both PDFs created after tabling
Pages 470 450 Parliamentary version is 20 pages longer
File size 9.5 MB 5.1 MB Difference reflects Word version image-handling, not content volume
PDF version 1.5 1.7 Older Word exports older PDF spec
Page dimensions 381.6 × 612 pts 381.6 × 612 pts Identical: same document template used
Metadata stream (XMP) Absent Present Parliamentary PDF missing extended metadata block
Encrypted / JavaScript No / No No / No Both clean: no protection, no scripting

Event timeline

Date (BS) Date (AD) Event
Jestha 15, 2083 ~May 29, 2026 Finance Bill tabled in Federal Parliament. FM delivers budget speech announcing cinema tax holiday verbatim and green tax consolidation.
Jestha 17, 2083 May 31, 2026 FM's office issues formal erratum letter. MoF website version PDF created on this same day (12:42 UTC). It integrates all corrections directly into the operative body text.
Jestha 20, 2083 Jun 3, 2026 Parliamentary version PDF created (11:28 UTC) on a different machine. Appends erratum as a separate notice at pages 465–470 rather than integrating into body. This is the version formally associated with the tabled bill.
Jestha 28, 2083 ~Jun 11, 2026 FM appears before Finance Committee. States "not even a full stop changed." Media publishes detailed explainer listing seven specific changes. This analysis published.
The parliamentary PDF was created on Jestha 20, five days after tabling and three days after the erratum. The website version predates it by three days and already has the corrections integrated in-line. This sequence means the MoF website version was the first corrected document to circulate, and the parliamentary PDF formalizing the same corrections came after. Neither PDF is the document physically handed to the parliament Secretariat on Jestha 15. That original source file is not publicly available.

How this analysis was done

Document acquisition

The parliamentary tabled version (470 pages) was provided directly. The MoF website version (450 pages) was obtained from Ministry of Finance public circulation. Neither file was modified. Both are Word-exported PDFs with embedded text layers, not scans, so text extraction is reliable. The mof.gov.np and parliament.gov.np servers return 403 Forbidden to automated requests and could not be fetched directly.

Media reports indicate the MoF replaced its website PDF at least four times after tabling. Our analysis covers one version of the MoF PDF, the version in public circulation at the time of this analysis. We cannot speak to differences between earlier upload cycles.

Metadata extraction

We used pdfinfo (poppler-utils) to read document properties from both files: creation and modification timestamps, author, creator/producer application, page count, file size, PDF version, page dimensions, encryption status, and XMP metadata stream presence. Timestamps are set at PDF export time from the Word source document. They can in principle be altered, but we treat them as reliable. They are internally consistent with the known event sequence and with the different Word versions embedded in each file.

Text extraction and word-level diff

Full text was extracted from both PDFs using pdftotext (poppler-utils). We then ran a word-level diff using Python's difflib.SequenceMatcher with autojunk=False, producing 2,696 change blocks. Of these, 2,677 are small changes of 1–5 words: Devanagari word-spacing artifacts from different Word versions, HS code token formatting differences (e.g. 2502.00. 00 vs 2502.00.00), and page-number shifts from different pagination. We focused analytical attention on the 19 large change blocks (>5 words), which contain all substantive content differences.

Provision-level verification

For each of the seven provisions cited in media coverage of this controversy, we: (1) located the relevant page in each PDF using targeted Devanagari keyword search, (2) extracted and read that page directly with pdftotext -f N -l N, (3) recorded whether the provision appears in the operative body text or only in the erratum appendix, and (4) searched the budget speech for a corresponding announcement. Page citations in this article refer to PDF page numbers, not printed page numbers (which are offset by front matter).

Budget speech cross-reference

Budget speech text was sourced from github.com/bibstha/nepal-budget-2083-2084, an OCR reconstruction, not the official transcript. We searched using multiple Devanagari keyword variants to account for OCR spacing artifacts. Absence from the reconstructed speech does not conclusively mean the FM did not announce a provision; the reconstruction may have gaps. Where a provision was found in the speech, we quote the matching passage directly.

Classification criteria

Honest clerical error: A provision where the correction intent is structurally inferable (anti-double-tax language, standard rate correction), has no directional beneficiary, and is confirmed by the erratum. The excise proviso and the bag tariff meet this test.

Intended but dropped: A provision confirmed by the FM's own public announcement in the budget speech, present in the website version, and acknowledged by the erratum. The cinema tax holiday meets this test. The tuition deduction partially meets it: erratum acknowledges the omission, but no speech announcement provides independent corroboration of pre-tabling intent.

Added without parliamentary basis: A provision absent from the parliamentary text, absent from the FM's speech, and present only in the post-tabling website version and erratum. The electricity B2B exemption meets this description. We make no assertion of improper intent. This provision simply lacks the independent corroborating evidence of intent that the other provisions have.

Limitations

We make no legal interpretation of whether the erratum provisions have operative force under Nepal's constitutional framework. That requires judicial determination.

The original source document physically presented to the Parliament Secretariat on Jestha 15. The Word file or PDF from which the parliamentary version was produced, is not publicly available. Both PDFs in this analysis were created after tabling. The parliamentary PDF (Jestha 20) postdates the erratum (Jestha 17).

PDF metadata timestamps can be altered by a motivated actor. We treat them as reliable but note this caveat explicitly.

We cannot verify the internal drafting history: which version of the Word source document had which provisions at which stage before Jestha 15.

Reproducibility

All tools are open source and freely available: poppler-utils (pdfinfo, pdftotext) and Python 3 (difflib.SequenceMatcher). Any researcher with access to the same two PDF files can reproduce every finding in this analysis using these tools.