Skip to content
PRS India

Vishwa Precision Components

Off Tally, onto a real ledger: a 3-plant manufacturing ERP

A manufacturing ERP for many plants, built on an inventory ledger that only adds new rows. 2.4M Tally vouchers were moved with zero balance drift, and heat-lot tracing went from two days to four minutes.

Client
Vishwa Precision Components
Industry
Manufacturing & Automotive
Location
Bhiwadi, Pune & Coimbatore, India
Duration
11 months (incl. 2 parallel quarters)
Published
Jul 2023
Updated
Oct 2026

3 days

Days to close the month, down from 14

99.2%

Stock accuracy against cycle counts, up from 91.4%

2.4M

Tally vouchers migrated with zero balance drift

4 min

Heat-lot traceability query, down from 2 days

01

The challenge

Vishwa Precision Components machines and heat-treats safety-critical parts for automotive tier-1 buyers, from three plants: Bhiwadi, Pune and Coimbatore. ₹180 crore turnover, nine years of history, and records kept in Tally ERP 9 plus about forty Excel workbooks with names like Stock_Master_FINAL_v3_USE_THIS.xlsx.

The problem was not that Tally was bad. It was that Tally was being asked to be an ERP.

Tally is excellent accounting software. But it does not run the shop floor, and it was never going to answer the four questions that were hurting this business:

  • Where is my work-in-progress? Material issued to the shop floor left the books and reappeared, days later, as finished goods. In between, ₹6–8 crore of inventory was invisible. Plant heads estimated WIP. The word they used was "estimate".
  • Which parts came from which heat lot? Their IATF 16949 duties to OEM customers require tracing by lot. If a batch of steel turns out to be bad, they must find every part made from it. Answering that question took two people about two days of digging through paper job cards. In a live recall, two days is not an answer.
  • What did we own on 31 March? Stock quantities lived in Excel cells that anyone could overwrite. There was no way to rebuild the stock position of an earlier date. So every year-end valuation became an argument with the auditors.
  • What is at the subcontractor? Job-work challans and the ITC-04 return were put together by hand each quarter from a folder of paper. Material sitting with a job-worker was, in practice, material that had vanished.

Month-end close took fourteen days. By the time the numbers were ready, they described a month that was already two weeks old and no use for decisions.

02

What we built

Inventory as a ledger, not a column

The most important decision on this project: we did not store current quantity anywhere. Stock is a ledger that only ever grows, made up of stock_moves: every receipt, issue, transfer, scrap, rework and return is a row that never changes, with a quantity, a lot, a location, a time and a reason. Current stock is worked out from these rows. Past stock is worked out the same way, with an earlier cut-off date.

Systems that keep an editable qty_on_hand column always feel simpler on day one. They always end the same way: a bad update, lost history, and a valuation nobody can defend to an auditor. Weighted-average costing is worked out from the move ledger. So the March 31 valuation is not a snapshot anyone has to trust. It is a replay anyone can check.

We refused the big-bang cutover

They wanted to switch off Tally on 1 April. We said no, and it was the right call. Instead we ran parallel for two quarters: the new system took charge of daily work at once (production, inventory, purchase, job-work), while Tally stayed the official book for the law and the auditors. Every night a check compared ledger balances across the two systems and raised an alert on any difference over ₹1.

For six weeks that check shouted at us every day. Every alert showed something we had misunderstood about their business: a rounding rule, a way of handling rejected parts, a way of treating free-issue material that nobody had written down. Finding those in parallel-run is cheap. Finding them after cutover, with no book to check against, is a crisis.

Migration you can rehearse

2.4M vouchers across nine years came out of Tally by XML export into a fully idempotent, replayable ETL with a per-voucher-type checksum manifest. Because it was replayable, we could run it as many times as we liked. We ran it eleven times. The eleventh rehearsal produced zero balance drift, and that was the one we shipped.

Multi-plant without multi-database

We scoped by plant_id inside one database with row-level access rules, instead of setting up a database for each plant. One database for each plant looks tidy until you need a stock transfer from Bhiwadi to Pune. Then it becomes a transaction across two systems, and they must never lose a lakh of steel. In a single ledger, an inter-plant transfer is two rows. That is the entire feature.

The shop floor gets a scanner, not a keyboard

Every heat lot gets a QR label when goods arrive. Operators scan at each stage on tough Android devices. The scanner app works without a network. A machine bay behind three feet of concrete has no Wi-Fi, and blaming the operator for that is not a plan. Tracing checks follow the move ledger, so "which parts came from heat lot HL-2291" is a simple lookup, not a big dig through old records.

03

The outcome

The switch was on 1 October, at the end of the second parallel quarter. Nothing went wrong, which is the highest praise an ERP switch can get.

The numbers

  • Month-end close: 14 days → 3 days. The finance team did not type faster. The data no longer had to be put together, because it was already a ledger.
  • Stock accuracy: 91.4% → 99.2%, measured by how far cycle counts differ from the system stock. The remaining 0.8% is almost all a known pattern of stock loss at one plant. They now know about it because they can finally see it.
  • Heat-lot traceability: 2 days → under 4 minutes. This one was tested for real seven months after go-live, when an OEM customer asked a question about a material. They answered the same afternoon. Their quality head told us it was the first time in nine years that a traceability request had not ruined a week.
  • 2.4M vouchers migrated with zero balance drift, verified against Tally across two full quarters of parallel running before anyone was allowed to switch anything off.

What it unlocked

WIP is now visible almost live, and the ₹6–8 crore that used to disappear between issue and finished goods is now a number on a dashboard. The ITC-04 job-work return used to take two people every quarter. Now it is made from the move ledger in one click, because material at a subcontractor is just a location in the ledger like any other.

The plant heads stopped estimating. That is the whole project, in three words.

Under the hood

How it's built.

Technology

  • Laravel
  • MySQL 8
  • Redis
  • Laravel Horizon
  • Filament
  • Android (Kotlin)
  • Tally XML ETL
  • GST APIs (ITC-04, e-Invoice)
  • Docker
  • AWS RDS

Services used

  • ERP Development
  • Custom Software Development
  • Data Migration
  • Mobile App Development
  • Cloud & DevOps

We told them we wanted to switch Tally off on the first of April. They told us that was how ERP projects die, and made us run parallel for six months instead. Every week of that felt slow. Not one week of it was wasted.

Ramesh Iyer Managing Director, Vishwa Precision Components

Same problem?

Let's build something that ships.