erpification.com  ·  the definition, and the service

Erpification  /  Guides  /  Fit-gap analysis, done properly

Fit-gap analysis, done properly

Whoever writes the gap column writes your bill. The fit-gap document is not an analysis, it is a budget and a decision about how your company will work, and it is normally drafted by the party paid to close the gaps.

Every published description of fit-gap analysis ends at a classification: fit, partial fit, gap, not applicable. None of them says who assigns the bucket, how a dispute is settled, or what any bucket costs. So the artefact that is in fact a multi-year budget comes out as a spreadsheet of adjectives, and the number arrives later as a change order.

The pen rule

The conflict of interest sits in plain sight and goes unmentioned. The party that bills for closing gaps is the party that classifies them. In the standard sequence the implementation partner runs the workshops, demonstrates the product and fills in the fit column, and “fit, with a small customisation” is revenue on their side of the table.

Split the pen. The partner may mark Fit, Partial fit or Gap, because that is a statement about their own product and they know it better than you do. You mark what you are going to do about it and who pays. The disposition column never leaves your side of the table, and it is not a column a supplier should be invited to recommend into.

Two controls make the split hold. Require the partner to state a fit percentage in writing, per module, over a register you wrote. And require every Fit claim to cite the demo step or the pilot script that proved it. An unproven Fit is a gap you have not found yet, and it will be found during testing, which is the most expensive place to find one.

What makes a requirement admissible

Pages say “gather requirements”. The reason gap registers are unusable is that nobody says in what form. A line enters the register only if it can be written as five parts:

Worked, with one company's own measured figures in it rather than any benchmark: AR clerk, on a single cheque covering fourteen invoices across two legal entities, applies the cash in one pass; sixty times a month; without it, three hours a week of manual splitting and a month-end reconciliation break. That line can be estimated. “Cash application must be flexible” cannot.

The form does two jobs at once. It separates a gap from a preference, because a preference cannot be written this way. And it supplies the only inputs a cost estimate can use: frequency, hours, and the failure being avoided. Anything that will not fit the form goes on a wish list, not in the register.

The scar-tissue audit

Before classifying any line, ask for its business reason. If the only answer is “that is how we do it in the old system”, you are looking at a workaround for the previous ERP that has been codified into a process and is now being presented as a requirement. Buying a gap to support it pays twice for the same limitation: once in the old system's licence, once in the new system's build.

Run this pass before the partner sees the register, and expect lines to die in it. Budget time for the argument, because the people defending those lines tend to be the ones who invented the workaround and kept the business running with it. The honest framing is that their workaround was the right answer to the old constraint, and the constraint is what is being removed. The distinction between a process problem and a software problem is the whole subject of outgrown QuickBooks, or outgrown your process, and it is worth settling before you start pricing gaps.

Six dispositions, not four

The standard list offers configure, customise, change the process, and sometimes a workaround. Two resolutions are missing from it, and both are real options a buyer is entitled to take. Each disposition has its own cost shape, and the shape matters more than the quote.

DispositionWhat it actually costsWhat to write down before choosing it
ConfigureOne-off consulting and internal hours. Survives upgrades, because configuration is what the vendor supportsThe setting, the person who signed it off, and the test that proves it. Configuration that nobody documented is indistinguishable from an accident
Extend or customiseBuild cost once, then regression testing at every release. On a cloud product with a quarterly release cadence that is a standing annual line, not an occasional eventWho regression tests it, how many hours per release, and who pays for those hours in year three
Change the processTraining, documentation and one-off disruption. Sometimes the loss of something the business actually sells onWhether the practice being dropped is a commercial differentiator. If a customer chose you because of it, this is a pricing decision, not a configuration one
WorkaroundNo capital cost, which is why it wins by default. A permanent recurring labour cost, plus the control weakness that comes with manual handling outside the systemThe name of the person who performs it, the day of the week they do it, and what happens when they leave
DeclineNothing to build. The cost is the capability given up, which is why it has to be stated rather than assumed awayWhat the business loses, in the words of the department that loses it, signed by its head. A decline nobody signed is a surprise waiting for go-live
Wait for the roadmapNothing now. A manual process of unknown length if the date slips, which is the cost everyone omitsA version number, a date, and a named fallback that applies automatically if the date passes. Without all three this is not a resolution, it is optimism in a spreadsheet cell

The vendor quote prices the first two. The other four are where the operating model is decided, and none of them appears on an invoice.

The five-year rule

Nobody prices anything. That is the central failure of the published approach, and it is fixable with one arithmetic rule applied to every gap.

Shape, not measurementThe bars name the four lines a five-year total has to carry and show no measured amounts, because the amounts are yours: your release count, your annual hours, your loaded rate. The exercise answers one question, and only your own arithmetic answers it: whether the two lines a quote leaves out outweigh the one it prices.

For each gap, total: the one-off build, plus the expected number of releases over five years multiplied by the regression hours each release costs, plus the annual manual hours multiplied by a loaded hourly rate, plus the cost of any control weakness being introduced. Then choose the lowest five-year number, not the lowest quote. They are routinely different options.

Do the manual line on the back of an envelope before the meeting, because it is the one people carry in their heads as free. One hour a week is about fifty hours a year and roughly two hundred and fifty over the horizon. Multiply by your own loaded rate, put the result beside the configuration quote, and the comparison is finished: arithmetic, not judgement. The asymmetry is that the manual line keeps accruing after the programme closes and the configuration line stops. Which is also the thing no cost model captures, and the reason this disposition needs a name in the register: a workaround outlives the person who invented it, and by the time anyone asks why the spreadsheet exists, the gap it was built for has been forgotten.

The register, and the six columns that matter

Published templates stop at business requirement, current capability, desired capability, gap, proposed resolution, owner, priority, dependency. Columns, no numbers, no dates, no signature. Use these instead.

ColumnWhy it is in the register
Gap IDSo the same gap can be traced from design to test rather than renamed and lost
ProcessThe end-to-end process, not the module. Gaps cluster at boundaries
Requirement, in admissible formRole, trigger, volume, output, consequence. Nothing else is estimable
MoSCoW priorityMust, Should, Could, Won't, under the cap below
Partner classificationFit, Partial fit or Gap, in their words, with the proof reference
Our dispositionOne of the six. Yours to write
One-off costBuild and consulting, your hours included
Recurring annual hours and costThe column that changes decisions, and the one no template has
Who performs it, by nameA role is not a name. Manual work with no name attached is unowned
Breaks on upgrade? Y/NDrives the regression line in the five-year total
Audit or control consequenceWhat a reviewer will say about the workaround you chose
Decision owner and date decidedA disposition without a signature and a date is a discussion
UAT script IDThe link that stops gaps evaporating between design and go-live

That last column deserves its own sentence. Without a trace from gap ID to configuration decision to the test script that proves it, a gap can be agreed in a workshop, forgotten in build, and discovered by a clerk in week one of live running. The register is the index to the test plan, not a document that is filed when design closes.

The order of operations

Fit-gap is said to be done twice: once during selection to compare vendors, once after contract in design workshops. True, and never operationalised. Here is what changes between the passes, and what to do when the second pass contradicts the first.

  1. Your register firstprocess inventory and gap register written before any partner workshop
  2. MoSCoW with a capMust no more than about a fifth of lines, each signed by one named executive
  3. Scripted demosyour data, your volumes, in a sandbox, no slides
  4. Log the phraseevery “we can do that with a small customisation”
  5. Conference room pilotre-run fit-gap after contract with real data
  6. Re-price at the exitcontract allows scope re-negotiation at pilot exit

The cap is the point of step twoIf everything is a Must, the exercise has failed and no trade-off is possible later. Choose the cap yourself and write it down before the lines are counted; what makes it work is that it exists and binds, not the figure chosen. One named executive per department signs each Must, which is a different act from a committee agreeing that everything matters.

Step four is the cheap one and the one nobody does. During selection, log every occurrence of “we can do that with a small customisation”, with the date, the person and the requirement. That log is the gap register the vendor will not write, and at contract time it is the most useful document in the room. The demo discipline that produces it, including grading each step Native, Configured or Promised rather than scoring it out of five, is set out in how to run a scripted ERP demo on your own data.

Step six is contractual, not analytical. The second pass will contradict the first, because real data behaves differently from a sandbox and because some Fit claims will not survive a pilot. The contract has to permit scope to be re-negotiated at pilot exit, or the contradiction becomes a change order instead of a correction. Where the pilot sits relative to everything else is the subject of the six stages of erpification, including the bill that arrives at cutover when a stage is skipped.

The spreadsheet test

For every gap marked workaround, ask three questions and write the answers in the register. Who runs it. On which day. What happens when that person is on holiday, or leaves.

No name and no day means the gap is deferred, not resolved. Then count the workarounds. That count is your real operating model after go-live, and it belongs in the business case rather than in an appendix. A programme justified on efficiency that ships with a long list of named manual routines has not been costed, it has been described.

Workarounds are also the disposition with no approval gate. Configuration needs a budget, an extension needs a statement of work, a process change needs a department to agree. A workaround needs nobody, so it wins by default whenever a decision is uncomfortable. That is why it is the one disposition that has to be counted out loud.

The Phase 2 test

“Phase 2” is never named as what it is. A gap moved to Phase 2 without a budget line, a date and an owner has been declined, not deferred. The mechanism is administrative rather than mysterious: Phase 2 has no budget holder, so nothing on it competes for money, and the next planning round is written against next year's priorities rather than last year's deferrals. A list nobody is funded to clear does not get cleared.

The test is a single administrative act. Relabel every such line “declined”, circulate the list to the departments whose requirements they were, and see who signs. The signatures that do not come back, and the objections that come back instead, are the conversation you needed before signing the contract rather than eighteen months into live running.

Count interfaces, not apps

A gap closed with a third-party add-on is routinely recorded as a fit. It is not. It brings a second vendor, a second renewal date, a second release cadence that will not align with the first, at least one data flow, that flow's error handling, and a reconciliation that someone has to own by name.

So count interfaces, not applications. Then give the add-on its own gap register and its own five-year total, because the add-on has gaps too and they are now yours. A bolt-on exempted from this treatment is not a resolution, it is the same gap moved to a different ledger. The data flows and the reconciliations that have to tie are the same ones described in the data migration checklist, and the chart that both systems have to agree on is covered in a chart of accounts you will not regret.

What a fit percentage has to state

Fit percentages are quoted as benchmarks and derived from nothing. The defect is the denominator. A fit score over an unweighted list of requirement lines says nothing, because the lines are not equal: three processes that generate most of the revenue outrank two hundred administrative conveniences, and a high fit score can sit comfortably on top of a gap in all three.

So weight the register before computing anything. Mark the processes the money moves through, score those separately, and state the denominator alongside any number you quote. If the denominator cannot be stated, do not quote a number, and treat a supplier's number without one the same way.

Baseline, then change orders

Scope creep and change orders are treated as a separate topic on separate pages, which is odd, because the fit-gap document is what generates them. Join them up with two rules.

Freeze the register on a dated version at the end of the pilot, signed. Everything added after that is a change order, and a change order is priced with its five-year number attached, not with a number of hours. Then review each one against the Must cap. If a new Must displaces nothing, it was never a Must, and the cap has quietly stopped working. This is the mechanism behind the claim that minimising gaps reduces cost, which otherwise gets asserted with no mechanism at all.

§

No failure statistics here, and why

Competing pages on this query open with a number: a share of ERP projects that miss their targets, a share of features that go unused, a share of companies that customise. This page uses none of them, and the absence is deliberate.

Try to trace one before you quote it, with three questions: who was surveyed, how many of them, and whether the original report can still be retrieved and read. A figure that fails the third question cannot be checked by anyone, which is also how two pages quoting the same number come to disagree about what it measured. Some of these figures measure something that has stopped existing: the share of code modified is not a meaningful quantity in cloud ERP, where extension happens outside the code base by design. The widely quoted “eighty to eighty-five per cent fit” benchmark has no stated denominator, which by the argument above makes it unusable even if it were measured. Where another page would cite a number, this one describes the mechanism instead, because the mechanism is what you can act on. The failure modes themselves, traced to the gate where each was decided and with no failure rate attached, are in why ERP implementations fail, without the statistics.

Before writing a register at allA gap register is worth building only if the business needs a new system. If that is still open, start with the readiness check, twenty scored statements that say when the honest answer is no. If the question is whether a company of your size should be in this market at all, ERP for a 50-person company covers why headcount does not predict system class.

Read next