An ArcGIS to QGIS and PostGIS migration can reduce licensing expense and still cost more overall. The useful question is: what does the same working service cost over the same period, including the transition? For a Colombian organization, that includes retained Esri capabilities, local personnel, support, infrastructure and the timing of contract renewals.
This guide provides a reproducible total cost of ownership model, reviewed on September 23, 2026. Amounts in the worked example are invented assumptions in COP millions. They are not GeoSAT prices, an Esri tariff, a Colombian procurement reference or observed client savings. Use the calculator after building the inputs below.
1. Define a comparable service
Write down who does what before attaching a currency to software. Eight desktop analysts, one public map and a daily import are different from eight editors using branch versioning, an offline inspection application and an on-call enterprise platform. Counting seats alone hides the expensive dependencies.
| Scope question | Baseline evidence | Alternative evidence |
|---|---|---|
| Desktop analysis and layouts | Tasks, extensions, output examples | Same task performed in QGIS; adaptations measured |
| Shared editing | Rules, relationships, conflicts, audit needs | Database/application design and conflict test |
| Publication | Services, consumer applications, traffic | Compatible endpoints, refreshed applications and load test |
| Field operations | Devices, offline forms, attachments, sync | Equivalent field exercise and support estimate |
| Identity and permissions | Roles, groups, access restrictions | Tested controls across API, database, cache and app |
| Continuity | Actual support hours and restoration time | Named operating team and successful restore |
Mark each workflow as migrate, retain, redesign or retire. A retained ArcGIS network process belongs in the future budget. A dashboard rebuilt from scratch belongs in transition. A better map without the previous editing workflow is a scope reduction, which must be visible to the decision maker.
2. Build annual costs from evidence
Use the last complete operating year, adjusted for known future changes. Match contract term, user entitlements and actual usage. Separate prepaid commitments from expenditure that can really stop after migration.
| Cost category | Include | Common omission |
|---|---|---|
| Licenses and subscriptions | Desktop, extensions, server, portal, field and retained products | Minimum commitments that remain after seats decrease |
| Infrastructure | Compute, database, disk, backups, egress and recovery capacity | Storage growth, duplicated environments and restoration storage |
| External operations | Support scope, incident coverage, maintenance and upgrades | Assuming a development supplier also provides 24-hour operations |
| Internal labor | Administrator, GIS analyst, help desk and security hours | Treating salaried work as having no opportunity cost |
| Metered services | Geocoding, routing, imagery or hosted processing used by the workflow | Assuming open software includes free third-party data/services |
| Exit and handover | Export formats, configuration ownership and operator transition | A new dependency on an undocumented supplier |
ArcGIS Online credits apply to specified storage, analysis and premium-service activities; do not assume every map request consumes the same credit amount. Use the organization's consumption report and the exact service category in Esri's credit documentation. This documentation explains cost drivers; it does not establish your contract price.
For Colombia, keep COP-denominated costs separate from USD-denominated commitments until a dated exchange-rate assumption is supplied. Use consistent tax treatment on both sides and have the organization's finance team establish recoverability and applicable treatment. Neither this example nor the calculator supplies a live exchange rate. For Mexico or another Spanish-speaking market, retain the same model and replace the local inputs rather than converting a Colombian percentage into a sales claim.
3. Estimate transition separately
Transition normally includes discovery, data correction, conversion, scripts, service and application adaptation, testing, training, deployment and temporary coexistence. Estimate each from a deliverable and responsible role. “Migrate the geodatabase” is too broad; separating feature export, domain recreation, attachment migration and dependent application changes makes uncertainty measurable.
Use three estimates for uncertain work: an expected value, a plausible lower bound and a plausible upper bound. A pilot should reduce the largest uncertainty. If rebuilding offline synchronization dominates the range, another installation tutorial will not improve the business case.
Avoid double counting. Supplier integration fees and internal review hours can coexist, but the same engineer's work cannot appear in both a bundled support charge and a separate labor line. If overlap licenses are already included in transition, do not also charge the same period as an additional full annual renewal. Record the renewal date: a technically successful cutover may deliver no immediate cash saving when the subscription was prepaid and cannot be reduced midterm.
4. Use a transparent calculation
For a simple model with constant annual cost and all transition paid at the start:
B = current annual cost
F = future annual cost, including retained licenses
T = one-time transition cost
N = years in the comparison
Current total = N × B
Alternative total = T + N × F
Net savings = N × (B − F) − T
Savings percentage = net savings / current total × 100
Simple payback months = 12 × T / (B − F), only if B > F
A negative result is valid. If B <= F, recurring cost reductions cannot repay a positive transition cost. If the baseline is zero, a savings percentage is undefined. Simple payback assumes savings arrive evenly; real invoices and staged migrations often require a monthly cash flow instead.
Reproducible example in COP millions
Assume current annual cost of 120, future annual cost of 50 and transition of 90 over five years. The current total is 600; the alternative is 340; modeled net savings are 260, or 43.33%. Simple payback is 15.43 months. Every input is hypothetical.
| End of period | Cumulative current cost | Cumulative alternative cost | Cumulative savings |
|---|---|---|---|
| Transition, before year 1 | 0 | 90 | -90 |
| Year 1 | 120 | 140 | -20 |
| Year 2 | 240 | 190 | 50 |
| Year 3 | 360 | 240 | 120 |
| Year 4 | 480 | 290 | 190 |
| Year 5 | 600 | 340 | 260 |
This Python example reproduces the figures without a spreadsheet library:
baseline = 120.0
future = 50.0
transition = 90.0
years = 5
current_total = years * baseline
alternative_total = transition + years * future
savings = current_total - alternative_total
payback = 12 * transition / (baseline - future) if baseline > future else None
print(round(current_total, 2), round(alternative_total, 2), round(savings, 2))
print(round(payback, 2) if payback is not None else 'No recurring-cost payback')
for year in range(years + 1):
print(year, round(year * baseline - transition - year * future, 2))
Expected totals are 600.0 340.0 260.0, with payback 15.43. The fictional municipality scenario shows the underlying categories and workflow assumptions.
5. Stress the assumptions that change the decision
| Hypothetical scenario | Transition | Future annual | Five-year alternative | Net savings |
|---|---|---|---|---|
| Lower transition and operating cost, both -20% | 72 | 40 | 272 | 328 |
| Expected inputs | 90 | 50 | 340 | 260 |
| Higher transition and operating cost, both +20% | 108 | 60 | 408 | 192 |
| Larger support/retained-license burden | 90 | 80 | 490 | 110 |
| No five-year cost advantage | 90 | 102 | 600 | 0 |
All amounts are COP millions and the baseline remains 120 annually. The last row follows directly from F = B − T/N. It tells the team how much recurring cost the case can tolerate before its five-year advantage disappears. Sensitivity is not a probability distribution or a guarantee that a project remains inside these bounds.
Also model timing. If the annual reduction of 70 starts six months later within a fixed five-year horizon, the lost reduction is 35, before any extra transition work. Only add incremental costs not already counted in coexistence. Delaying a renewal cancellation can change the result more than modest database hosting savings.
6. Separate cash savings, capacity and capability
If analysts spend fewer hours preparing a report but payroll stays the same, report released capacity in hours, not an immediate reduction in cash expenditure. If an avoided renewal really decreases next year's payment, it is a cash saving. If a new API enables additional work, describe that capability separately until its economic effect is measured.
For varying annual costs, calculate each year individually: sum(baseline_year − future_year) − transition. A finance team can additionally discount annual differences using an agreed rate: −T + sum((B_t − F_t)/(1+r)^t). Specify timing and nominal versus real assumptions before using that expression. The simple calculator's totals are undiscounted and should not be labeled net present value.
7. Decide when migration is not justified
A small deployment with low current cost, extensive specialized Esri dependencies and no available operator can have a negative case. Rebuilding a mature field application may outweigh the licenses removed. Retaining a working service, migrating only public publication, or waiting for a renewal can be rational outcomes. The fictional utility example deliberately produces a five-year loss.
A defensible estimate finishes with the same scope on both sides, dated inputs, explicit retained components, an operating owner and the uncertainty that a pilot will resolve. Download the inventory and cost-input templates from the lab, then follow the phased migration plan. GeoSAT can use those inputs to scope an assessment; a fixed percentage is not promised before the dependencies and costs are known.