Markus Ahling
Co-Founder & COO, The Lobbi
There is a specific reason every integration project exceeds its estimate by 40 - 80%, and it is the same reason every time. The estimate is based on what the documentation says the API does. The cost is determined by what the API actually does. Those are never the same thing.
The three multipliers
Every system integration encounters three cost multipliers that are invisible during scoping and unavoidable during delivery.
Multiplier 1: Documentation debt.
API documentation describes the intended behavior of a system, not its actual behavior. Rate limits are documented as "generous" and turn out to be 60 requests per minute with a 15-minute coolback. Authentication tokens expire after an undocumented period. Error responses return HTML instead of JSON when the backend service is degraded. Pagination breaks on the last page. Date fields use different formats in different endpoints of the same API.
None of these are bugs. They are the gap between documentation and production reality, and they are universal. Every carrier portal, every AMS API, every loan origination system has them. The only way to discover them is to build against the real API with real data, at which point the estimate has already been set.
Multiplier 2: Data normalization.
System A stores names as "First Last." System B stores them as "Last, First." System C stores a single "FullName" field. A human glancing at all three knows these are the same person. An integration service needs explicit transformation logic for every field, in every direction, for every system pair.
Names are the easy case. Addresses are harder - abbreviations, suite numbers, ZIP+4 vs ZIP-5, international formats. Policy numbers, account identifiers, and reference codes are the hardest - each system has its own format, its own validation rules, and its own approach to uniqueness.
The normalization work is not conceptually difficult. It is tedious, high-volume, and essential. Every unmapped field is a data quality problem waiting to surface in production. The normalization layer typically represents 30 - 40% of total integration effort and is almost never included in initial estimates.
Multiplier 3: Edge case multiplication.
A single system has N edge cases. Two connected systems have N × M edge cases, because every edge case in System A can combine with every edge case in System B. A carrier API that sometimes returns null for a required field, connected to an AMS that rejects records with null in that field, produces a failure mode that neither system exhibits independently.
The combinatorial explosion is why integration testing takes longer than unit testing for either system alone. It is also why the "last 20%" of integration work takes 50% of the total timeline - the happy path works in week two, and the remaining weeks are spent discovering and handling the combinations that only appear in production data volumes.
The pattern library advantage
The first integration between two types of systems is always expensive. The second integration between similar systems should be significantly cheaper - but only if the first integration produced reusable patterns.
Most integration projects are built as one-off point-to-point connections. System A talks directly to System B through custom glue code. When System C needs to connect, the glue code is rewritten from scratch because it was tightly coupled to System B's specific API shape.
The alternative is a normalization layer - an internal canonical data model that sits between all external systems. Each external system gets an adapter that translates between its specific API and the canonical model. New integrations only require a new adapter, not a new end-to-end pipeline.
What this means for budgeting
The honest way to budget an integration project: take the engineering estimate and apply a 1.5x multiplier for the first integration with any new external system. Budget a 1.2x multiplier for subsequent integrations against similar systems if a normalization layer exists.
The diagnostic engagement that precedes the build should produce an integration complexity assessment for each system: API quality score (how complete and accurate is the documentation), data quality score (how consistent is the data format), and edge case surface area (how many exception paths does the integration need to handle). These scores determine the multiplier.
Teams that skip the diagnostic and go straight to a build estimate based on API documentation will discover the integration tax during delivery - when the budget is already committed and the timeline is already set.
Carrier API reality
In insurance and financial services specifically, carrier APIs deserve their own category. Most carrier portals were designed for human interaction, not system integration. Their APIs, when they exist, are afterthoughts - SOAP services with inconsistent schemas, REST endpoints with undocumented rate limits, or flat file exchanges over SFTP with no error reporting.
The practical approach: build direct API integrations with the top 3 - 5 carriers by submission volume. They represent 70 - 80% of transactions and their APIs, while imperfect, are at least maintained. For the long tail, use a hybrid model - automated where possible, manual-with-templates where the API does not support it.
An engineering team that has built carrier integrations before has a pattern library for the common problems: credential rotation, session management, retry with exponential backoff, schema versioning, and reconciliation. A team building its first carrier integration will discover each of these problems independently, at full cost.
Frequently asked
Why do system integrations always take longer than estimated?
How can you reduce integration costs?
What is a data normalization layer?
Topic clusters
Need to connect systems?
We have built integration layers across insurance, mortgage, and financial services.