Billing Overtime Rules

In a Position’s Billing Settings, is a value for Billing Overtime Rules. 

image-20230303-203639.png

This combo box refers to the records available via API at /overtime-rules .

[GET] /overtime-rules/2

{
       "name": "Billing Regular (8x1.5 / 12x2.0)",
       "periodLength": "WEEKLY",
       "ruleType": "BILLING",
       "rules": {},
       "id": 2
   }

When a BOR is selected, it gets stored in the Position data as a Billing Setting:

[GET] /positions/381?include=billingSetting

{
       "name": "5355362 - Location @ 123 Street, City - Security Guard",
       "description": "CM",
       "customId": "SG123",
       "status": "ACTIVE",
       "account": 313,
       "contract": 11,
       "nonBillable": false,
       "shiftMemo": "Access\r\nElevator Control\r\nSecurity presence",
       "beginDate": "2022-01-23T00:00:00+00:00",
       "endDate": null,
       "breakRule": null,
       "taxClass": 1,
       "payCodeLabel": null,
       "id": 381,
       "billingSetting": {
           "type": "HOURLY",
           "billItem": 1,
           "rate": 24.86,
           "discountRate": 0,
           "holidayGroup": 1,
           "billBreaks": "ALL",
           "holiday": "RATE",
           "holidayRate": 62.15,
           "holidayMultiplier": 1.5,
 ==>       "overtimeRule": 2,
           "id": 381
       }
   }

When working with the Pay-run Items entity by direct API or abstracted TQL, you can conditionally report on items that are Overtime

Billable or not by checking if overtimeRule contains a value or not. This was done for a customer recently using Apogee who exported their pay-run via TQL.

A TQL conditional like this was used to select the OT rate or the base rate depending on if an overtimeRule had been selected:

IF(shift.position.billingSetting.overtimeRule IS NULL OR shift.position.billingSetting.overtimeRule = "", round(baseRate*100),round(rate*100)) `Level`, 
Was this article helpful?
0 out of 0 found this helpful

Articles in this section