Works with Oracle exports

Parallel testing an Oracle payroll migration, element by element

Oracle payroll migration testing comes down to one question: does every employee get the same result from each element in the new system? SmartCompaire loads pay data exported from Oracle E-Business Suite or Oracle HCM Cloud and arranged in its pay data template, maps elements to target pay codes and shows each difference by employee and bucket.

Why Oracle payroll migration testing needs an element-level comparison

Moving payroll off Oracle E-Business Suite, onto Oracle HCM Cloud, or to another system means moving elements, classifications, balances and jurisdiction-level tax results into a new structure. Gross-to-net totals can agree while individual earnings, deductions or taxes do not.

A parallel run catches those differences only if each employee’s results are compared code by code, which spreadsheet lookups struggle with at scale.

SmartCompaire turns that comparison into a repeatable project. You load a source extract and a target extract, map employees and pay codes, and rerun the comparison as you fix mappings. Run history tracks those reruns within the project.

How Oracle data gets into SmartCompaire

SmartCompaire does not connect to Oracle directly. There is no live connector, scheduled pull or SFTP drop. You export pay results from Oracle, for example as a payroll register, a BI report or a SQL extract. Then you upload the file, paste the rows or type them in.

There is no Oracle-specific parser, so reshape the export into the pay data template, which you can download from the pay data step. The first non-empty row is read as the header, so remove any title rows above it.

Columns are matched by how their names end, such as <system>-PayCode or <system>-Amount. Delete or rename extra Oracle columns whose names end in a template label: Assignment Number would fill the Number column, and Hourly Rate would fill Rate.

Oracle can be the source, the target, or both, as in an E-Business Suite to Oracle HCM Cloud move. SmartCompaire needs the two pay files in its pay data layout, plus the employee and paycode mappings described below.

Mapping Oracle elements to target pay codes

Setup has four steps, each accepting a file upload, typed entry or pasted rows.

  1. Map employees

    Pair each Oracle employee number with its number in the other system. Each number can be mapped only once in either direction, and duplicates are rejected with the row number. Leading zeros are kept. The step lists people in the pay data who have no mapping yet.

  2. Map elements to pay codes

    Each paycode mapping links a source pay code to a target pay code under a Bucket and Bucket code type. Oracle element classifications, such as earnings, deductions and taxes, are a natural starting point for buckets.

  3. Group elements that consolidate

    When several Oracle elements become one target pay code, map them all to it. SmartCompaire sums them and compares the total, so a consolidation is not a false difference.

  4. Load source and target pay data

    The template has 15 columns, including Check Date, Employee #, Tax Auth. Code, PayCode, Number, Rate and Amount. Only PayCode is required on each row. Rows whose pay code has no mapping yet are counted after the import. They still appear in results, labelled No paycode mapping, until you add the mapping.

  5. Check readiness, then run

    The readiness check shows how many rows will match a mapping, lists up to 25 unmatched pay codes with the reason, and counts unmapped employees. Fix a mapping and the next run re-matches without a new upload.

Preparing Oracle payroll exports

These are the rules SmartCompaire applies to every upload.

  • File types. The upload screens accept .xlsx, .xls and .csv. Only the first worksheet is read, so put the pay data on the first tab.
  • Size. The default upload limit is 100 MB; larger files are refused. Every file upload runs as a background import with progress tracking and a cancel option, and pastes of more than 500 rows do too.
  • Dates. Dates need a four-digit year. 15-JAN-2026 works, but Oracle’s default DD-MON-RR form (15-JAN-26) does not, and an unreadable date rejects the row, so set the export date mask to DD-MON-YYYY or YYYY-MM-DD. Slash dates and Excel serial numbers are also accepted, but ambiguous slash dates are read month-first (MM/DD/YYYY).
  • Amounts. Dollar signs, thousands separators and accounting negatives such as (12.00) are parsed. Amounts are stored as exact decimals.
  • CSV encoding and delimiters. CSV files can be UTF-8 or Windows-1252, separated by commas, semicolons, tabs or pipes, so pipe-delimited SQL extracts can be loaded once their header row matches the template.
  • Headers. Header matching ignores case, spaces and punctuation. If the PayCode column is missing, the import stops at the start and says so. Other template columns are optional, so check that Employee #, Amount and Tax Auth. Code are present before you upload.
  • Bad rows. Rejected rows are reported with their spreadsheet row number and a plain reason, and can be downloaded as a CSV. Excel errors such as #N/A are blanked and named.

Oracle migration pitfalls to plan for

Settle these before the first parallel run.

Period totals, not period by period

A run totals amounts per employee and pay code across all pay data in the project, so several periods are compared as one total. To check each period alone, create one project per period and import the mappings into each, or have an admin replace one project’s pay data each cycle so its run history shows the trend.

Learn more

Run results versus balances

Oracle reports balances across dimensions such as period to date and year to date. SmartCompaire grades only the Amount column. MTD, QTD and YTD columns are stored but not compared, so put the values you want tested in Amount, in a project of their own.

Multiple assignments

Oracle can hold several assignments for one person, and the target may key pay by person or by assignment. Each employee number maps only once in each direction, so pick the identifier both systems share first.

Tax jurisdictions

Tax results often repeat one element for several states or localities. Put the jurisdiction in the Tax Auth. Code column so each matches its own mapping. A row with no tax authority matches by pay code alone only when that code is mapped exactly once; otherwise it is left unmatched, not guessed.

Retroactive and one-off elements

If retroactive adjustments land under their own element names, map them too. A pay code found in only one system still appears as a result row, so a missing retro element is not dropped.

Hours and rates

Hours or units go in the Number column. Number and Rate differences are recorded, but only the Amount difference is checked against thresholds.

Reviewing Oracle comparison results

For each employee and mapping group, a run records the source amount, the target amount and the difference. Thresholds are absolute amounts set per Bucket and Bucket code type, and a row passes when the size of its difference is at or under the threshold.

Status rules then label each row, such as Matched, Within Threshold or Over Threshold. Unpaired rows are labelled No employee mapping or No paycode mapping.

Reviewers can set a status override, add a comment, and link a row to a defect or a known or acceptable difference (KD/AD) record. Analytics break results down by bucket, code type, employee and pay code, and reports come as PDF or Excel.

SmartCompaire finds, grades and records differences. It writes nothing back to Oracle or the target system; corrections are made there and confirmed on the next run.

Frequently asked questions

Does SmartCompaire connect directly to Oracle E-Business Suite or Oracle HCM Cloud?

No. SmartCompaire works from exported files uploaded as .xlsx, .xls or .csv, or from pasted or typed rows. There is no live connector, scheduled pull or SFTP integration.

Can thresholds be set as a percentage of pay?

No. Thresholds are absolute amounts, set per Bucket and Bucket code type. Each project starts with a copy of your organization’s default thresholds, which you can then edit for that project.

Can the Hirra assistant help with an Oracle project?

Hirra, the in-app assistant, can summarize a project’s setup and readiness, list the largest unmatched pay codes and point to the page to fix them. It works only with data already loaded into SmartCompaire and is labelled as in beta, so check figures that matter.

See SmartCompaire on your own payroll data

Bring a source and a target extract from your parallel run; we will walk through the comparison with you.

Request a demo