Skip to content
GEOSAT
← Back to blog
Open GIS
Open GIS2026-07-16GEOSAT8 min read

What an ArcGIS to QGIS and PostGIS migration costs in Colombia

Calculate ArcGIS migration TCO with retained licenses, labor, overlap, annual cash flow and sensitivity, using reproducible COP examples.

Editorial review: 2026-09-23

ArcGISQGISPostGISOpen GIS

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 questionBaseline evidenceAlternative evidence
Desktop analysis and layoutsTasks, extensions, output examplesSame task performed in QGIS; adaptations measured
Shared editingRules, relationships, conflicts, audit needsDatabase/application design and conflict test
PublicationServices, consumer applications, trafficCompatible endpoints, refreshed applications and load test
Field operationsDevices, offline forms, attachments, syncEquivalent field exercise and support estimate
Identity and permissionsRoles, groups, access restrictionsTested controls across API, database, cache and app
ContinuityActual support hours and restoration timeNamed 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 categoryIncludeCommon omission
Licenses and subscriptionsDesktop, extensions, server, portal, field and retained productsMinimum commitments that remain after seats decrease
InfrastructureCompute, database, disk, backups, egress and recovery capacityStorage growth, duplicated environments and restoration storage
External operationsSupport scope, incident coverage, maintenance and upgradesAssuming a development supplier also provides 24-hour operations
Internal laborAdministrator, GIS analyst, help desk and security hoursTreating salaried work as having no opportunity cost
Metered servicesGeocoding, routing, imagery or hosted processing used by the workflowAssuming open software includes free third-party data/services
Exit and handoverExport formats, configuration ownership and operator transitionA 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:

Code example
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 periodCumulative current costCumulative alternative costCumulative savings
Transition, before year 1090-90
Year 1120140-20
Year 224019050
Year 3360240120
Year 4480290190
Year 5600340260

This Python example reproduces the figures without a spreadsheet library:

Code example
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 scenarioTransitionFuture annualFive-year alternativeNet savings
Lower transition and operating cost, both -20%7240272328
Expected inputs9050340260
Higher transition and operating cost, both +20%10860408192
Larger support/retained-license burden9080490110
No five-year cost advantage901026000

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.

Related articles