Contracts & Procurement
Data portability and exit terms to negotiate before you sign
How to negotiate export formats, schema delivery, API access, and post-termination data rights before signing a SaaS contract.
Every software contract has an ending: a planned replacement, an implementation that never reached production, an acquisition that changes the product out from under the agency. How that ending goes is decided at the beginning, in language written while the agency still has leverage and the vendor still wants the signature.
Data portability and exit terms cost the vendor close to nothing at signature and become nearly impossible to obtain afterward. Before award, an export obligation is an abstract commitment a vendor will usually trade for a closed deal. After go-live, when the agency's records, workflows, and integrations all live inside the system, the same language is a concession the vendor has no commercial reason to grant. Negotiate it while the price is zero.
Define what "agency data" actually covers
Agencies picture their data as the records visible on screen. A production system holds more than that, and a narrow definition lets a vendor deliver a technically compliant export that is useless for migration.
- Primary records. Cases, permits, assets, work orders, accounts, transactions.
- Configuration and reference data. Code tables, fee schedules, workflow and routing definitions, form layouts, user roles and permission assignments.
- Attachments and binary content. Scanned documents, photographs, signed PDFs, audio, video, and the metadata tying each file to its record.
- Audit and history. Who changed what, when, and the prior values. This often carries the longest retention obligation and is the category most frequently left out of a standard export.
Write the definition into the contract by category. A clause promising to return "customer data" invites the narrowest reading the vendor can defend.
Specify export format, not just export delivery
A commitment to provide the data is not a commitment to provide usable data. Specify:
- Open, non-proprietary formats for structured data (delimited text, JSON, or XML), and original file formats with original filenames for attachments.
- Preserved referential integrity, including the keys that join attachments, audit rows, and child records to their parents.
- Stated conventions for character encoding and for date and time values, including time zone.
- A full export on request at least annually at no additional charge, an export at termination, and the right to request one during a dispute.
- A delivery window measured in days and a delivery method the agency can actually receive.
Then exercise the right. Run a test export during acceptance testing, before final payment, and again on a routine schedule. A portability clause nobody has used is a clause nobody has verified.
Require the schema and data dictionary
An export without documentation is a pile of files someone will reverse engineer on a deadline. Require the current schema or entity relationship documentation and a data dictionary covering field names, data types, lengths, permitted values, and the meaning of code table entries, refreshed when the structure materially changes and delivered with every export.
Vendors sometimes call schema documentation proprietary. That justifies a confidentiality restriction on its use, not a refusal to deliver it.
Keep API access during the term, not only at the end
Migration is far easier for an agency that has been reading its own data all along. Ask for:
- Documented read access to agency data through an API, a reporting database, or a read replica.
- That access included in the subscription price rather than sold as a metered add-on.
- Rate limits and quotas stated in writing, with notice before they change, and a defined deprecation period for API versions.
- No term prohibiting bulk extraction of the agency's own data or barring the use of a third party to perform it.
Transition assistance and a post-termination window
Exit is a project, not a file transfer. Fund it in advance.
- Transition assistance hours. A named number of hours included at no charge, a fixed hourly rate for additional hours, and access to staff who know the data model, not only a support queue.
- Continued access at a fixed rate. A stated period of continued production or read-only access after termination or expiration, priced at a rate agreed at signature. Make it apply regardless of why the contract ended, including non-appropriation, which public contracts commonly reserve.
- No hostage clause. Export and transition obligations should not be conditioned on payment of amounts the agency disputes in good faith.
- Certified deletion. After the window closes, written certification that agency data has been deleted from production and from backups on the vendor's normal cycle, consistent with the agency's retention schedule and any litigation hold.
Source code escrow is often offered as the answer here. It rarely is: escrow releases code, not a running environment, not the hosting configuration, and not the data. A routine export the agency holds itself is more useful.
What to ask and how to start
Ask during evaluation, while the answers still influence award:
- Show us a sample full export from a comparable deployment, with content redacted.
- What is not included in a full export?
- Which features for retrieving or viewing our data stop working when the subscription ends?
- Describe a customer that left. What did they receive, and how long did it take?
Then place the answers where they bind. Put portability, transition, and post-termination terms in an exhibit that expressly survives termination. Make a successful test export an acceptance criterion tied to a payment milestone. Confirm the order-of-precedence clause puts negotiated terms above online terms the vendor can revise on its own. Have counsel review the final language, and check retention and public records obligations against your state's requirements, which vary and change.
HQT builds, integrates, and migrates systems for United States state and local government, work in which export, schema, and transition terms determine how much of the record survives a move.
Frequently asked questions
What should a data portability clause include in a government software contract?
At minimum it should define agency data broadly enough to cover primary records, configuration and reference tables, attachments in their original formats, and audit history. It should name the export formats, require preserved keys so related records can be rejoined, and set a delivery window and delivery method. It should also guarantee exports during the term at no extra charge, not only at termination.
Can a vendor withhold our data if there is a payment dispute?
That depends entirely on what the contract says, which is why the language matters. Agencies commonly negotiate a provision stating that export and transition obligations are not conditioned on payment of amounts the agency disputes in good faith, while leaving undisputed amounts payable as normal. Without that language, a vendor may take the position that its obligations are suspended. Have counsel confirm how your jurisdiction treats the issue.
Is source code escrow enough to protect us if a vendor fails?
Usually not. Escrow releases source code, but it does not deliver a running environment, the hosting configuration, the third-party components, or the agency's data. For a hosted subscription service, a routine full export the agency holds itself, plus documented schema, does more practical good than a code deposit the agency has no realistic way to operate.
How often should we test our data export?
Test it before you are dependent on it. A good practice is to require a successful test export as part of acceptance testing, tied to a payment milestone, and then repeat it on a regular schedule such as annually. Each test should confirm that attachments, audit history, and code table meanings came through, not just that files arrived.
What is a reasonable post-termination data access period?
There is no universal standard, and the right length depends on how long a replacement implementation and data validation will realistically take for your system. The important points are that the period is stated in the contract, that the rate is fixed at signature rather than negotiated later, and that it applies no matter why the contract ended, including non-appropriation. Pair it with a certified deletion obligation once the window closes.