Free migrations cost more than the discount you avoided giving
Guide · Pricing Intelligence · 6 min read · last verified 2026-07-21
A "free migration" isn't free — it's engineering time valued at a loaded hourly cost, spent instead of a cash discount. In this piece's worked example, that engineering time ends up costing more than the discount it replaced, once both are measured in comparable terms.
Why "free" is doing a lot of work in "free migration"
When a sales team offers a prospect a free migration instead of a price concession, it feels like the cheaper option because no line item on the invoice changes. But the engineering hours spent building import scripts, mapping data fields, and handling edge cases in the customer's existing system are a real cost — they just get absorbed into headcount instead of showing up as a discount on the contract. That accounting choice doesn't make the cost smaller. It just moves it somewhere less visible, off the deal desk and onto an engineering roadmap where nobody is tracking it against the deal it was spent to win.
The comparison sales actually needs to make isn't "free migration vs. nothing" — it's "engineering hours valued at their loaded cost vs. a cash discount," because both are ways of giving something up to close the deal. Once you put them in the same unit, one of them is usually more expensive than it looks, and it isn't always the discount.
The two costs sales is actually choosing between
A discount reduces the price the customer pays, and its cost to the business is the revenue given up — straightforward to calculate, and it shows up immediately on a deal summary. A free migration substitutes engineering time for that revenue concession, and its cost is the number of hours required, multiplied by the loaded cost of the people doing the work — salary, benefits, and overhead, not just the hourly wage.
The reason these two costs get compared unfairly in practice is timing. A discount is usually evaluated over the life of the deal — sometimes even discounted back to present value if it recurs across multiple years — while a migration's engineering cost is usually estimated (if it's estimated at all) as a rough one-time number that nobody revisits once the project is scoped. Comparing a carefully modeled discount cost against a hand-waved migration estimate will make the migration look artificially cheap every time.
Worked example: eng-hours vs. discount NPV, step by step
Take a hypothetical $40,000 annual contract value (ACV) deal, structured as a 3-year agreement. Sales is deciding between two ways to close it: offer a 10% annual discount for all 3 years, or absorb a free migration instead and hold price at full rate.
Step 1: Cost the migration. The team estimates the migration requires 80 engineering hours, and the company's loaded engineering cost is $150 per hour (salary, benefits, and overhead combined — a hypothetical but realistic loaded rate). That's:
80 hours × $150/hour = $12,000
This cost is incurred up front, before or at the start of the contract, so it's already in today's dollars — no discounting needed to compare it with anything else.
Step 2: Cost the discount, year by year. A 10% discount on a $40,000 ACV deal is $4,000 per year, for each of the 3 years:
Year 1: $40,000 × 10% = $4,000
Year 2: $40,000 × 10% = $4,000
Year 3: $40,000 × 10% = $4,000
Added up with no time-value adjustment, that's $4,000 × 3 = $12,000 — the same nominal total as the migration cost.
Step 3: Convert the discount to present value. Because the discount is paid out across 3 future years rather than all at once today, its true cost is lower than its nominal total — money given up later is worth less than money given up now. Using a hypothetical 8% discount rate:
Year 1: $4,000 ÷ (1.08)¹ = $3,703.70
Year 2: $4,000 ÷ (1.08)² = $3,429.36
Year 3: $4,000 ÷ (1.08)³ = $3,175.33
NPV of the discount = $3,703.70 + $3,429.36 + $3,175.33 = $10,308.39
Step 4: Compare. The migration costs $12,000, all incurred immediately. The discount costs $10,308.39 in present-value terms, spread across 3 years. In this hypothetical, the free migration is $1,691.61 more expensive than the discount it was meant to avoid — even though both options add up to the same $12,000 on a nominal, undiscounted basis.
Why the discount often looks worse than it is
The nominal totals in the worked example above are identical — $12,000 either way — which is exactly why comparing migration cost to discount cost on a nominal basis is misleading. The discount's cost is spread across three years, which lowers its present value relative to a cost paid entirely today. The migration's cost, because engineering hours get spent up front, doesn't get that same time-value benefit. A team that only looks at nominal totals would conclude the two options are equivalent; a team that discounts cash flows correctly would see the migration as the more expensive choice, as shown in the worked example above.
This doesn't mean discounts are always cheaper — it depends entirely on the inputs. A larger discount, a longer contract term, or a lower discount rate could easily flip the comparison the other way. The point of the worked example above isn't that migrations are always more expensive; it's that "free" is not the same as "zero cost," and the only way to know which option is actually cheaper is to run the numbers in comparable terms rather than assume the one without a line item on the invoice is the bargain.
When a free migration is still the right call
None of this means free migrations are a mistake. Sometimes the engineering work has value beyond the single deal — reusable import tooling, a connector that helps close the next five deals in the same vertical, or product learning about how competitors structure their data. When the migration cost is genuinely amortized across future deals rather than absorbed entirely by one contract, the comparison in the worked example above changes, because the $12,000 in engineering cost isn't really being spent to win one $40,000 deal — it's being spent to win several.
The mistake isn't offering free migrations. It's offering them without running the comparison at all — treating "free" as a synonym for "costless" instead of as a cost that happens to be paid in engineering hours instead of dollars off the invoice. That framing connects to a broader pattern in how discounting shapes buyer and market perception, covered in how discounting affects category perception: a price concession is visible and easy to reason about, while a services concession like a free migration is easy to underprice precisely because it's invisible on the deal summary.
How to price migration cost into the offer instead of hiding it
The fix isn't complicated: before sales offers a free migration, scope the engineering hours the way the worked example above does, multiply by a real loaded rate, and put that number next to the discount alternative on the same deal summary. If the numbers say the discount is cheaper, give the discount. If they say the migration is cheaper — which happens often, especially for larger contracts where the same nominal discount produces a bigger dollar cost — offer the migration with confidence, because now it's a decision backed by arithmetic rather than a reflex to avoid touching price.
This also has a second-order benefit tied to how a category gets valued over time: a value metric that holds steady because price wasn't the lever pulled to close deals tends to hold up better than one that's been quietly discounted deal after deal, even when the discounting happened off the invoice in the form of "free" services instead of on it.