The question nobody asks until March
You earn in dollars. You pay tax in naira. So at some point, every dollar has to become a naira figure.
Which rate? The one on the day you were paid? The day you converted? The day you filed? Today's rate, because it is the one you can look up fastest?
It sounds like an administrative detail. It is not. In a year where the naira moved substantially, the same 20,000 dollars of income can produce noticeably different tax bills depending on which rate you reach for. That difference is the whole point of the question.
Start here: it is taxable
If you are tax resident in Nigeria, your worldwide income is taxable here[1]. Dollars earned from a client abroad are not outside the net because the client is outside the country, and holding the money in a foreign-currency wallet does not defer anything.
Residence is broadly about where your life is — a permanent home here, habitual residence, substantial economic or family ties, or 183 days or more in Nigeria in a twelve-month period. Most people freelancing from Nigeria qualify comfortably.
The rate that matters is the one on the day you were paid
The defensible approach — and the one this product uses — is to convert each payment at the official rate for the date that payment was received.
Not today's rate. Not an average for the year. Not the rate on the day you happened to move money into naira.
Two reasons this matters more than it looks:
It is per payment, not per year. Twelve monthly payments in a volatile year are twelve different conversions. Collapsing them into one annual rate is a guess dressed as a figure, and it will not match anything a reviewer can reconstruct.
Converting later is a separate event from earning. The income arose when you were paid. What the currency did afterwards, while it sat in your wallet, is a different question from what you earned.
We take this seriously enough that where the app cannot establish the rate for a payment's own date, it leaves the entry unconverted rather than guessing. A number produced by a fallback rate looks exactly like a real one, and that is precisely the problem.

