ERP Implementation Cost and Timeline

Article Surendra Lal, Managing Partner · · 6 min read

Quick answer

A focused custom ERP slice — one site, one core workflow, live — is often three to six months. A fuller system with stock, jobs, accounts and reporting is nine months to well over a year, usually in phases. Package implementations are not automatically faster: data migration, training and the gap between “configured” and “how we actually work” eat the calendar either way.

Part of our guide to What Is Custom ERP?.

Where the months go

PhaseWhat is happeningTypical span
DiscoveryProcess, data, integrations, definition of the first live slice2 to 6 weeks
First sliceBuild, migrate a usable data set, train the people who will actually use it8 to 16 weeks
Parallel runOld and new side by side until the numbers match2 to 6 weeks
Next modulesAccounts, production, branches — one at a timeOngoing

The phase that gets skipped is parallel run. Skipping it is how you go live on a Monday and discover on Thursday that stock was never right.

Costs that are not the software

  • Cleaning and migrating data. Always larger than the first conversation implied.
  • Staff time. Someone from the business has to sit with the build. If they cannot, the system will encode guesses.
  • Integrations — Tally, banks, e-commerce, weighing scales, whatever is actually in the room.
  • Training and a written operating procedure. Software without that becomes optional in a month.

Licence fees on a package are visible. These items are not, and they appear on custom and package projects alike. See custom versus SAP versus Odoo before you compare two quotes that are not measuring the same thing.

A realistic first-year calendar

Weeks 1–4: sit with the people who actually enter orders. Photograph the spreadsheets. Write the first-slice definition so narrowly it feels rude. Weeks 5–16: build and migrate enough history that yesterday’s order can be found. Weeks 17–20: parallel run — both systems, every day, until the numbers match without a hero in accounts. Rest of the year: one module at a time. Anyone promising “full ERP, one go-live, ninety days” is pricing a different job than the one in your building.

Package timelines are not automatically shorter

Odoo or SAP still need data cleaned, staff trained, and the gap between “the module exists” and “this is how we invoice retainers” closed. Those months appear on the custom side too. The difference is where the money goes: licences and partner days, or software you own. Compare like with like using custom versus SAP versus Odoo.

Who must be in the building

An operations lead who can spare a day a week. Someone from accounts who will say when the numbers are wrong. A person at each branch in the first slice who will click the live system, not only attend a kickoff. If those people are “too busy until after go-live”, move the date. Software cannot learn the process from a steering slide.

The vendor’s job is to turn that time into a written first slice, a migration plan, and a parallel-run checklist. Your job is to settle arguments about item codes before they are encoded. A partner who does not ask for that time is planning to guess.

What “live” means — and when to stop a phase

Live means yesterday’s order can be found by the person who will be asked about it, without the old spreadsheet. It does not mean every report the director mentioned in January. When the numbers match for a stretch you agreed in discovery — often two to four weeks of parallel run — you switch the old path off. Switching off is a management act. Software cannot retire a workbook people still trust.

Stop a phase when the slice does what the sentence said and the next request is a new sentence. Start a new phase. Combining them “while we are here” is how first slices become nine-month programmes with no go-live.

Questions that decide whether the calendar is real

Who cleans item codes, and have they started? Which branch is first, and do they agree? What does parallel run look like on a busy Thursday — both systems, or a sample? Who can say no to a new module until the numbers match? If those answers are “we’ll see”, the Gantt chart is decoration.

Package calendars fail the same test. Odoo “six weeks to live” assumes standard apps and clean data. SAP “this year” assumes a team that will change the business. Custom “three months for a slice” assumes the people above exist. Lie about any of those and the months reappear, with blame attached to the software.

Hidden weeks that never appear on the sales Gantt

Waiting for a Tally administrator who is also the accountant at month-end. Waiting for item codes that three people must agree. Waiting for a bank or a weighbridge vendor to issue a test key. Training the night shift, not only the people who attended the kickoff. These are not the developer being slow. They are the calendar. A quote that ignores them is not optimistic. It is incomplete.

Write those waits into the plan as named gaps. If they collapse, you finish early. If you pretend they are zero, you will call the build late when the build was waiting on you. That distinction matters when you choose who to hire and when you argue about the last invoice.

A first-slice definition you can paste into a statement of work

“One branch. Orders and stock. Yesterday’s order is findable. Tally receives a posting or a file we agreed. Parallel run until the numbers match for ten working days. No production planning, no customer portal, no second branch. Change requests written down before they are built.” That paragraph is a calendar. “Full ERP this year” is not. If a vendor will not sign the paragraph, they are selling a different job. If you will not sign it internally, you are not ready to start the months.

Staff time in that slice is not optional. An operations lead, a day a week. Accounts, enough hours to say the numbers are wrong. The branch that will click it live. Without those names, discovery should not end. The software is the smaller part of custom ERP; the names are the rest.

For the broader “what are we even building” question, start at what custom ERP is. Money in the abstract is on how much custom software costs.

What parallel run looks like on a busy Thursday

Every order that day is entered in both places, or a named sample if volume is huge — written down, not “we’ll try”. Accounts compares stock and invoices before they leave. Mismatches become a list, not a vibe. After ten such days with a shrinking list, you switch the old path off. A parallel run that is “when we have time” is not a phase. It is how you go live on feelings.

Budget those ten days as staff time in the quote. If the branch cannot spare them, the calendar is a wish. Move the date. That is cheaper than a Monday go-live and a Thursday argument about opening stock. Put the ten-day rule in the statement of work. If a vendor deletes it to look faster, they deleted the phase that makes the months real.

Related knowledge

How LavisTech can help

← All ERP & Business Systems pages

Want this built properly?

We design and build these systems for growing businesses. Tell us the problem and we will scope it honestly.

Start a Conversation