
Suspense exists for a good reason. It is the holding pen for the two or three entries in a period you genuinely cannot classify yet, the ones waiting on a call with the client. Used that way it is a useful account.
After a bulk bank import it frequently holds everything. Three hundred transactions go in, three hundred sit in Suspense, and the time you saved on typing gets spent reassigning them one at a time. That outcome is not bad luck and it is not a quirk of your data. It is the predictable result of one mechanical rule, and once you can see the rule you can design around it.
The one rule that causes all of it
When anything imports a voucher into Tally, it has to name the ledger the entry belongs to. Tally then looks for a ledger master with that exact name.
If it finds one, the entry posts there. If it does not, Tally does not go hunting for something close, because it has no basis for deciding which near-match you meant, and posting to the wrong ledger silently would be far worse than not posting at all. So the entry goes somewhere safe.
That is the entire mechanism. Every entry sitting in Suspense is an entry whose ledger name did not match a master exactly.
Pro tip
This is why "does it read my bank" is the wrong first question to ask a conversion tool. Reading the statement is the easy half. The half that decides whether you save any time is what the tool writes into the ledger name field.
The three ways a ledger fails to match
In practice the failures fall into three groups, and they need different fixes.
1. The ledger genuinely does not exist
The client paid a vendor they have never paid before, and there is no master for them. This one is honest work. No tool should invent a ledger that should not exist without your say-so.
2. The ledger exists, spelled differently
This is the big one, and it is almost always avoidable. The master says "Acme Traders". The import wrote "ACME TRADERS PVT LTD", or "Acme Traders Pvt. Ltd.", or "M/s Acme Traders". A human reads all four as the same party without pausing. Tally reads four different strings, three of which match nothing.
Bank narrations make this worse, because the counterparty arrives wrapped in transport noise: "NEFT-N12345678-ACME TRADERS PVT LTD-HDFC0000123". Anything that passes the raw narration through as a ledger name grows your master list by one entry per transaction.
3. The ledger exists under the wrong group
Rarer, and it produces the most confusing symptom. The name matches and the entry posts, but the ledger sits under the wrong group, so the amount lands in the wrong place in the P&L or balance sheet. Nothing is in Suspense and nothing looks broken. You find it at finalisation.
Why the cleanup costs so much more than the prevention
If Suspense were simply a to-do list this would be tedious but bounded. Two things make it worse than that.
There is no bulk undo. An import that went in wrong cannot be rolled back in one action. You are altering or deleting vouchers, and on a few hundred entries that is an afternoon.
Ledgers cannot be merged. This is the one that really hurts. Once "ACME TRADERS PVT LTD" exists alongside "Acme Traders", there is no native way to fold one into the other and keep the history. You end up altering every voucher pointing at the wrong master, then deleting it. So a messy import is not a problem you clean up once. It leaves permanent debris in the master list unless you go and remove it deliberately.
The asymmetry is the whole point: preventing this costs minutes, repairing it costs hours.
Important
Never clear a Suspense pile by creating a fresh ledger for each entry just to empty the screen. It clears today and doubles the master list, and every future import now has two plausible masters to fail to match. This is how a company file ends up with four ledgers for one vendor.
Prevention: the master list is the real asset
The durable fix is not a faster import. It is a ledger master list worth matching against.
- Agree one naming convention per company file and write it down. Whatever you pick is fine as long as it is applied without exception. Trading name without the legal suffix is the most robust choice, because bank narrations carry the suffix inconsistently.
- Clean the existing duplicates once, deliberately, BEFORE your next bulk import rather than after. The list only gets harder to fix as it grows.
- Use Tally aliases for the variants you already know about, so one master can legitimately answer to more than one string.
- Never let a tool create masters silently. Creating a ledger should be a decision you make, not a side effect of an import running overnight.
- Fix names in the ledger master, not in individual vouchers. A voucher-level fix solves one entry. A master-level fix solves every future entry for that party.
What a tool should do instead of guessing
Given the rule at the top of this article, there are only two honest behaviours when an import tool meets a counterparty it cannot place.
It can bind the transaction to a ledger that already exists in the company file, which means reading the narration for who the party actually was and matching that against your real master list. Or it can hand the transaction back and ask you, before anything is written.
What it must not do is invent a master, write the raw narration into the ledger name, or post to Suspense and call the job done. All three look like success in the moment, and all three leave the company file worse than before.
Greenote is built on the first behaviour. It reads the narration for the counterparty, matches it to a ledger that exists in your Tally company, remembers the decision so the same party resolves itself next month, and shows you everything before a single voucher is written. Where it cannot place something confidently it says so, rather than filing it somewhere and moving on.
Digging out of a pile that already exists
If you have inherited a file where Suspense already holds hundreds of entries, do not start at the top of the list.
Sort the Suspense entries by counterparty, not by date. The pile is almost always a small number of parties repeated many times rather than hundreds of distinct problems, and that reframing usually cuts the work by an order of magnitude.
Then, for each recurring party: decide the one correct master, fix that ledger first, add aliases for the variants you have seen, and only then reassign that party's vouchers in a single pass. Finishing one party completely beats working chronologically, because the decision stays loaded in your head instead of being re-made forty times.
And do not run the next import until the master list is clean, or you are mopping while the tap is still running.
Pro tip
Do this once per client, properly, and it stays done. The master list is the asset that makes every future month faster, which is why it is worth an afternoon now instead of twenty minutes every month forever.
Conclusion
Entries land in Suspense for exactly one reason: the ledger name did not match a master. Everything else follows from that, including why the cleanup is so much more expensive than the prevention.
So the leverage is not in importing faster. It is in a master list worth matching against, and a tool that binds to it instead of guessing around it.
Greenote reads the counterparty out of the narration, matches it to ledgers that already exist in your Tally company, and shows you every line before anything posts. See the 7 voucher types it builds, or how the full statement to Tally flow works.
Start a free trial and run it against a real company file.
Turn bank statements into Tally vouchers offline
Greenote reads 100+ Indian banks and posts clean vouchers straight into Tally, fully on your PC. No uploads, no cloud, no manual entry.
7-day free trial, no card required. Works with Tally Prime & ERP 9.


