This guide is for an AI employee schedule or shift schedule that already exists in a spreadsheet. It does not ask the same AI to grade its own answer. Instead, it converts each operating rule into a calculation you can inspect and rerun whenever an assignment changes.
Start with a copy of the original output. Never fix a bad assignment before preserving the first result, or you will lose the evidence needed to understand the failure.
The five checks
- Every shift has the required number of different people.
- Every shift includes the required role or skill.
- Every assignment matches the employee's recorded availability.
- No employee exceeds the weekly hours limit.
- Every employee receives the required rest between assignments.
The examples below assume an Excel table named Schedule with columns forDay, Shift, Employee 1, and Employee 2. A second table named Staff stores each employee's role, whileAvailability stores the employee, day, and shift combinations they can work. Adapt the table and column names to your workbook.
1. Check coverage and duplicate assignments
First confirm that every row contains the required number of people and that the same person is not entered twice. For a two-person shift, add this formula to aCoverage check column:
=IF(AND([@[Employee 1]]<>"",[@[Employee 2]]<>"",[@[Employee 1]]<>[@[Employee 2]]),"PASS","FAIL")Count the results with =COUNTIF(Schedule[Coverage check],"FAIL"). The schedule passes only when that count is zero. If staffing requirements vary by shift, store the required headcount in a separate rules table and compare the populated assignment count with that value.
2. Check required roles and skills
Coverage is not enough when each shift needs a Lead, licensed operator, language skill, or other qualification. For a two-person shift that requires at least one Lead, use:
=IF(OR(XLOOKUP([@[Employee 1]],Staff[Employee],Staff[Role],"")="Lead",XLOOKUP([@[Employee 2]],Staff[Employee],Staff[Role],"")="Lead"),"PASS","FAIL")This looks up both assigned people in the source-of-truth staff table. Do not infer a role from a person's name or copy role labels into the generated roster, because duplicated data can drift away from the source record.
3. Check every assignment against availability
Treat availability as explicit data, not a note for visual review. If one row inAvailability represents one allowed employee/day/shift combination, validate both people with:
=IF(AND(COUNTIFS(Availability[Employee],[@[Employee 1]],Availability[Day],[@Day],Availability[Shift],[@Shift])=1,COUNTIFS(Availability[Employee],[@[Employee 2]],Availability[Day],[@Day],Availability[Shift],[@Shift])=1),"PASS","FAIL")A missing match is a failure, not permission to assume availability. Also flag duplicate availability rows: this formula intentionally expects exactly one matching record for each assignment.
4. Recalculate weekly hours from assignments
Do not trust a weekly-hours summary generated alongside the schedule. Recalculate it from the actual assignment columns. For eight-hour shifts and an employee name in[@Employee], use:
=(COUNTIF(Schedule[Employee 1],[@Employee])+COUNTIF(Schedule[Employee 2],[@Employee]))*8Compare that result with the relevant cap, for example=IF([@[Calculated hours]]<=40,"PASS","FAIL"). When shift lengths vary, calculate hours from normalized start and end timestamps instead of multiplying by eight.
5. Check minimum rest between consecutive shifts
Rest errors are easy to miss because the conflicting assignments may appear on different days. Create a normalized list with one row per employee assignment, include full start and end timestamps, then sort by employee and start time. If the previous shift's end is inB2 and the next shift's start is in C2, test a 12-hour minimum with:
=IF((C2-B2)*24>=12,"PASS","FAIL")Only compare consecutive assignments for the same employee. Store timestamps as real Excel date-time values, and define how overnight shifts, time zones, and daylight-saving changes are handled before running the check.
What a real failure looks like
In our fictional 24/7 support test, the first roster filled all 42 seats and kept the generated weekly-hours summary below 40. It still failed three independent rules: Thursday Night had no Lead, Ellis Park was assigned outside availability on Sunday Day, and that assignment created only eight hours of rest after Saturday Evening.
| Check | First result | What exposed it |
|---|---|---|
| Required role | Failed | Role lookup found no Lead on Thursday Night |
| Availability | Failed | The employee/day/shift combination had no allowed match |
| Minimum rest | Failed | The timestamp difference was 8 hours, below the 12-hour rule |
Read the complete 24/7 employee schedule test to see the exact first prompt, preserved mistakes, one correction prompt, 4/10 to 10/10 score change, and screenshots of the checked result.
Boundary: formulas are not your full scheduling policy
These five checks validate the bounded rules in the example; they do not certify a schedule as lawful, safe, fair, or ready for production. A real organization may also need overtime, break, on-call, union, contract, leave, fatigue, location, handoff, skill-mix, accessibility, and local labor-law rules. A qualified owner should approve those rules before they become formulas.
The workbook uses fictional people and availability. No live team was scheduled, the exact model identifier was unavailable, and a single corrected run does not establish general AI scheduling reliability. Preserve failed runs as well as successful ones when comparing tools.
Checks inform a release decision; they do not approve it
Passing these five checks means only that the schedule satisfied the bounded rules tested here. It is not approval to use the schedule. A qualified schedule owner must decide whether it is ready, using the organization's complete operating policy and any HR, safety, legal, or domain review the situation requires.
If a check fails, return only the detected violations for one controlled correction, keep the original output, and rerun the same formulas against the full revised schedule. The qualified owner—not the formulas or the AI—makes the final release decision.