California Meal Rules

California law specifies that employees are entitled to an unpaid 30-minute meal for every five hours worked. If the employer does not provide this meal period for the employee, the employer must pay the employee a "penalty" of one hour of regular pay that does not count toward overtime.

Employees are also entitled to a paid 10-minute break for every four hours worked. As with the meal period, if the employer does not provide a break, the employer must pay the employee a "penalty" of one hour of regular pay that does not count toward overtime.

The employee can only receive one "penalty" for meals and one "penalty" for breaks in a day, even if the employee is entitled to two or more meals/breaks and does not receive any of them. For example, if the employee works a 12-hour shift and misses both meals, the employee will earn only one meal "penalty."

In Shop Floor Time, this feature is designed for punch employees.

The meals and breaks for this feature should be configured in an employee's schedule to post automatically. These events should also be configured to allow the employee to override the automatic meal/break with a punched meal/break.

The Post Process Event rules will be used to post the "penalty" event when the employee does not receive the appropriate meals/breaks. These rules can also be used to prevent a penalty event from posting when an employee works through a meal period, or to remove a penalty event when the employee works through the meal period and waives the penalty pay.

See Also: Examples

Configuration Steps:

Time Precision for 10-Minute Breaks

Creating the Penalty Waiver Reason Code

Creating the Meal and Break Events

Creating the Penalty Pay Events

Defining the Hours Classification for the Penalty Events

Enabling the PUNCH_AND_ELAPSED_FILTER PVE Plugin

Post Process Event Configurations

Scheduling the Automatic Meals and Breaks

Creating the Post Process Event Rules

 

Time Precision for 10-Minute Breaks

If you are keeping track of an employee's 10-minute breaks and want to make sure these breaks are exactly 10 minutes long, you need to change the Time Precision in the employee's Rounding Policy to Minute. See Leave Rounding and Return Rounding for more information.

If you are not tracking breaks and only tracking meals, you can set the Time Precision to any value.

 

Creating the Penalty Waiver Reason Code

If the employer and employee both agree, an employee may work through a meal or break. To do so, the employee can punch a version of the meal or break event that has a zero duration; this event will override the automatic meal or break. The employee may also be authorized to waive the penalty pay for the zero-duration meal or break as shown in Example 4.

To indicate the penalty has been waived, the employee will select an option from the Penalty Waiver event prompt. This event prompt will be configured to display a list of Reason Codes. The Reason Code you select from the Penalty Waiver event prompt will determine whether the penalty event is posted.

To define the Reason Code for the Penalty Waiver, use the Charge Code form.

In the web timecard, you can view the penalty waiver in the Reason Code column and in the Trans Comment tab of the Transaction Details form.

Note that if you want to delete or add the penalty waiver from the event, you will need to modify the event and not use the Comment/Reason Code pop-up form. See Example 4 for more information.

 

Creating the Meal and Break Events

You will need to define a meal or break event for each automatic meal or break that will be posted in the employee's schedule. For example, if an employee has a 10-hour schedule, the employee will need two meal events – one that posts five hours after clock in and one that posts 10 hours after clock in. The employee will also need two break events – one that posts 4 hours after clock in and one that posts 8 hours after clock in.

When you are done configuring these events, make sure you add them to the appropriate Menu Tree.

To define these events, use the Events form (Main Menu > Configuration > Event > Events). Make a copy of the TEMPLATE_MEAL and TEMPLATE_BREAK events.

If you want to allow employees to work through a meal and waive the penalty pay, you also need to configure the settings shown below (PUNCH_ELAPSED_ON_TERMINAL and ELAPSED_TERMINAL_LABEL). These settings will allow the employee to post a version of the meal or break event that has a zero duration and that will override the automatic meal or break.

To ensure the employees will remain punched out for the entire 30-minute meal or 10-minute break, you can configure a minimum duration for the event (see below). Note that if the employee posts a zero-duration event to work through the meal or break, this restriction will not apply.

You can configure these settings for break events as well, if employees will be manually punching their breaks and you want to allow them to waive the break and associated penalty pay.

In addition to these settings, you will need to enable a PVE Plugin to use this elapsed work-through event.

 

Configure a Minimum Duration for the Event

To ensure that employees will remain punched out for the entire 30-minute meal or 10-minute break, you must configure the MINIMUM_DURATION Event Setting and add a validation to the event.

  1. Select the meal or break event in the Events form.

  2. Click the Setting tab and modify the MINIMUM_DURATION setting. Change the setting as necessary (for example, set to 00:30 for a 30-minute meal).

  3. Next, go to the Validation tab and add the following validation:

    Validation Type: Event Validation

    Validation Stage: Post Validation

    Std Validation ID: Generic Event Minimum Duration Validation

If the employee tries to stop the meal/break event after less time than the MINIMUM_DURATION setting, an error will display.

However, if the employee posts a zero-duration event to work through the meal or break, this restriction will not apply.

 

Change the PUNCH_ELASPSED_ON_TERMINAL Setting

On the Setting tab of the Events form, select the meal or break event and change the PUNCH_ELASPSED_ON_TERMINAL setting to Both.

This setting will allow an elapsed version of the event, with a zero duration, to be posted from the terminal. Employees will post this elapsed event when they want to work through the meal or break.

 

Change the ELAPSED_TERMINAL_LABEL Setting

On the Setting tab of the Events form, change the ELAPSED_TERMINAL_LABEL setting to the name of the elapsed version of the event that employees will post when they want to work through the meal or break.

 

Add the Penalty Waiver Event Prompt

On the Prompt tab of the Events form, you will need to add the Penalty Waiver (F_WAIVER) prompt to the meal and break events. The Penalty Waiver prompt will allow the employee to waive the penalty pay when working through the meal or break. See Example 4.

Set the Person on Add, Person on Modify, Manager on Add, and Manager on Modify settings to Visible.

Set the Prompt Stage to Stop.

In the Valid Value field, select Reason Code Valid Values.

 

Creating the Penalty Pay Events

The "penalty" event is the event that will post when the employee does not receive the appropriate meals or breaks. It is actually a penalty on the employer (who must pay the employee for one hour of labor) and not a penalty on the employee.

Because an employee can receive separate penalties for missed meals and breaks, you will need to define two penalty events – one for meals and one for breaks.

To make sure the penalty events do not count toward overtime, you may need to modify the COUNTS_TO_DAILY_OT, COUNTS_TO_PERIOD_OT, and COUNTS_TO_WEEK_OT settings on the Setting tab of the Events form. Change these settings to False.

In this example, the TEMPLATE_DAY_WORKED event was duplicated to create the penalty events.

 

Defining the Hours Classification for the Penalty Events

In addition to defining a penalty event for meals and a penalty event for breaks, you should also create a separate hours classification for the penalty event so that the penalty hours will not count toward overtime.

Use the Hours Class Group form (Main Menu > Configuration > Payroll > Hours Class Group) to create the hours classification.

You will also need to add a rule to the employee's Pay Rules Ruleset that gives penalty event hours this classification. The Pay Rules are then assigned to the employee's Pay Policy.

 

Enabling the PUNCH_AND_ELAPSED_FILTER PVE Plugin

When an employee wants to work through a meal or break, the employee can punch a zero-duration elapsed version of the meal or break event from the terminal. See Example 3. This event will include a Penalty Waiver prompt. If the employee selects to waive the penalty pay, the employee will not receive the penalty pay for the missed meal or break. See Example 4.

To display this elapsed work-through event in the terminal menu, the event's PUNCH_ELAPSED_ON_TERMINAL Event Setting must be set to Both and you need to set the ELAPSED_TERMINAL_LABEL for the event.

In addition, you must enable a PVE Plugin called PUNCH_AND_ELAPSED_FILTER. To enable this plugin, go to the PVE Plugin form (Main Menu > Configuration > System > PVE Plugin). Select the PUNCH_AND_ELAPSED_FILTER plugin, click Modify, and select the Enabled check box. Click Save.

 

Post Process Event Configurations

The penalty event that posts when an employee misses a meal or break is configured in the Post Process Event Rules. A “Post Process” event is an event that posts automatically after an employee clocks out, adding extra time to the day. See Post Process Event for more information. For the California Meal Rules, a missed meal or break means the employee may receive an extra hour of pay (the penalty event) after clock out.

In addition to creating the Post Process Event Rules (which will be explained below), additional configurations are needed.

These configurations are explained in more detail in the Post Process Event topic.

 

Scheduling the Automatic Meals and Breaks

To ensure that employees receive their required meal and break periods, you need to schedule these events to post automatically in the employee's schedule. The employee will still be able to override the automatic meals and breaks by punching them from the terminal. The punched meals and breaks will replace the automatic ones. For more information, refer to the Meal/Break Override topic.

Use the Event tab in the Schedule Cycle or Person Schedule form to add the automatic meals and breaks to the employee's schedule.

The Auto Event setting for the meals and breaks need to be set to OVERRIDE.

In the example below, the schedule is from 7 a.m. to 7 p.m. The meals and breaks are set to post at defined start and stop times.

If employees may work on gap days, you will also need to define an Optional schedule for the gap days with the same automatic meals and breaks. To do so, copy one of the configured Normal schedules and change the Schedule Type to Optional.

 

Creating the Post Process Event Rules

The Post Process Event rules will be used to post the "penalty" event when the employee does not receive the appropriate meals/breaks. These rules will also be used to remove or prevent a penalty event from posting if an employee works through the meal period and waives the penalty pay.

In the example below, a rule has been created for each of the possible meals and breaks the employee is entitled to in a 12+ hour schedule (two meals and three breaks).

To create these rules, go to the Calc Rule form. Use the Context Name PostProcessEventRuleset. You must then organize the rules into a ruleset using the Rulesets form. For information on the operands used to create these rules, see Post Process Event Rule Operands.

Once you have created your Post Process Event Ruleset, you must assign it to the Pay Policy of the employees who will be using California Meal Rules.

 

Rule for First Missed Meal

The following rule may be used to post a "penalty" of one hour of regular pay to the employee's timecard if the employee does not receive a 30-minute meal period after working 5 hours.

IF Currently Processing Event( ATTENDANCE:CLOCK, End )
And Reached Minimum by Pay Policy( 5 )
And ( Not( Has Occurred Before Clock Start Offset By EventType( ATTENDANCE:MEAL, 1, 5 ) )
Or Not( Has Occurred With Minimum Duration By Event( Meal1 (Meal1), 1, 0.5 ) ))
And Not( Is Penalty Waived With Reason( Meal1 (Meal1), 1, Waive Missed Meal or Break Pay ) )
THEN Post Elapsed( Pay for Missed Meal (Pay for Missed Meal), 1, None, 0 )

The rule is applied when the employee clocks out. The operands in this rule are explained below.

IF: The employee has worked a minimum of 5 hours on the Post Process Events specified in the Pay Policy
AND
The first occurrence of an ATTENDANCE:MEAL event did not post within 5 hours after clock in OR the first occurrence of the Meal1 event with a duration of 30 minutes has not posted
AND
The employee has not waived the penalty for the Meal1 event with the Reason Code Waive Missed Meal or Break Pay.
THEN: The Pay for Missed Meal event will post on the employee's timecard for a duration of 1.0 hour.

 

Rule for Second Missed Meal

The following rule may be used to post a "penalty" of one hour of regular pay to the employee's timecard if the employee does not receive a 30-minute meal period after working 10 hours.

IF Currently Processing Event( ATTENDANCE:CLOCK, End )
And Reached Minimum by Pay Policy( 10 )
And ( Not( Has Occurred Before Clock Start Offset By Event( Meal2 (Meal2), 1, 10 ) )
Or Not( Has Occurred With Minimum Duration By EventType( ATTENDANCE:MEAL, 2, 0.5 ) ))
And ( Not( Is Penalty Waived With Reason( Meal2 (Meal2), 1, Waive Missed Meal or Break Pay ) )
Or ( Is Penalty Waived With Reason( Meal1 (Meal1), 1, Waive Missed Meal or Break Pay )
And Is Penalty Waived With Reason( Meal2 (Meal2), 1, Waive Missed Meal or Break Pay )))
THEN Post Elapsed( Pay for Missed Meal (Pay for Missed Meal), 1, None, 0 )

The rule is applied when the employee clocks out. The operands in this rule are explained below.

IF: The employee has worked a minimum of 10 hours on the Post Process Events specified in the Pay Policy.
AND
The first occurrence of the Meal2 event did not post within 10 hours after clock in OR the second occurrence of an ATTENDANCE:MEAL event with a duration of 30 minutes has not posted
AND
The employee has not waived the penalty for the Meal2 event with the Reason Code Waive Missed Meal or Break Pay
OR
The employee has waived the penalty for the Meal1 event with the Reason Code Waive Missed Meal or Break Pay AND the employee has waived the penalty for the Meal2 event with the Reason Code Waive Missed Meal or Break Pay.
THEN: The Pay for Missed Meal event will post on the employee's timecard for a duration of 1.0 hour.

 

Rule for First Missed Break

The following rule may be used to post a "penalty" of one hour of regular pay to the employee's timecard if the employee does not receive a 10-minute break period after working 4 hours.

IF Currently Processing Event( ATTENDANCE:CLOCK, End )
And Reached Minimum by Pay Policy( 4 )
And ( Not( Has Occurred Before Clock Start Offset By EventType( ATTENDANCE:BREAK, 1, 4 ) )
Or Not( Has Occurred With Minimum Duration By Event( Break1 (Break1), 1, 0.1666666666666667 ) ))
And Not( Is Penalty Waived With Reason( Break1 (Break1), 1, Waive Missed Meal or Break Pay ) )
THEN Post Elapsed( Pay for Missed Break (Pay for Missed Break), 1, None, 0 )

The rule is applied when the employee clocks out. The operands in this rule are explained below.

IF: The employee has worked a minimum of 4 hours on the Post Process Events specified in the Pay Policy
AND
The first occurrence of an ATTENDANCE:BREAK event did not post within 4 hours after clock in OR the first occurrence of the Break1 event with a duration of 10 minutes has not posted
AND
The employee has not waived the penalty for the Break1 event with the Reason Code Waive Missed Meal or Break Pay.
THEN: The Pay for Missed Break event will post on the employee's timecard for a duration of 1.0 hour.

 

Rule for Second Missed Break

The following rule may be used to post a "penalty" of one hour of regular pay to the employee's timecard if the employee does not receive a 10-minute break period after working 8 hours.

IF Currently Processing Event( ATTENDANCE:CLOCK, End )
And Reached Minimum by Pay Policy( 8 )
And ( Not( Has Occurred Before Clock Start Offset By Event( Break2 (Break2), 1, 8 ) )
Or Not( Has Occurred With Minimum Duration By EventType( ATTENDANCE:BREAK, 2, 0.1666666666666667 ) ))
And Not( Is Penalty Waived With Reason( Break2 (Break2), 1, Waive Missed Meal or Break Pay ) )
THEN Post Elapsed( Pay for Missed Break (Pay for Missed Break), 1, None, 0 )

The rule is applied when the employee clocks out. The operands in this rule are explained below.

IF: The employee has worked a minimum of 8 hours on the Post Process Events specified in the Pay Policy.
AND
The first occurrence of the Break2 event did not post the 8 hours after clock in OR the second occurrence of an ATTENDANCE:BREAK event with a duration of 10 minutes has not posted
AND
The employee has not waived the penalty for the Break2 event with the Reason Code Waive Missed Meal or Break Pay
THEN: The Pay for Missed Break event will post on the employee's timecard for a duration of 1.0 hour.

 

Rule for Third Missed Break

The following rule may be used to post a "penalty" of one hour of regular pay to the employee's timecard if the employee does not receive a 10-minute break period after working 12 hours.

IF Currently Processing Event( ATTENDANCE:CLOCK, End )
And Reached Minimum by Pay Policy( 12 )
And ( Not( Has Occurred Before Clock Start Offset By Event( Break3 (Break3), 1, 12 ) )
Or Not( Has Occurred With Minimum Duration By EventType( ATTENDANCE:BREAK, 3, 0.1666666666666667 ) ))
And ( Not( Is Penalty Waived With Reason( Break3 (Break3), 1, Waive Missed Meal or Break Pay ) )
THEN Post Elapsed( Pay for Missed Break (Pay for Missed Break), 1, None, 0 )

The rule is applied when the employee clocks out. The operands in this rule are explained below.

IF: The employee has worked a minimum of 12 hours on the Post Process Events specified in the Pay Policy.
AND
The first occurrence of the Break3 event did not post 12 hours after clock in OR the third occurrence of an ATTENDANCE:BREAK event with a duration of 10 minutes has not posted
AND
The employee has not waived the penalty for the Break3 event with the Reason Code Waive Missed Meal or Break Pay
THEN: The Pay for Missed Break event will post on the employee's timecard for a duration of 1.0 hour.

 

Examples – California Meal Rules

Examples 1-4 below use the ruleset shown in Create the Post Process Event Rules. Example 5 uses a different rule.

The Pay Rules for the employee in these examples specify that the employee receives daily overtime after 8 hours. The "penalty" event that is posted for a missed meal will be classified as "P" and will not count toward overtime.

 

Example 1: Meals and Breaks Post Automatically

The employee is scheduled to work from 8 a.m. to 4:30 p.m. with a half-hour unpaid lunch and two paid 10-minute breaks. Normally, the employee punches his meal at the terminal and his breaks post automatically. On this day, the employee forgot to punch out for his meal, so both the meal and the breaks posted automatically as configured in the schedule.

 

Example 2: Punched Meal After More Than Five Hours Worked

The employee is scheduled to work from 8 a.m. to 4:30 p.m. with a half-hour unpaid lunch and two paid 10-minute breaks. The break periods post automatically (the employee does not punch out for breaks). Lunch is scheduled to be from 12:30 p.m. to 1 p.m., but the employee punches this meal from 2 p.m. to 2:30 p.m.

The employee's punched lunch overrides and replaces the automatic lunch. Because the employee's lunch occurred more than 5 hours after clock in, the employee receives an extra hour of pay (the Pay for Missed Meal event) after clock out.

Note: When the employee punches the meal or break, the employee will see the Penalty Waiver prompt. This prompt is intended to be used when the employee is waiving the penalty pay for working through the meal/break. See Example 4 below.

 

Example 3: Employee Works Through Meal and Gets Penalty Pay

The employee is scheduled to work from 8 a.m. to 4:30 p.m. with a half-hour unpaid lunch and two paid 10-minute breaks. The break periods post automatically (the employee does not punch out for breaks).

The supervisor asks the employee to work through lunch, so the employee punches the Work Thru Meal1 event at the terminal. This event posts a zero-duration lunch on the employee's timecard; see Create the Meal and Break Events for information on how to configure this event. The Work Thru Meal1 event overrides the employee's automatic lunch.

Because the employee did not receive a meal period, the employee receives an extra hour of pay (the Pay for Missed Meal event) after clock out.

The employee receives 8 Regular hours, 0.5 Overtime hours, and 1 hour of "penalty" pay that does not count toward overtime.

 

Example 4: Employee Works Through Meal and Waives Penalty Pay

The employee is scheduled to work from 8 a.m. to 4:30 p.m. with a half-hour unpaid lunch and two paid 10-minute breaks. The break periods post automatically (the employee does not punch out for breaks).

The employee wants to work through lunch to help complete a team project. The supervisor explains that working through lunch is not required and he cannot authorize the employee to do so and receive penalty pay for the missed meal. The employee asks if he can work through lunch and waive the penalty pay and the supervisor agrees.

The employee punches the Work Thru Meal1 event at the terminal and for the Penalty Waiver prompt, the employee selects Waive Missed Meal or Break Pay.

This event posts a zero-duration lunch on the employee's timecard; see Create the Meal and Break Events for information the settings required to configure this event. Notice that the event name is Meal1 on the timecard; the event name Work Thru Meal1 only appears on the terminal.

Because the employee selected Waive Missed Meal or Break Pay from the Penalty Waiver prompt, the employee will not receive the extra hour of "penalty" pay.

If the supervisor needs to remove the penalty waiver, the supervisor will have to modify the Meal1 event. The supervisor will remove the value from the Penalty Waiver prompt and click Save.

Note: When the supervisor modifies this event, the Event Prompts – Elapsed pop-up window will display even though the Work Thru Meal1 event was punched from the terminal, because this event is an elapsed version of the Meal1 event.

When the waiver is removed, the supervisor will click Repost Day in the Daily timecard and the Penalty event will then appear.

 

Example 5: Meal and Penalty Waived for Six-Hour Shift

This employee is scheduled to work from 5 p.m. to 11 p.m. If the employee works more than 5 hours but no more than 6 hours without a meal period, then the employee will not receive a penalty for the missed meal.

This employee's schedule and Post Process Event rules will be different from the ones in examples 1-4.

This employee's schedule will not have an automatic meal posting, although it will have an automatic break posting from 8 p.m. to 8:10 p.m.

The following rule will post a "penalty" of one hour of regular pay to the employee's timecard if the employee does not receive a 30-minute meal period after working 6 hours.

IF Currently Processing Event( ATTENDANCE:CLOCK, End )
And Reached Minimum by Pay Policy( 6 )
And ( Not( Has Occurred Before Clock Start Offset By Event( Meal1, 1, 5 ) )
Or Not( Has Occurred With Minimum Duration By Event( Meal1 (Meal1), 1, 0.5 ) ))
THEN Post Elapsed( Pay for Missed Meal (Pay for Missed Meal), 1, None, 0 )

When the employee clocks in at 5 p.m. and clocks out at 11 p.m., the employee's break posts automatically as configured in the schedule. Although the employee has worked more than 5 hours without a meal, the employee does not receive a penalty event.

However, if the employee clocks out at 11:30 p.m., the employee has now worked more than 6 hours. The employee therefore receives the penalty event for the missed meal.