SAP to Workday

Parallel testing an SAP to Workday payroll migration

An SAP to Workday payroll migration changes how every earning, deduction and tax is coded. You load payroll exports from both systems (there is no live connection), map SAP wage types to Workday pay components, and SmartCompaire compares each employee’s results and shows where the parallel run disagrees.

What changes when payroll moves from SAP to Workday

SAP HCM payroll (on ECC or a later release) stores results as wage types: primary wage types for earnings and deductions, plus technical wage types that SAP builds during the run. Workday stores the same money as pay components. The two catalogs rarely line up one to one.

One SAP wage type can become several Workday pay components, and several wage types often collapse into one.

Taxes add a second dimension. In US payroll, SAP holds a tax wage type such as /401 once per tax authority, so the same code appears for the federal authority and for each state or locality.

Workday ties each tax pay component to a tax authority too, but with its own codes. A good comparison has to match on both the code and the authority.

Then there are SAP’s cumulation and technical wage types in the /1xx to /5xx range, such as /101 total gross, /550 statutory net and /560 amount paid. They are totals of other wage types. Treat them carelessly and the same money is counted twice.

Wage type and tax differences to plan for

Wage types vs pay components

Expect one-to-many and many-to-one relationships. SmartCompaire groups mappings that share a source or target code, so two SAP wage types mapped to one Workday pay component are summed and compared with it as a total.

Tax authorities

Each pay row can carry a tax authority code on each side. A mapping key joins tax authority and pay code, so /401 under the federal authority and /401 under a state map to different Workday tax components.

Cumulations and totals

Decide up front whether you compare detail wage types, totals such as /101 and /560, or both. Mappings that share a Workday line are summed whatever their bucket, so if you load both, map each total to its own Workday line.

Retro and for-periods

SAP retroactive accounting can put results for earlier for-periods into the current in-period. Workday may present the same adjustment differently. Agree which periods each extract includes before you load it.

Employee numbers

SAP personnel numbers and Workday worker IDs often differ. An employee mapping pairs them one to one. Leading zeros are kept when the ID is stored as text (CSV, or Excel cells formatted as Text), so 00012345 stays 00012345. Format ID columns as text in both extracts and in the employee-mapping file.

Sign conventions

One extract may report deductions and taxes as negative amounts while the other reports them as positive. Align signs before loading, or every one of those rows will show a difference.

How wage type mapping works in SmartCompaire

A project holds one comparison. Set up four things, check readiness, then run.

  1. Create a payroll project

    Record the cycle name, country, source system (SAP) and target system (Workday).

  2. Map employees

    Pair each SAP personnel number with its Workday worker ID. Each number can be mapped only once in either direction, and duplicates are rejected with their row number.

  3. Map wage types to pay components

    Each mapping needs a bucket (for example Earnings, Deductions, Taxes or Net Pay), a bucket code type, the SAP wage type and the Workday pay component. Tax authority codes and descriptions are optional. A mapping with a blank tax authority matches its pay code under any authority.

    Learn more
  4. Load source and target pay data

    Upload the SAP and Workday extracts in the same 15-column layout, type rows in, or paste them from a spreadsheet. Rows without a paycode mapping are counted and show as No paycode mapping until you add one. A row without an Employee # is left out of the run.

  5. Check readiness, then run

    The readiness check shows how many rows on each side will match a mapping, lists up to 25 unmatched pay codes with the reason, and counts employees without a mapping. It uses the same rules as the run.

  6. Review and record differences

    Each result row shows the SAP amount, the Workday amount and the difference, graded against your threshold for that bucket and code type. Rows whose bucket and code type have no threshold are shown but not graded, so set a threshold for every pair you use. Link rows to defects or to known and acceptable differences (KD/AD), and add comments.

    Learn more

What to export from SAP and from Workday

SmartCompaire has no live connection to SAP or Workday. You export payroll results from each system and load the files into the same 15-column template.

  • Template columns: Payroll Area, Payroll In-Period, Payroll For-Period, Check Date, Employee #, Tax Auth. Code, Tax Auth. Code Text, PayCode, PayCode Text, Number, Rate, Amount, MTD Amount, QTD Amount and YTD Amount. Each row needs a PayCode, and an Employee # to be compared.
  • From SAP: payroll results per employee and wage type for the parallel period, for example from the Wage Type Reporter (H99CWTR0) or your own query on the results table. Include the tax authority for tax wage types, and the in-period and for-period so retro rows can be identified. A run sums all periods, so leave retro rows out, or load them into a separate project, if you don’t want them in the totals.
  • From Workday: a payroll results report with one row per worker, pay component and tax authority for the same pay period and the same population.
  • File formats: Excel (.xlsx) or CSV, first worksheet only, up to 100 MB by default. Save .xls workbooks as .xlsx before loading. CSV files can be UTF-8 or Windows-1252, separated by commas, semicolons, tabs or pipes.
  • Large extracts: files over 2 MB go to a background import with progress tracking. Rejected rows are reported with their spreadsheet row number and a plain reason.

Common SAP to Workday parallel testing pitfalls

  • Counting totals twice. If /101 or /560 maps to the same Workday line as the wage types it sums, the run adds them together. Map totals to their own Workday line (and give them their own bucket so bucket totals in analytics are not inflated), or leave them out.
  • Missing tax authorities. A row with no tax authority matches on pay code alone only when that code is mapped once. If it is mapped under several authorities, the row is left unmatched rather than guessed. The readiness check counts these rows.
  • Dotted or ambiguous dates. Accepted date formats include YYYY-MM-DD, MM/DD/YYYY, DD/MM/YYYY and DD-Mon-YYYY. SAP’s dotted DD.MM.YYYY is not one of them, and a slash date that could be either is read month first. Use YYYY-MM-DD to be safe.
  • Mixing periods in one project. A run adds up all pay data in the project per employee and pay code. It does not compare period by period, so keep one parallel cycle per project.
  • Expecting YTD to be compared. MTD, QTD and YTD columns are imported and stored but not compared. If you need to check converted year-to-date balances, load them as the Amount in a separate project.
  • Hours and rates. Differences in Number and Rate are recorded, but only the Amount difference is graded against thresholds. Thresholds are absolute amounts per bucket and code type, not percentages.
  • Fixing mappings mid-test. You do not need to reload data. Each run re-matches pay rows against the current mappings.

About the product names

SAP and Workday are trademarks of their respective owners. SmartCompaire is not affiliated with or endorsed by SAP or Workday.

Frequently asked questions

Does SmartCompaire connect directly to SAP or Workday?

No. There is no live connection, scheduled pull or API to either system. You export payroll results from SAP and from Workday as spreadsheets or CSV files and load them into a project, or type or paste rows directly.

Can several SAP wage types map to one Workday pay component?

Yes. Mappings that share a source or target code are grouped. Two SAP wage types mapped to one Workday pay component are summed and compared with that pay component as a total.

How are SAP tax authorities handled?

Each pay row can carry a tax authority code, and each mapping can name a tax authority on each side. A row matches on tax authority plus pay code first. A mapping with a blank tax authority matches its pay code under any authority.

What happens to a Workday pay component with no SAP equivalent?

It still appears in the results as a Workday-only row, labelled "No paycode mapping" (or "No employee mapping" if the worker is unmapped). If the pay code is mapped but SAP has no amount for it, it shows as a difference. A row with no Employee # is left out of the run.

Does SmartCompaire correct differences in SAP or Workday?

No. It finds, grades and records differences. Corrections are made in SAP or Workday by your team, and nothing is written back to either system.

Can the Hirra assistant help review an SAP to Workday run?

Yes. Hirra, the AI assistant in SmartCompaire, can read your project, results and defects, summarize a run and raise defects, with only the access your own login has. It is in beta and can make mistakes, 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