NM Company
A portfolio and enquiry site for events firm NM Company
A visual portfolio and enquiry website for an event management and supplies firm — presenting a full...
Read itCustom ERP and operations systems
ERP systems built on an append-only stock and financial ledger — multi-plant, multi-GSTIN, GST-correct, and reconciled against the physical count instead of arguing with it.
Almost every ERP conversation we have starts in the same place: a Tally instance that only handles the books, four Google Sheets that hold the operational truth, and one person — usually in accounts — who is the only human alive who knows how the numbers connect. When that person takes leave, the month-end closes late.
An ERP is not accounting software. It is the system of record for what you have, what you owe, what you are owed, and what state every order is in right now. Get it right and a plant manager in Bhiwadi and a finance controller in Gurugram are looking at the same number at the same moment. Get it wrong and you have bought a very expensive data-entry job.
We build ERPs for manufacturers, distributors and multi-location retailers who have outgrown spreadsheets but do not fit an off-the-shelf product — because their costing is job-based, or they run three GSTINs across two states, or their production is make-to-order and no template has a field for it. We will also tell you, honestly, when Odoo or Zoho would do the job for a fifth of the money.
These are the sentences that arrive in our inbox. Not one of them is solved by another spreadsheet.
A quantity column that six processes overwrite, and a warehouse manager who "corrects" it by hand when it looks wrong. Nobody can reconstruct why the number moved.
Purchase registers in one sheet, sales in another, Tally somewhere in the middle. Closing the books is a reconciliation project, not a report you run.
They built the macros, they know which column is authoritative, and they have not taken a proper holiday since 2021. That is not a workflow, it is a single point of failure.
A six-week-old challan gets edited to fix a typo and today's stock silently shifts by 40 units. No audit trail, no approval, no way to prove what the number was on the 31st.
The true material and labour cost of an order surfaces weeks later, once someone assembles it by hand — long after you quoted the next one at the same price.
Three units, three GRN formats, two GSTINs and a stock transfer note that exists only in WhatsApp. Consolidated reporting is a fiction assembled once a quarter.
Here is the single design decision that separates an ERP you can trust from one you cannot: stock must be an append-only ledger, never a mutable quantity column.
The tempting design is a products table with a qty integer that every process increments and decrements. It works for a month. Then two users receive the same GRN simultaneously and one write silently overwrites the other. Then somebody edits a six-week-old delivery challan to fix a typo and today's stock quietly shifts by 40 units. Then a warehouse manager "corrects" the number by hand because it looked wrong, and now nobody can reconstruct why. You end up with a figure nobody believes and a physical count every fortnight.
We model stock as immutable movements: every receipt, issue, transfer, adjustment and return is a row that is written once and never updated. Current stock is the sum of those rows. Nothing edits history — a mistake is corrected by a reversing entry, exactly like a journal. That gives you three things you cannot buy back later: stock at any past date, an audit trail that names the human and the timestamp behind every unit, and a number that reconciles with your physical count instead of arguing with it.
The same discipline applies to financial postings, batch and serial traceability, and costing. Append, do not mutate. It is unglamorous and it is the whole ballgame.
Median movement across manufacturing and distribution rollouts, measured two quarters after the cut-off date — not on go-live day, when everyone is still being polite.
Scope an ERPDown from nine to eleven days
System vs physical count, cycle-counted
Corrections are reversing entries, not overwrites
Duplicate keying across sheets and Tally
A big-bang cutover on a system this central is how ERPs make the news. We do it in slices, each one in real use before the next begins.
We walk the plant and the warehouse. We watch a GRN actually get received, a challan actually get raised, a job card actually get filled. What people do and what the SOP says are different documents, and the ERP has to serve the first one. We leave with a process map, a data model and an honest list of the practices that will have to change.
Chart of accounts, item masters, HSN codes, tax classes, units of measure, warehouses, entities and GSTINs. Then the movement ledger itself. This is the unglamorous fortnight that decides whether the system still works in year four, and we do not compress it to make a Gantt chart look better.
Each module ships into real use as it lands. Purchase orders, GRN with quality hold, stock movements and transfers, sales orders, delivery challans, GST-correct invoicing with IRN and e-way bill. Your buying team is using the purchase module while we are still building production.
Masters, opening balances and history extracted from Tally and the spreadsheets, deduplicated, loaded as opening ledger entries. Then both systems run side by side for a full cycle, reconciled every single day. Trust in the new number is built by watching it agree with the old one, not by being told to trust it.
A named date after which the old sheet is read-only, announced by someone senior enough that it sticks. Every process owner signs off that their module is live. We staff the floor for the first week, because on day two somebody will want to go back and someone has to be there to say no and then help.
Bills of material, job cards, work-in-progress, actual job costing, quality checks, and the dashboards a controller actually opens. Built on a ledger that is already trusted, which is the only reason these numbers mean anything.
Built on one ledger, one master data set, one permission model. Not six products stitched together with a nightly CSV.
Multi-warehouse, batch and serial traceability, bin locations, cycle counting, and stock as at any past date. Corrections are reversing entries — history is never rewritten.
Indents, RFQs, purchase orders with approval limits, GRN with a quality hold, three-way matching against the invoice, and vendor ageing that finance can actually action.
Quotations, sales orders, allocation against real available stock, delivery challans, e-invoice and e-way bill, receivables ageing and a credit limit that blocks the order rather than warning about it.
Multi-level bills of material, work orders, WIP tracking, machine and labour capture, scrap and rework. Actual cost per job, visible while the job is still open.
Permissions scoped by entity, plant and module. Financial postings and rate changes go through an approval trail that names the human, the timestamp and the before-and-after value.
Stock ageing, margin by SKU and by customer, plant-wise consumption, receivables and payables ageing. Consolidated across GSTINs, drillable down to the individual movement.
| Tally + sheets | Zoho / Odoo | Custom ERP | |
|---|---|---|---|
| Real-time stock across plants | No | Yes | Yes |
| Append-only auditable ledger | No | Partial | Yes |
| Job-based or make-to-order costing | No | Painful | Native |
| Multi-entity, multi-GSTIN consolidation | Manual | Add-on | Native |
| Cost scales with headcount | No | Per user, forever | No |
| Time to first live module | No | 6–10 weeks | 10–14 weeks |
| Sensible when | Under ₹5 cr turnover | Conventional processes | Your process is the moat |
ERP rollouts do not usually fail for technical reasons. They fail because the store supervisor keeps a parallel notebook, the sales team keeps quoting from an old price list, and nobody senior ever said out loud that the spreadsheet is now dead.
So we plan the human half with the same seriousness as the schema. We name a process owner per module — a real person, not a committee. We run the new system in parallel with the old one for one full cycle, reconciling daily, so trust is earned rather than mandated. We train on your data, not on demo data, because a warehouse team will not engage with a fictional widget. And we agree a cut-off date after which the old spreadsheet is read-only, and we hold that date.
We have seen more ERPs die from an unenforced cut-off than from any bug we have ever shipped.
No proprietary runtime, no per-seat licence, no vendor who can hold your operations hostage at renewal.
Manufacturers and distributors running on a ledger they trust.
A Shopify storefront for a Surat ethnic-wear label — 200+ SKUs of lehengas, sarees and suits organised by type, colour,...
A fleet, ePOD and route-optimisation platform built offline-first for drivers in low-connectivity corridors — because th...
A Shopify storefront for a Surat watch and eyewear retailer — browsable by gender, brand, style and combo, with predicti...
Bring the Tally export, the four spreadsheets and the last physical count. We will show you exactly where the number goes wrong and what it takes to make it trustworthy.
Proof
NM Company
A visual portfolio and enquiry website for an event management and supplies firm — presenting a full...
Read itSwasthya Sarathi
A multi-service healthcare platform that helps people find hospitals, doctors, labs, medical stores,...
Read itMV Tech Education
A course-catalogue and admissions website for a Bihar vocational institute — leading with industrial...
Read itProduction web applications built on Laravel, Next.js and Postgres — typed, tested, observ...
ExploreFlutter, React Native and native apps that hold up offline, on old hardware and on a metro...
ExploreCommerce platforms where the checkout converts and the back office reconciles — multi-ware...
ExploreLet's talk erp development
A senior engineer reads every enquiry. You'll get a real answer — scope, risk and a number — within one business day.