Freelance Income Tracker
Keep a running record of freelance payments across Pakistan’s July-to-June tax year. Log each payment with its date, client, platform, amount, currency and the exchange rate you actually received, and the tracker totals by calendar month and by tax year — named the way FBR names them, so 1 July 2026 to 30 June 2027 is tax year 2026-27. Export to CSV to back up or hand to an accountant, and import a CSV back without losing rows. Everything is stored in this browser only; there is no account and no sync.
Log a payment
The rate you actually received
Stored only in this browser — export to back up. These payments live in local storage on this device. They do not sync, they will not appear in another browser or on your phone, and clearing site data deletes them permanently. Export a CSV regularly if this record matters.
How to use Income Tracker
- Enter the date you were paid, the client, the platform, and the amount.
- Pick the currency and enter the PKR rate you actually received — not a mid-market quote.
- Add the payment. Monthly and tax-year totals update immediately.
- Export a CSV to back up your record or hand it to an accountant.
- Import a CSV to restore a backup or bring in rows you edited in a spreadsheet.
Why the tax-year boundary matters more than it looks
Pakistan’s tax year runs 1 July to 30 June, and it is named for the year it ends in: the year beginning July 2026 is tax year 2027, written 2026-27. That sounds like trivia until you are reconciling a year’s income and discover that June and July payments have been filed together. A payment received on 30 June belongs to one tax year and one received on 1 July belongs to the next, and a spreadsheet organised by calendar month will quietly put them in the same bucket.
This tracker buckets on the July-to-June boundary, and the behaviour at those exact dates is covered by tests rather than assumed — because an off-by-one here misfiles every payment in the two busiest months of the boundary.
Record the rate you got, not the rate that was quoted
Every payment stores its own exchange rate, which is the single most useful thing this tool does. Freelancers commonly track earnings in dollars and convert the annual total once, at whatever rate applies when they do the sum. That produces a rupee figure that corresponds to nothing: not what the bank credited, not what appears on any statement, and not what a tax computation should start from.
Storing the rate per payment means a $1,000 payment received at 280 and another at 292 are recorded as Rs 280,000 and Rs 292,000 — which is what actually happened. The totals then reconcile against your bank records instead of approximating them.
A worked example
Four payments: $100 on 30 June 2026 at 280, $200 on 1 July 2026 at 285, Rs 50,000 on 15 July, and $300 on 2 August 2026 at 290. Those are Rs 28,000, Rs 57,000, Rs 50,000 and Rs 87,000. Tax year 2026 gets the first payment only, at Rs 28,000. Tax year 2027 gets the other three, at Rs 194,000. July as a calendar month shows Rs 107,000 — the two July payments — which is a different grouping from either tax year, and both views are useful for different purposes.
Local storage is private and fragile in equal measure
Nothing here is uploaded. Your client names, amounts and rates stay in this browser, which is genuinely private in a way a cloud tracker is not. The trade-off is real though: the record does not follow you to another device, it does not survive clearing site data, and in private browsing it may not survive closing the tab. There is no server-side copy to restore from, because there is no server.
So export a CSV periodically and keep it somewhere you back up. The export is a plain, properly quoted CSV that opens in Excel or Google Sheets, and it imports back without losing rows — including client names with commas in them, which is where naive CSV handling usually corrupts data without saying so.
For the tax side, see the freelancer tax calculator. To bill a client in the first place, the invoice generator produces a PDF locally.
Frequently asked questions
When does the Pakistani tax year start and end?
Why does it ask for the exchange rate on every payment?
Where is my data stored?
What happens if I use private browsing?
Can I edit the CSV in Excel and import it back?
Will a client name containing a comma break the CSV?
Does this calculate the tax I owe?
Is there a limit on how many payments I can log?
Related tools
More tools you might find useful in the same flow.
Freelancer Tax
Withholding on export of services (s.154A), social media revenue (s.154B) and salary slabs, using FBR rates for tax year 2026-27. Source and date shown on the page.
Platform Fee & Net Earnings
See what a contract leaves you: platform fee, then withholding, then net rupees at your own exchange rate. Every deduction shown step by step.
Invoice Generator
Create and download a PDF invoice with line items in USD, EUR, GBP or PKR. Drafts and clients save locally — nothing is uploaded.
Pakistan Income Tax
Work out salary tax for tax year 2026-27 using the FBR slabs from the Finance Act 2026. Shows the tax for each slab, monthly and annual, with the source cited.
Built by Muhammad Tahir · About