How Paylocity’s scheduler repeated shifts caused double payroll charges and the shift deduplication logic I implemented