Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Given a role's pay structure, its weekly or annual amount, and a description of its actual duties, determines whether the role is exempt from overtime under the FLSA white-collar exemption — exempt only if it is paid a fixed salary AND that salary is at or above the standard threshold AND the primary duties are genuinely executive, administrative, or professional. Use when someone gives you an employee's pay and job duties and asks whether they are overtime-exempt or overtime-eligible. Not for calculating overtime pay owed, explaining wage-and-hour law in the abstract, or drafting a job description.
.claude/skills/flsa-exemption-test/SKILL.md| Model | Eval pass | Runs |
|---|---|---|
| gemini-3.6-flash | 89% | 9 |
| Model | Lift | Δ tokens | Δ turns | Cases | Verified |
|---|---|---|---|---|---|
| gemini-3.6-flashbest | +26% | +130% | 0% | 23 | 54d ago |
| gemini-3.5-flash | +19% | — | 0% | 27 | 62d ago |
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-11 | ✗→✓ | ▲ Improved | — | — |
| case-10 | ✗→✓ | ▲ Improved | — | — |
| case-15 | ✗→✓ | ▲ Improved | — | — |
| case-01 | ✗→✓ | ▲ Improved | — | — |
| case-02 | ✗→✓ | ▲ Improved | — | — |
Handed a salaried employee and asked whether they owe overtime, the base model reaches for a single shortcut: salaried means exempt. That instinct is wrong on both ends. It calls a salaried assembly worker exempt (their duties are manual), and it calls a well-paid hourly manager exempt (they are not paid on a salary basis at all). And when a role is non-exempt, the base model rarely names why — which is the actionable part.
Exemption from overtime under the FLSA white-collar rules is a three-part test, and a role is exempt only when all three parts pass. Fail any one and the role is non-exempt (overtime-eligible).
You are given one role: its pay structure (salary or hourly), the amount (weekly or annual), and what the person primarily does. Decide whether the role is exempt from overtime. Answer YES only when all three prongs below are satisfied; otherwise answer NO and name the single prong that fails — salary_basis, salary_level, or duties. When the answer is YES, the failed prong is none.
> Why $684 is still the number (as of 2026-07): $684/week is the 2019 rule's standard salary level. The Department of Labor's 2024 rule raised it to $844 (July 2024) and then $1,128 (January 2025), but that rule was vacated nationwide by the U.S. District Court for the Eastern District of Texas in November 2024, restoring the 2019 level as the operative federal threshold. The vacatur is under appeal — re-verify before relying on the figure, and note that some states set higher thresholds of their own.
A role can fail more than one prong at once (an underpaid hourly clerk fails all three). Report the failing prong in this fixed order of precedence and name the first one that fails:
salary_basis (is it even a salary?), thensalary_level (is the salary high enough?), thenduties (do the duties qualify?).Rationale: if there is no salary at all, the salary level is undefined, so salary_basis is the primary defect; duties only become the deciding factor once the pay prongs are both satisfied.
Executive, clearly exempt. A marketing director earns a flat $1,500-a-week salary, runs a team of five, and hires and fires. All three prongs pass (salary basis ✓, above $684 ✓, executive duties ✓).
{"exempt": "YES", "failed_prong": "none"}Salaried but below the threshold. A restaurant assistant manager takes home a flat $620 weekly salary and genuinely manages the floor and the crew. Salary basis ✓, but $620 sits below $684 → salary level fails. Real duties don't rescue an under-threshold salary.
{"exempt": "NO", "failed_prong": "salary_level"}Highly paid, but hourly. A bartender-turned-shift-lead earns $30 an hour and supervises the bar staff. Because pay is hourly, the salary-basis prong fails before amount or duties even matter.
{"exempt": "NO", "failed_prong": "salary_basis"}Salaried, above threshold, but manual duties. A warehouse picker draws a flat $1,100 weekly salary and spends the shift pulling and packing orders by hand, supervising no one. Salary basis ✓ and salary level ✓, but the duties are routine manual work → duties fails.
{"exempt": "NO", "failed_prong": "duties"}Fails everything — report the first. A dishwasher earns $11 an hour and washes dishes. Hourly (basis fails), under threshold (level fails), manual (duties fails). By the precedence order, report the first.
{"exempt": "NO", "failed_prong": "salary_basis"}salary_level.none for a non-exempt role, or name a prong for an exempt one.NO / salary_basis.NO / salary_level.NO / duties.YES / none.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-06 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-11 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-14 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-04 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-13 | pass→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-22 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-10 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-18 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-15 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-21 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-08 | pass→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-17 | pass→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-07 | pass→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-20 | pass→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-09 | pass→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-01 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-02 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-03 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-05 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-12 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-16 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-19 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-23 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted. The headline lift of +26 percentage points is the difference between those two pass rates over the 23 comparable cases.
The per-case answers from this run were removed by the retention sweep, so the case table below shows the verdicts without the text either arm produced. The counts above were recorded at the time and are unaffected. Answers are now kept for 180 days.
| Model | Method | Date | Lift |
|---|---|---|---|
| gemini-3.5-flash | replay | 7/21/2026 | +19% |
| gemini-3.5-flash | replay | 7/21/2026 | +15% |
Other measured skills in the registry, with their headline benchmark lift.