Pakistan Taxpayer Data

Between 2013 and 2018, the Pakistan Federal Board of Revenue (FBR) published a directory of all taxpayers. Naturally, these are shared as PDFs that look something like:

2018 taxpayer directory 35k page PDF (may crash preview)
2018 taxpayer directory 35k page PDF (may crash preview)

Why is the FBR exposing everyone’s name, CNIC, and how much income tax they’ve paid? On the foreward of the same PDF:

Governments around the world levy taxes to generate revenue for running affairs of the state, including provision of public services. However, welfare of the people across a wide spectrum of society demands a fair and equitable taxation system. Fully cognizant of this fact, the incumbent government is, therefore, fully committed to its vision of a reformed, efficient and transparent taxation system as an engine of faster and equitable socio-economic development of the country, with special focus on the well being of the economically disadvantaged segments of society. The role of the Federal Board of the Revenue (FBR) in the realization of that vision is self evident.

There isn’t much writing like this anymore, nice.

FBR has been publishing Annual Tax Directory since 2013 but this time in line with the incumbent government’s reform agenda, strenuous efforts have been made to render the Tax Directory more informative, simpler and utilitarian, which will help not only in educating the taxpayers but also in encouraging compliance with tax laws as a national duty of the taxpayers.

Unclear where these efforts were directed, given the thirty-five thousand pages. Was this some kind of malicious compliance to make the data difficult to access? Did someone demand this as a PDF? We’ll never know.

The Directory embodies the government’s policy of transparency and accountability through access to information. I hope that the FBR will continue to provide tax related services to the government and the taxpayers with even greater zeal, commitment and professionalism in the years ahead to help achieve our cherished goal of ‘Naya Pakistan’.

Spoiler–this was the last year, though it’s being considered again as of September 2025.


To save anyone trying to see this data in the future, I’ve shared the extracted and compressed parquet files in the GitHub repo. This also includes a single file with all data across all years at just 69MB. parquet files and compression are magic.

Some cursed knowledge I have learnt:

  • NTNs have an 8th digit sometimes (data for 2013-2014), but it is just a check digit. The all.parquet file contains a column ntn7 to help with grouping
    • for example, Hyderabad Development Authority’s 8th digit was 0 in 2015 but 1 in 2016
  • shell scripts (and perl) are very fast
  • FBR may be processing everyone’s taxes on Excel
  • DuckDB can do some magic with HTTP-Ranges
  • your name could be generic, but if you spell it a specific way consistently, it can be identifiable. this is how 2013 individual data (which was not labelled with CNIC) is included in the top 1000 taxpayers

Explore the top 1000 taxpayers across all years and within each category at the GitHub pages link.

Query the data (or lookup an NTN/CNIC) directly in your browser with DuckDB-WASM at this link.