← All articles

Income vs bank noise

Bank credits are not income: the mistake that inflates freelancers’ tax bills

5 min read

During our beta, a user imported a year of their bank statement and the app told them they owed ₹2,44,111 in tax. Their accountant looked at the same statement and said the real number was zero.

Nothing was wrong with the arithmetic. What was wrong was the assumption underneath it, the same assumption almost every tool and quite a few tired humans make in March: that every credit in a bank statement is income. Of roughly ₹24 lakh credited to that account across the year, less than ₹10 lakh was professional income. The rest was life: family sending money, a loan arriving, credit cards being settled, money moving between the user’s own accounts.

Tax is charged on income. A bank statement records movement. Confusing the two is how people end up frightened of numbers they never owed.

The six credits that fool software (and spreadsheets, and humans)

1. Money from family

Your mother sending ₹20,000 is not professional income, and gifts from specified relatives aren’t taxable at all. To a statement parser it’s a credit with a name attached, indistinguishable from a client.

2. Loans arriving

A personal loan disbursal is money you will give back. Counting it as income means paying tax on your own future debt. The same goes for a friend repaying what they borrowed from you.

3. Transfers between your own accounts

Move ₹50,000 from your savings account to the one your clients pay into, and a naive reading just gave you ₹50,000 of phantom income. Do it monthly and the phantom is ₹6 lakh a year.

4. Credit card settlements and refunds

The airline refund, the returned deposit, the reversal of a duplicate charge: your own money coming home. Income tax does not apply to homecomings.

5. Your own salary

The dangerous one for moonlighters. If you’re salaried with freelance clients, your salary credits sit in the same statement looking exactly like client payments: similar amounts, monthly rhythm, a company name. But that money has already been taxed through . Sweep it into your freelance income and the same rupees are taxed twice. For one of our beta users, that single mistake added ₹1,28,582 of tax that was never owed.

6. Interest

The trick case: interest is taxable, but it goes in a separate bucket of your tax return called , not into your freelance income. The distinction matters if you’re under the scheme (44ADA until this year, now ), where the 50% rule applies only to what clients paid you.

Scroll sideways →One statement, seven credits, two verdicts. Only what has a client and an invoice behind it is freelance income.

The principle: every deposit earns its place

The fix isn’t better guessing; it’s refusing to guess. A deposit should enter your income only with a stated reason: this client, this invoice, this work. Everything else gets an explanation (“transfer between your accounts”, “card settlement”, “salary, already taxed”) or gets parked with a question mark until you decide.

Doing this by hand for a year of statements is an evening’s work with your bank’s CSV export and a highlighter. Tedious, but the return on that evening is often measured in lakhs of tax you were about to overpay, or in catching real income you’d forgotten to invoice.

A 15-minute audit you can do this week

Export the last three months of your main account. For every credit, write one of five words next to it: client, salary, family, transfer, other. Total only the “client” column: that’s your professional income for the quarter. If that number differs sharply from what you’d have guessed, you’ve just learnt why your tax estimates never feel trustworthy, and you’ve learnt it for free.

If you want the year’s tax on that number, our free calculator does both regimes without a sign-in.

How CleanTab does it

This failure is the reason CleanTab’s statement import works the way it does. Every deposit gets a written reason for being counted in or left out: salary is matched to your tax profile and kept out of freelance income, family transfers and card settlements are named for what they are, and when the app can’t tell, it doesn’t guess your income up. It leaves the deposit out and asks you. Your statements are parsed on your device and your records live in your own Google Drive, not in our database. If you try it, tell us what annoyed you. That’s the price.

General information, not tax advice. Edge cases (large gifts from non-relatives, crypto, foreign income) have their own rules: ask your CA. CleanTab prepares, a human files.