Premium Pay

What Is Premium Pay?

Premium pay refers to additional compensation that Salsa calculates and applies on top of a worker's base wages when certain conditions are met. These premiums are driven by labor regulations that vary by jurisdiction and are designed to ensure workers receive fair compensation for specific scheduling or work patterns.

Salsa currently supports the following premium pay types:

Premium TypeCategoryAvailability
Split ShiftsDay-based premiumNew York
Spread of HoursDay-based premiumNew York

Split Shifts & Spread of Hours

Split shifts and spread of hours are premium pay requirements under New York wage orders. When certain conditions are met, employers must ensure that a worker's total daily compensation meets a minimum threshold — and if it doesn't, a premium top-up must be paid.

Salsa calculates these premiums automatically when shift data is sent through the Paystream API with the appropriate eligibility flags.

Split Shifts

A split shift occurs when a worker works two or more separate segments in the same workday with a break longer than one hour between them. When this happens, New York wage orders require that the worker's total daily earnings meet or exceed a minimum floor — specifically, the minimum wage multiplied by the hours worked, plus one additional hour of minimum wage.

If the worker's actual earnings fall short of this floor, the employer must pay the difference as a split-shift premium.

Spread of Hours

Spread of hours refers to the total span of time from the start of a worker's first shift to the end of their last shift in a workday — including all breaks, unpaid time, and gaps. When this span exceeds 10 hours, the same minimum-floor calculation applies, and a spread-of-hours premium may be owed.

When Split Shift or Spread of Hours Premium Are Not Paid

No split shift or spread of hours premium is owed when:

  • Earnings already exceed the floor — if the worker's total daily earnings (including tips, bonuses, and other compensation) already meet or exceed the minimum required amount.
  • The worker is exempt or a contractor — split-shift premiums apply only to non-exempt employees.
  • Shifts are in different states — cross-state gaps do not create a split shift. Each state's rules are evaluated in isolation.

One-Per-Day Rule

If both split shift and spread of hours are triggered on the same day for the same worker, only one premium is paid — the one resulting in the higher required minimum-wage floor. Both premium types are tracked independently in YTD totals regardless.

How To Send Data via the Paystream API

Premium Eligibility Flags

The Paystream API accepts an optional premiumEligibility object on both pay and timeWorked entries. This object contains two boolean flags:

"premiumEligibility": {
    "splitShift": true,
    "spreadOfHours": true
}
FieldTypeDefaultDescription
splitShiftbooleanfalseIndicates this shift should be evaluated for split-shift premium.
spreadOfHoursbooleanfalseIndicates this shift should be evaluated for spread-of-hours premium.

When the premiumEligibility object is not provided, both flags default to false, maintaining backward compatibility with existing integrations.

Important: These flags tell Salsa to evaluate whether a premium is owed — they do not guarantee a premium will be paid. Salsa uses the shift timestamps and earnings data to determine whether the trigger conditions are met and whether a premium is actually due.

Supported Entry Types

Premium eligibility flags are supported on:

  • Pay entries (rate-based only) — fixed-amount and frequency-based pay entries do not support these flags.
  • Time worked entries

The flags are only supported on shift-based entries (entries with startDateTime and endDateTime). Whole-day entries are not allowed to use these flags.

Full API Example

Endpoint: POST /api/rest/v1/paystream/payroll-elements

{
  "data": [
    {
      "type": "PaystreamPayrollElementPeriodReplacementInput",
      "workers": [
        {
          "pay": [
            {
              "rate": "20",
              "startDateTime": "2025-03-15T09:00:00-05:00",
              "endDateTime": "2025-03-15T12:00:00-05:00",
              "payReferenceId": "ref:pay:partner:us:hourly",
              "premiumEligibility": {
                "splitShift": true,
                "spreadOfHours": true
              }
            },
            {
              "rate": "20",
              "startDateTime": "2025-03-15T14:00:00-05:00",
              "endDateTime": "2025-03-15T18:00:00-05:00",
              "payReferenceId": "ref:pay:partner:us:hourly",
              "premiumEligibility": {
                "splitShift": true,
                "spreadOfHours": true
              }
            }
          ],
          "timeWorked": [
            {
              "startDateTime": "2025-03-15T09:00:00-05:00",
              "endDateTime": "2025-03-15T12:00:00-05:00",
              "premiumEligibility": {
                "splitShift": true,
                "spreadOfHours": true
              }
            },
            {
              "startDateTime": "2025-03-15T14:00:00-05:00",
              "endDateTime": "2025-03-15T18:00:00-05:00",
              "premiumEligibility": {
                "splitShift": true,
                "spreadOfHours": true
              }
            }
          ]
        }
      ]
    }
  ]
}

In this example, the worker has two shifts (9 AM - 12 PM and 2 PM - 6 PM) with a 2-hour gap. Because both splitShift and spreadOfHours are flagged as true, Salsa will:

  1. Evaluate split shift: The 2-hour gap exceeds the 1-hour threshold, so the split-shift condition is met.
  2. Evaluate spread of hours: The total span is 9 hours (9 AM to 6 PM), which does not exceed 10 hours, so spread of hours does not trigger.
  3. Calculate premium: Only the split-shift premium applies. Salsa compares the worker's actual daily earnings against the minimum floor and pays the difference if needed.

Validation Rules

The API enforces the following rules when premium eligibility flags are provided:

RuleBehavior
Worker's work location must be in New YorkReturns HTTP 400 with a specific error message if the location is not supported.
Entry must be shift-based (with start/end timestamps)Whole-day entries cannot use premium eligibility flags.
Pay entries must be rate-basedFixed-amount and frequency-based pay entries do not support these flags.

Payroll Run Behavior

When premium calculations result in a premium being owed, Salsa adds a separate earnings line to the worker's earnings record:

  • Split-shift premium — the total split-shift premium for the pay period.
  • Spread-of-hours premium — the total spread-of-hours premium for the pay period.

These premium earnings lines:

  • Do not add hours worked.
  • Do not affect overtime calculations.
  • Accumulate in year-to-date (YTD) totals under their respective earnings types.
  • Are visible to the employer during the payroll run and can be manually edited if needed.