← Tools

TB Extractor

Why I built a privacy-focused desktop app to fix trial balance extraction from Tally.


When I first started working with trial balances extracted from Tally, it was a mess. Every time you wanted an extraction, you had to manually select which ledgers and groupings to include. And after that — you had to "tally" it. Literally. You'd check if total debits equal total credits, and more often than not, they didn't.

This was a recurring pain point, especially for people preparing financial statements. The extract-then-verify cycle ate into time that should have been spent on analysis and value addition.

So I decided to dig deeper.

The approach

I built a privacy-focused desktop application using C# and the Avalonia framework. No cloud, no telemetry — it runs entirely on the user's machine. The data stays local.

The extraction logic is simple by design:

Why it works

Here's the core insight: in the extraction, debits are negative and credits are positive. This means the total of all rows is always zero — the trial balance is tallied from the very first line. No manual cross-checking. No "let me just sum this column again."

The bigger benefit: hierarchy

Attaching the complete hierarchy to each ledger unlocks something powerful. Once you know exactly where a ledger nests — which group, which subgroup — you can allocate it to the right schedule using a filter mechanism. No guesswork.

This is the foundation that a later tool — Reimagining sumifs using Power Query — builds on top of. With clean, hierarchical TB data, you can replace fragile Excel formulas with a structured, repeatable process.

What it means in practice

A process that used to take 30–45 minutes of manual selection, extraction, and tallying now takes under a minute. The output is always tallied. The hierarchy is always attached. And the data is ready for the next step — whether that's financials, analysis, or audit support.

Download