<turbo-stream action="update" target="wiki_card"><template>

<h1>Aimsio Dayforce Labor Metrics and Employee Pay Adjustments</h1>
<div class="trix-content"><p><strong>Aimsio</strong>, a SQL database hosted on Azure, is where the customer manages Jobs, Assets, and field-collected Forms (timesheets, BOLs, crew supervisor entries). This data needs to reach <strong>Dayforce</strong> so that field-recorded time and pay events are reflected in payroll, without manual re-entry.<br><br></p><h3>Flows</h3><p></p><figure class="attachment attachment--content"><table class="table table-bordered"><thead><tr><td>Source</td><td>Target</td><td>Action</td></tr></thead><tbody><tr><td>Aimsio Jobs</td><td>Dayforce Labor Metrics</td><td>Add</td></tr><tr><td>Aimsio Asset</td><td>Dayforce Labor Metrics</td><td>Add</td></tr><tr><td>Aimsio Form Timesheet Entries</td><td>Dayforce EmployeePayAdjustments</td><td>Add</td></tr><tr><td>West Aimsio Form Timesheet</td><td>Dayforce EmployeePayAdjustments</td><td>Add</td></tr><tr><td>West Aimsio Form BOL</td><td>Dayforce EmployeePayAdjustments</td><td>Add</td></tr><tr><td>West Aimsio CREW Supervisor Form Timesheet</td><td>Dayforce EmployeePayAdjustments</td><td>Add</td></tr></tbody></table><figcaption class="attachment__caption"></figcaption></figure><br>All four Pay Adjustment flows write to the same Dayforce object (<code>EmployeePayAdjustments</code>), even though they come from different Aimsio form types and business units.<br><br><p></p><h3>Why Labor Metrics Has to Run First</h3><p>Looking at the schema (see Schema Structure &amp; Field Management), <code>EmployeePayAdjustments</code> carries a <code>LaborMetrics</code> array made up of <code>LaborMetricsTypeXRefCode</code> / <code>LaborMetricsCodeXRefCode</code> pairs. Dayforce needs each referenced Labor Metric (for example, a job code) to already exist before it can be attached to a Pay Adjustment, the same way an Item needs to exist before it can appear on an Order.</p><p>That's why the integration is sequenced in two layers:</p><ol><li><strong>Reference data layer</strong> — Aimsio Jobs and Aimsio Assets are synced into Dayforce as <code>LaborMetrics</code>, populating <code>LaborMetricsTypeXRefCode</code> and <code>LaborMetricsCodeXRefCode</code>.</li><li><strong>Transactional layer</strong> — Aimsio timesheet and form data is synced into Dayforce as <code>EmployeePayAdjustments</code>, with each record's embedded <code>LaborMetrics</code> array referencing metrics created in step 1.</li></ol><h3>Example Field Mapping</h3><p>A representative mapping from an Aimsio timesheet entry to <code>EmployeePayAdjustments</code>:<br><br></p><figure class="attachment attachment--content"><table class="table table-bordered"><thead><tr><td>Dayforce Field</td><td>Sourced From (Aimsio)</td></tr></thead><tbody><tr><td>EmployeePayAdjustXRefCode</td><td>Aimsio timesheet entry unique ID</td></tr><tr><td>EmployeeXRefCode</td><td>Aimsio employee/worker reference</td></tr><tr><td>PayAdjustmentCodeXRefCode</td><td>Aimsio pay code / entry type</td></tr><tr><td>PayAdjustmentDate</td><td>Date worked on the Aimsio form</td></tr><tr><td>Hours</td><td>Hours recorded on the Aimsio form</td></tr><tr><td>JobXRefCode</td><td>Aimsio Job reference</td></tr><tr><td>LaborMetrics[].LaborMetricsCodeXRefCode</td><td>Aimsio Job or Asset code, already synced as a Labor Metric</td></tr></tbody></table><figcaption class="attachment__caption"></figcaption></figure><br>The exact field-by-field mapping varies slightly by form type (standard timesheet vs. BOL vs. crew supervisor timesheet), since each Aimsio form captures a slightly different shape of data, but all of them resolve to the same <code>EmployeePayAdjustments</code> target structure.<p></p><h3>Result</h3><p>Field-recorded time and pay events in Aimsio reach Dayforce automatically, with Labor Metrics guaranteed to be in place ahead of any Pay Adjustment that references them, avoiding orphaned or failed adjustment records in Dayforce.</p></div>
</template></turbo-stream>

