Skip to main content
itzseo
HRMS · Phase 31.7

Reward Sunday work
without spreadsheet math.

Auto-trigger on Sunday work or post-shift hours. HR approval queue. Approval credits comp-off balance — applied later as leave. Pending OT expires after 90 days so it doesn't pile up forever.

The flow

From session to leave balance.

1

Auto-trigger

Employee works on Sunday (SUNDAY_WORK trigger) or stays past shift end + threshold (POST_SHIFT_HOURS trigger). The session-builder hook creates an OvertimeEntry with status PENDING. No employee action needed.

2

HR approval queue

OT entries land at /hr/overtime. Filter chips: Pending / Approved / Rejected / Expired. Per-row Approve / Reject. Reject requires reason (validation). Concurrent-approval race protection blocks double-credit.

3

Approval credits comp-off

On approve, the OT minutes convert to comp-off balance via transaction. Employee's comp-off balance increases. Email notification. Audit trail in OvertimeEntry.statusChanges.

4

Apply as leave

Comp-off is just another leave type. Employee uses /me/leave → Apply leave → pick Comp-off → balance check happens like any leave. Standard approval workflow.

5

Expiration

/api/cron/overtime-expire runs daily. PENDING entries older than 90 days flip to EXPIRED. Keeps the queue clean — old OT requests don't haunt forever.

Triggers

Two ways OT auto-detects.

SUNDAY_WORK

Any session on Sunday (or your workspace's weekly off day). Entire session counts as OT. Threshold doesn't apply — even a 30-min session on Sunday triggers.

POST_SHIFT_HOURS

Clock-out time past shift end + threshold (default 60 min). Only the excess minutes count. So a 9-6 shift with 60-min threshold means a 19:30 clock-out triggers OT = 30 min (19:30 minus 19:00).

Comp-off ≠ payment

It's leave, not cash.

Most SEO agencies in India + APAC compensate weekend work with time off, not overtime pay. ItzSEO models that pattern: approved OT credits comp-off balance. Apply as leave later.

Credit ratio

Default 1:1 — 4 hours OT = 4 hours comp-off. Configurable per workspace if your policy is 1.5x or 2x.

Comp-off expires

Configurable. Default: comp-off must be used within 90 days of being earned. Prevents accumulation.

Same workflow

Comp-off is just another LeaveType. Same /me/leave modal. Same approval workflow. Balance shown alongside SL/CL/EL.

Phase 31.7 QA fixes

Safeguards baked in.

Concurrent-approval race protection

If two managers approve the same OT request at the same time, only one transaction commits. The other gets a 409 with ‘already decided’. No double credit.

Auto-expiration cron

Pending OT >90 days = automatically EXPIRED. Idempotent — running the cron twice doesn't double-flip. /api/cron/overtime-expire (bearer-auth).

FAQ

Overtime questions.

Can OT be paid out as cash instead of comp-off?
Not natively. ItzSEO models OT as comp-off only. If your workspace pays OT as cash, use the HR Reports → Overtime CSV export as payroll input — your payroll system handles the cash payout. The OT entry stays in ItzSEO with status APPROVED but you skip the comp-off credit step.
What if an employee disputes an auto-triggered OT entry?
HR can manually reject or edit any auto-triggered OT before it's approved. The OT entry has a comments thread for back-and-forth. The session itself is unchanged — only the OT classification can be edited.
Can comp-off be partial day?
Yes. Comp-off balance is in minutes (or hours, configurable). Apply for a half-day comp-off via /me/leave → Apply leave → Comp-off → half-day toggle.
Does the 90-day expiration also affect approved comp-off?
Comp-off has its own expiration policy (default 90 days from credit date). The 90-day OT expiration only affects pending OT requests — once approved + credited, the comp-off has its own clock.
Can I disable auto-triggers entirely?
Yes. Configure via HR policy → overtime triggers. Set both to disabled and OT becomes manual-only (HR creates the OT entry directly). Useful for senior-IC teams where post-shift hours are expected, not exceptional.
What about leave + Sunday in the same week?
Sunday work still triggers OT regardless of weekday leave. The triggers fire on actual sessions, not week balance.

Overtime, tracked.

14-day trial of the Agency tier.