Data conversion and migration

SOX data conversion controls show that financial balances and records moved into a new system are complete and accurate before cutover. Auditors look for reconciliations, reviewed exceptions and signed approval.

On this page

What SOX data conversion controls must prove before cutover

When a finance system is replaced, the external auditor will ask one question early: how did you prove that the opening balances and historical records in the new system are complete and accurate? Under PCAOB AS 2110, the auditor's risk assessment lists processing inaccurate data and potential loss of data as IT risks to internal control over financial reporting. A conversion is the point where both risks are most likely to occur, because records leave a system that the organization has tested for years and enter one that has not yet produced a single period-end close. Management owns the answer, and the evidence has to exist before the old system is switched off.

The reason this matters goes beyond the migrated balances. Once data is loaded, it becomes the baseline for downstream automated controls, such as three-way matching, interface postings and calculated reserves. AS 2110 notes that when IT initiates, records and processes transactions, electronic records replace paper and the programs hold controls for relevant assertions. If a mapping error inflates a vendor master or truncates a tax code, every later automated control may run correctly on wrong data. Auditors will therefore look for a documented reconciliation of record counts and control totals from source to target, plus a sign-off by the finance owner of each balance before cutover. Confirm with your auditor which balances and populations they expect to see reconciled, since the scope depends on the accounts and reports in your ICFR scope.

Three things usually make this hard. Volume means that a full population reconciliation can be slow, so teams need to agree in advance which fields are compared in full and which are sampled, and how exceptions are logged and cleared. Mapping errors are common when legacy codes do not have a one-to-one equivalent in the new chart of accounts, so the mapping document should be approved by the process owner, not only by the project team. Late changes are the most dangerous: a rule changed in the final trial load can invalidate reconciliations already signed. Set a freeze date for mapping and transformation logic, and require a documented re-run of affected reconciliations for any change after that date. Also ask whether your implementation partner will prepare these reconciliations, while management and the auditor retain ownership and review.

Which conversions and teams fall inside SOX data conversion scope

Not every migration touches financial reporting, and the ones that do differ in how much control work they create. The cards below separate the data sets that carry balances from the decisions and parties that change the testing burden, so scoping can be agreed with finance and the external auditor before the first load runs.

Ledgers and subledgers

General ledger balances, chart of accounts mappings, and subledgers for receivables, payables, fixed assets and inventory are the core of a financial conversion. Management should confirm which balances and period detail roll into the new system, and whether historical transactions or only closing balances are carried forward. Each balance set needs a reconciliation from the source system to the target that finance signs off, because an error here flows directly into reported figures.

Open items and cutoff balances

Open invoices, unapplied cash, accruals, pending journal entries and in-transit payments are often where conversions fail, because they sit between periods and are easy to drop. Confirm the cutoff date, how open items are identified in the source, and whether they are loaded as balances or as transactions that keep their original aging. Auditors commonly ask how these items were matched after go-live.

Master data feeding financial reports

Customer, vendor, employee, bank account, cost center and product master records determine how transactions post and how reports group them. A changed vendor identifier or cost center hierarchy can misstate a report while the balances still tie. Identify which master data elements drive financially significant reports, and include them in the completeness and accuracy checks rather than treating them as reference data.

Interfaces that carry balances

Bank feeds, payroll, billing, procurement and consolidation interfaces that load balances or summarized postings into the new system are part of the conversion scope when they move financial data. Map each interface to the balances it carries, confirm whether it is retired, redirected or rebuilt, and test that totals agree at the boundary. Interfaces that only move operational data may fall outside scope, which is a decision to document.

One-time versus iterative loads

A single cutover load and repeated trial loads create different evidence needs. Iterative loads produce several sets of reconciliations that must show which version was final and that the production load matched the approved trial. Ask whether the plan includes mock conversions, how many, and who decides which run becomes the basis for go-live, since this determines how much evidence the auditor will request.

Third-party extracts and tooling owners

When a vendor, systems integrator or managed service produces source extracts or runs the load scripts, management still owns the completeness and accuracy conclusion. Confirm who generates each extract, who reviews its record counts, and who maintains the migration tool and its change history. Document these roles in the conversion plan so the auditor can tie each reconciliation to an accountable owner.

How reconciliation of record counts and balances works in practice

The first layer compares how many records left the source system with how many arrived in the target. It is the simplest test, and it catches dropped rows, duplicated loads and extracts that were cut off partway through. The team extracts counts by object (customers, open invoices, journal headers, fixed assets and so on) from the legacy system at a fixed point in time, then runs the same counts in the target after each load. Counts should be taken from the systems themselves, not from the load tool's summary, so that a single reporting error cannot hide a gap.

  • Source and target counts by object: Each business object is counted at extract and at load, with the same filters applied to both sides.
  • Filter and status parity: Closed, voided or archived records are either migrated or excluded on purpose, and the exclusion rule is written down.
  • Repeat runs: Counts are rechecked after every trial load and the final cutover load, since a late refresh can change the population.
  • Independent extraction: The person who runs the count is not the person who built the load job where practical.

Check that every object in the migration scope has a count pair, that each difference is explained, and that the reconciliation is retained as evidence with the run date and version of the load.

How an auditor tests data conversion controls

This table walks through the test steps an external auditor typically performs on migration controls, the evidence each step requests and the findings that most often appear. Read it as a checklist for what your conversion file should prove before cutover, since each row maps to a question the auditor will ask.

Test stepWhat the auditor doesEvidence requestedCommon finding
Inquiry of the migration leadAsks who designed the conversion, how source-to-target mapping was approved and which reconciliations were required before cutoverConversion plan, named owners, mapping specifications and the cutover runbookOwner cannot explain how reconciliation thresholds were set or who may override them
Observation of conversion runsWatches or reviews a trial load and the final load to confirm the stated steps were followed in orderLoad logs, job run records and timestamps for trial and production loadsFinal load ran with steps that differ from the approved runbook, with no change record
Inspection of reconciliation workpapersReads record count and control total reconciliations between source extract, staging and target tablesSigned reconciliation workpapers showing source counts, target counts and any explained differencesUnreconciled differences carried forward into production without a documented investigation
Re-performance of balance tie-outsSelects a sample of account balances and recalculates the tie-out from source to migrated ledgerTrial balance from the legacy system, trial balance from the new system and the tie-out calculationTie-out cannot be reproduced from the retained extracts, or the sample reveals unexplained variances
Inspection of cutover approvalChecks that the go-live decision was made after reconciliations passed and before users began postingSigned cutover approval with date and time, and the reconciliation results it relied onSign-off dated after cutover, so the approval did not gate the migration
Testing of exception handlingReviews rejected records, error queues and how each was corrected and re-loadedException log, correction approvals and evidence that corrected records were re-reconciledRejected records were manually edited with no approval or re-reconciliation
Evaluation of access during conversionConfirms that only authorized personnel could run loads or edit migrated dataAccess list for the migration environment and privileged activity logs for the conversion windowShared or generic accounts performed loads with no review of their activity

Sequence for building conversion controls before cutover

This sequence turns data conversion from an unplannedload into a documented, testable control. Each step produces evidence that management can show the external auditor, from the agreed scope through to a filed final reconciliation.

  1. Define conversion scope and key balances

    Finance and the system owner list which data sets move to the new system, such as open items, general ledger balances, customer and vendor master records, and historical transactions still needed for reporting. They also name the key balances that must agree after conversion, such as trial balance totals and subledger control totals. The step closes with a signed scope document that states what is in and out, and who owns each data set. Auditors look for this document first because it defines what the reconciliations must cover.

  2. Document source-to-target mapping and transformation rules

    The conversion team records where each source field comes from, where it lands in the target system, and every rule that changes it, such as code translations, currency handling, date formats and default values. Business owners review the mapping for financial fields, and IT confirms the rules match the build. The output is a versioned mapping specification with named approvers. Changes after approval go through the same review, so the final load can be traced back to an agreed design.

  3. Agree reconciliation criteria and tolerances

    Before any trial load, finance and IT agree which checks will prove completeness and accuracy, such as record counts by object, sums of monetary amounts, balances by account and period, and sample-based field comparisons. For each check they set an acceptable tolerance and state who may approve a difference. The output is a reconciliation plan approved before testing starts, so the team cannot later choose checks that happen to pass. Confirm with the external auditor how much detail they expect in this plan.

  4. Run trial conversions with reconciliations

    The team runs at least one full trial conversion in a non-production environment, then performs each agreed reconciliation against the source extract and the loaded target. Load logs, rejected-record reports and reconciliation worksheets are saved with the run identifier and date. Where the plan calls for it, the team repeats the trial after fixes so the final results come from a clean run. The output is a set of dated trial reconciliation packs that show each check, its result and who reviewed it.

  5. Resolve and log exceptions

    Every failed check, rejected record and unexplained difference is logged with its cause, the person responsible, the fix applied and the rerun that confirmed it. Differences outside tolerance go to finance for a decision, and any accepted difference is approved by the named owner in writing. The output is an exception log that ties each open item to a closed item or an approved exception. Auditors often sample from this log to test whether conversion issues were resolved rather than dropped.

  6. Obtain pre-cutover sign-off from finance and IT

    Before the production load, the finance process owner and the IT system owner each sign the final trial reconciliation and the open exception list. Their sign-off confirms the mapping version, the trial run used and the reconciliation results that justify the production run. The sign-off is held with the change or go-live approval for the system. The output is a dated, signed pre-cutover approval that names the conversion run to be executed in production.

  7. Archive the final reconciliation

    After the production load, the team runs the approved reconciliations against live data and compares the results to the signed trial baseline. Any difference is handled through the exception process before the business relies on the converted data. The final reconciliation, load logs, mapping version and approvals are stored in a controlled repository with access limited to authorized reviewers. The output is an archived evidence package that lets an auditor trace the migrated balances back to the approved design.

Evidence that passes a data conversion audit

An auditor testing a data conversion looks for proof that the migrated balances are complete and accurate, and that someone approved the cutover with that proof in hand. The cards below cover the artifacts that carry that proof and the habits that keep them current between audits.

Approved mapping specification

The mapping specification shows how each source field, code and balance type becomes a target field in the new system, and who approved it before build. Auditors use it to check that financially significant fields, such as account codes, currency and period identifiers, were carried over with the meaning they had in the legacy system. Check that every version is dated, signed by the business owner and linked to the trial runs that used it.

Trial conversion reconciliations

Each trial load should produce reconciliations of record counts, control totals and account balances between the source extract and the target system. A difference that is not explained is the item an auditor will pick first, so the reconciliation should show every variance and its disposition. Confirm that the trial results are retained with the run date, the extract used and the person who performed the comparison.

Exception log with resolution

The exception log records every rejected or suspended record during trial and final loads, with the reason, the correction made and the approver of that correction. Auditors compare it against the reconciliations to confirm that each exception was resolved rather than dropped. Ask for the log to show who could alter source data during correction and whether those changes were reviewed.

Pre-cutover sign-off

Pre-cutover sign-off is the formal decision that the final conversion results are acceptable and the new system may become the book of record. It should name the approvers from finance and IT, reference the final reconciliations and list any open exceptions with their accepted risk. Keep the signed record separate from project status reports so an auditor can find it without reconstructing the decision.

Backup and restore points before load

Before the final load, take a backup of the legacy data and the target environment so that the conversion can be reversed if reconciliation fails. Verify that the backup can be restored, not only that the job completed, because an unrestorable backup gives no fallback. Tools such as Bareos and restic can produce these points, and their verification features can provide evidence that the stored data was intact.

Versioned documentation and retained extracts

Between audits, keep the mapping specification, reconciliations and sign-offs under version control with a record of who changed them and when. Retain the source extracts used for each trial and the final load so an auditor can rerun a reconciliation months later. Wiki platforms such as XWiki keep page history that can show these changes, but the organization must still decide which versions are the approved record.

Using open-source tools to keep conversion evidence

Auditors testing a conversion want to see which version of the mapping specification was approved, what changed between drafts and who made each change. XWiki is a self-hosted wiki that keeps every change to a page under version control, recording what changed, when and by whom. Users can compare any two versions and roll back to an earlier one, which gives the mapping specification and its sign-off pages a traceable history.

  • Specification versions: Keep the field-level mapping, transformation rules and load order on pages whose history shows each revision.
  • Change attribution: Each edit records the author and timestamp, so a late change to a balance mapping can be traced to a named person.
  • Comparison: Compare the approved version with the version used for the trial load to show what changed in between.
  • Rollback limits: Rolling back restores old content, so the organization should record the reason in a new revision rather than erase the trail.

Confirm with your team that the approved version number or revision ID appears in the reconciliation records, so the auditor can match each load to the exact specification it used.

What data conversion controls cost to meet

This table breaks down the cost components of meeting data conversion controls under SOX, marking which are one-time and which recur with each later conversion or upgrade. Read it to see who is paid for each component and what to ask for in a quote. No public figures are given here, so the quote and your own environment should set the amounts.

Cost componentWho is paid or who does the workOne-time or recurringWhat drives it up or down
Reconciliation tooling or scriptsInternal engineers or an implementation partner who builds record count and balance comparison scriptsOne-time build, then recurring maintenance for each new mappingNumber of source tables, currency and ledger variations, and whether scripts are reused across conversions
Trial conversionsEngineering to run test loads, finance to review results against source balancesRecurring for each trial run before cutoverNumber of trial cycles, data volume, and how many defects the first trials surface
Finance review of reconciliationsAccounting staff who sign off balances, totals and exception logsRecurring at each conversion eventNumber of ledgers, subledgers and open items carried into the new system
Cutover approval evidenceProject owners and control owners who document go or no-go decisionsOne-time process design, recurring for each cutoverHow formal the sign-off chain is and how many approvers the policy requires
Evidence upkeepControl owners who retain scripts, logs, reconciliation workpapers and approvals for the audit periodRecurring through each fiscal yearRetention rules, storage location, and whether evidence is indexed for auditor requests
External review of the approachIndependent consultant or internal audit reviewing the conversion design before executionUsually one-time per major conversion, optional recurringComplexity of the mapping, prior audit findings, and whether the review is fixed-scope or open-ended
Auditor sampling effortExternal auditor testing samples of conversion reconciliations and approvals; the organization pays for the audit and supports requestsRecurring each audit cycleNumber of conversions in the period, quality of pre-built evidence, and how quickly control owners respond
Rework after failed reconciliationEngineers and finance staff who correct mappings and rerun conversionsUnplanned, recurs when reconciliations failQuality of source data cleansing, clarity of mapping rules, and number of trial cycles completed early

Who owns the conversion control and who can help

Management owns the conversion control. The company must decide that migrated financial data is complete and accurate, and it must be able to show who made that decision. In practice the control owner is usually a finance or accounting leader who accepts the reconciliations, supported by a data owner for each source and target dataset who understands what the figures mean. IT owns the migration process and the cutover schedule, but IT alone should not approve that balances match.

  • Control owner: A named person in finance or accounting who signs off that record counts and control totals agree before cutover.
  • Data owners: Business leads for customers, ledgers, inventory or payables who confirm that the mapped fields carry the right meaning.
  • IT migration lead: Runs the extraction, transformation and load steps and keeps the job logs and run history.
  • Approvers for go-live: Named individuals who authorize cutover after reviewing the reconciliation results, with their approval recorded before the move.
  • Exception owner: Someone who decides how unreconciled differences are resolved, documented and carried into the final sign-off.

Confirm that each role has a written owner, a backup and a dated sign-off record before the first trial load runs.

Where data conversion controls usually fail

Most data conversion failures are not technical. They come from missing tolerances, weak separation between loading and checking, and sign-offs that arrive after the data is already live. Each card below names one gap, what it looks like in a SOX assessment, and how to close it before cutover.

No documented tolerance

A reconciliation only means something if the team agrees in advance how much difference is acceptable. Without a written tolerance for record counts and balances, a variance is either ignored or argued after the fact. Document the threshold per ledger, per population and per currency, approve it before the first test load, and require that any exception above it stops cutover. Ask the auditor which thresholds they expect to see.

Reconciled by the loader

When the person who ran the load also compares the source and target totals, nobody independent has looked at the result. Assign reconciliation to someone outside the migration build, such as a finance control owner or internal audit, and keep the preparer and reviewer roles separate in the migration tracker. Retain the reconciliation workpapers with the names and dates of both people.

Sign-off dated after cutover

Approval that is signed once the new system is already processing transactions shows that the control did not gate go-live. Make the reconciliation result and the cutover approval separate, dated items, with the approval completed before the production switch. Check that the timestamps in the ticketing or change system match the actual cutover window, because auditors compare them directly.

Unlogged manual corrections

Teams often fix rejected or mismatched records by hand in the target database. If those edits are not logged, the converted balances cannot be traced to their source. Require that every manual correction carries a ticket, the before and after values, the approver and the reason, and that corrections are reconciled again after they are made. Retain the change log as part of the conversion evidence.

Missing restore point

If the legacy data is overwritten or purged before the new system is accepted, a failed conversion cannot be rolled back and the old balances may be unrecoverable. Take a verified, dated backup of the source and of the pre-load target state, and confirm that it can be restored before the load begins. Record the backup identifier and the restore test result in the conversion file so the rollback path is documented.

Questions buyers ask about SOX data conversion controls

How much effort does it take to implement SOX data conversion controls?

Effort depends mostly on how many financially significant data sets move, how many source systems feed them, and how clean the legacy data is. Each conversion needs a defined population, record count and balance reconciliations, exception handling for rejected records, and a documented sign-off. Management owns those controls, so the effort is shared between finance owners who confirm balances and IT staff who run extracts, loads and reconciliations. SEC guidance says management only needs to evaluate the IT general controls that keep other financial reporting controls working properly, so the first step is scoping which conversions touch reported balances. Ask any partner to size the effort from a written list of data sets, sources and reconciliation points rather than from a general estimate.

How long should a team plan before cutover for conversion controls?

There is no fixed duration in the researched facts, so the honest answer is that the schedule follows the conversion plan. Teams usually need time to define reconciliation rules, run at least one trial load, investigate differences, and repeat the load until the reconciled results are stable. Each trial produces evidence that auditors may inspect, so every run should be logged with its date, the data set, the reconciliation results and the people who reviewed them. Ask a partner to show how the trial cycles, approvals and final cutover sign-off map onto your go-live calendar, and confirm the timeline in writing before work starts.

What does the work need from finance and IT teams?

The work needs two kinds of input that cannot be outsourced. Finance must define what correct means for each balance, confirm the control totals and approve reconciliation differences, and sign off that the migrated balances are accurate before cutover. IT must provide source extracts, load logs, interface mappings and access records for the people running the migration. Both teams should agree on who reviews each reconciliation and who can approve exceptions. Under PCAOB AS 2110, auditors look for processing of inaccurate data and loss of data as IT risks, so the reviewers must be able to show they examined the results, not just received them.

Can our own team run SOX data conversion controls in-house?

Yes, many organizations run these controls in-house, provided the people involved understand both the data and the control design. The question to answer is capacity and independence. The team that builds the load should not be the only team that approves its reconciliation, and the reviewers need enough accounting and system knowledge to challenge differences. Ask whether the internal team has done a reconciled migration before, whether it can document each run, and whether an independent reviewer is available. An outside implementation partner can prepare systems, scripts and evidence templates, but management keeps ownership of the controls and approvals.

What drives the cost of conversion controls?

The main cost drivers are the number of financial data sets, the number of source systems, the volume and quality of legacy data, and how many trial loads the reconciliations require. Costs split into one-time work, such as mapping, scripting, reconciliation design and testing, and smaller recurring work if the same process is reused for later conversions or upgrades. Cost also rises when reconciliations are performed manually, when evidence is scattered across email and spreadsheets, or when the sign-off trail is incomplete. When requesting a quote, ask for line items by data set, the reconciliation method, who performs each step, what evidence is retained, and what is excluded, such as external auditor fees or licenses for the target platform.

How is a partner's work kept separate from the auditor's testing?

A partner prepares systems, reconciliation procedures and evidence, while management owns the controls and the external auditor independently tests them. DeployOpen does not issue audit reports, attestations or certifications, and auditors perform their own testing under PCAOB AS 2201, which describes tests of operating effectiveness through inquiry, observation, inspection of documentation and re-performance. To keep the roles clear, the partner should deliver a written scope, documented procedures, and evidence packages that management reviews and signs. Management should decide what the auditor receives, and the auditor should be told in advance which conversion activities are in scope. Confirm these boundaries with your external auditor before the engagement starts.

What evidence should a conversion reconciliation keep for the auditor?

Keep evidence that lets someone re-perform the reconciliation and see who approved it. For each conversion, retain the source extract with its record count and control totals, the load log from the target system, the reconciliation output comparing counts and balances, the list of exceptions with their explanations, and the signed cutover approval. Version the reconciliation scripts and store them with the run records. A documentation platform with version history, such as XWiki, can record what changed, when and by whom in procedure pages, which helps show that approved steps were followed.

How DeployOpen prepares data conversion evidence

DeployOpen plans, implements and documents self-hosted open-source platforms inside your own infrastructure, including the conversion work that moves financial data into new systems. We prepare the reconciliations, test records and sign-off trail that management and the external auditor can inspect, while your organization keeps ownership of the controls and the conversion decisions.

How we scope

  • Agree in writing which financial data sets, source systems and target systems the conversion covers.
  • Define reconciliation points such as record counts, control totals and key balances for each migrated data set.
  • Name the roles that approve mapping rules, reconciliation results and the cutover decision before work starts.

How we build

  • Document field-level mapping and transformation rules so each conversion step can be traced and repeated.
  • Run trial conversions and compare counts and balances against source extracts, logging every variance and its resolution.
  • Retain conversion scripts, run logs and reconciliation workpapers in version-controlled, access-restricted repositories.

How we hand over

  • Deliver a conversion evidence pack with reconciliations, exception logs, approvals and rollback plan for your auditors.
  • Record the cutover sign-off sequence and confirm that approvers met the criteria set during scoping.
  • Walk your finance, IT and internal audit teams through the evidence so they can explain it to the external auditor.

How we support

  • Ongoing support, upgrades and continuous testing are available as retainers after go-live.
  • Confirm with your auditor which conversion evidence they expect before the engagement is scoped, since requirements vary by company.
  • Ask for a written scope and quote before work begins, since DeployOpen does not publish a price list.

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.