Appearance
GE-61: Workforce Scheduler — "When We Work" Replacement
Summary
A full-featured workforce scheduling and management module built as an add-on to G2 Elite. Replaces the When I Work app that The Farm League currently uses for staff scheduling (coaches, helpers, field crew, maintenance). Rob wants this because his staff is tripling with the new facility, and it must interface with QuickBooks so his wife can process payroll.
Epic: GE-61 (19 child features: GE-62 through GE-79) Status: All Idea Origin: SCRUM-27 (When We Work Functionality)
Child Features
Foundation
| Key | Feature | Purpose |
|---|---|---|
| GE-62 | Data Model & Schema Design | Tables: staff_members, shifts, locations, positions, time_entries, break_records |
| GE-75 | Role-Based Permissions & Onboarding | Admin, Location Manager, Supervisor, Staff roles + self-service onboarding |
| GE-79 | Web Admin Dashboard & Navigation | Primary management interface — today's snapshot, schedule views, request queues |
Core Scheduling
| Key | Feature | Purpose |
|---|---|---|
| GE-63 | Shift Scheduling Core (Drag-and-Drop) | Calendar builder (day/week/month), drag to create/move/resize shifts, shift templates |
| GE-64 | Auto-Scheduling Engine | Intelligent fill based on availability, qualifications, fairness rules, overtime limits |
| GE-65 | Open Shifts & Self-Service Pickup | Post unassigned shifts, qualified staff claim them, FCFS or manager-approved |
| GE-66 | Shift Swaps & Trade Requests | Staff exchange shifts with manager oversight, qualification validation |
| GE-70 | Availability Management & Time-Off | Staff set recurring availability, request time off, manager approval workflow |
Time & Attendance
| Key | Feature | Purpose |
|---|---|---|
| GE-67 | Time Clock, GPS & Attendance | Mobile clock-in/out with GPS, geofencing, terminal mode, real-time attendance |
| GE-68 | Break Tracking & Compliance | Paid/unpaid breaks, automated deductions, state labor law compliance |
Communication
| Key | Feature | Purpose |
|---|---|---|
| GE-69 | Team Messaging & Communication Hub | 1:1 chat, group messaging, shift-context notifications, announcements |
| GE-71 | Shift Tasks & Team Task Lists | Checklists attached to shifts (e.g., field prep: chalk lines, set bases) |
Operations & Reporting
| Key | Feature | Purpose |
|---|---|---|
| GE-72 | Labor Cost Reporting & Analytics | Real-time labor costs, overtime tracking, budget vs actual, forecasting |
| GE-74 | Multi-Location & Department Management | Link to existing facilities, per-location schedules, staff location assignments |
| GE-77 | Seasonal Suspension & Account Management | Pause during off-season, retain data, auto-suspend by season dates |
Integrations
| Key | Feature | Purpose |
|---|---|---|
| GE-73 | Payroll Integration (QuickBooks, ADP, Gusto) | Sync timesheets to QuickBooks, map staff to employees, automatic hours sync |
| GE-76 | Mobile App (iOS & Android) | Staff schedule view, clock in/out, shift pickup, swap requests |
Differentiator
| Key | Feature | Purpose |
|---|---|---|
| GE-78 | Game-Linked Shift Automation | Killer feature — auto-generate staff shifts from game schedule (e.g., game created → umpire + scorekeeper shifts auto-created) |
Considerations & Gaps
Architecture Decisions Needed
Standalone app vs module? GE-81 (in the Inventory epic) mentions "standalone repository with shared auth." The Workforce Scheduler needs the same decision — is it a separate Cloudflare Workers project, or new endpoints in the existing g2-elite-backend? Given its scope (19 features), a separate project likely makes sense.
Database isolation. Does this get its own database, or does it share the org DB? Workforce data (shifts, time entries, payroll) is sensitive and high-volume. A separate schema or database would be cleaner.
Mobile integration. GE-76 says "integrated into the existing Youth Sports Manager mobile app." This means the G2 Elite Mobile app needs a workforce tab or section, not a separate app. The current app has no concept of staff-specific views beyond the basic StaffHomeScreen.
Feature Gaps
No mention of overtime rules. GE-68 covers breaks but there's no explicit feature for overtime calculation rules (1.5x after 40 hours, daily overtime in certain states). GE-72 mentions overtime tracking in reporting but not the rule configuration.
No pay rate management. GE-62 mentions
hourly_rateon staff_members but there's no feature for managing pay rates, rate changes over time, different rates for different positions, or holiday pay multipliers.No volunteer management. Rob uses both paid staff and volunteers. Volunteers don't need time clock or payroll but do need scheduling and task assignment. The system should distinguish between paid and volunteer roles.
No conflict detection with parent/coach roles. A staff member might also be a parent or coach. When auto-scheduling shifts (GE-78), the system should check for conflicts with their child's game schedule.
No Expo push notification integration for staff. GE-69 describes a messaging hub but doesn't mention how it connects to the existing push notification infrastructure in the mobile app.
Dependencies
QuickBooks integration (GE-73) depends on GE-55 (Integrations Service). The existing web app already has QuickBooks OAuth and invoice creation — the workforce module needs to extend this for timesheet sync.
Game-linked automation (GE-78) depends on the scheduling engine. The existing game scheduling system creates games — the workforce module needs to hook into game creation events to auto-generate shifts. This requires an event system or webhook.
Facility data (GE-74) — the existing facilities table has location data but no geofencing coordinates. GE-67 (GPS/geofencing) needs latitude/longitude added to facilities.
Scope Concerns
This is effectively a standalone SaaS product. 19 features covering scheduling, time tracking, payroll integration, messaging, analytics, and mobile — this rivals When I Work, Homebase, and 7shifts. Building this in-house is a significant investment. Consider whether a phased approach focusing on the differentiator (GE-78: game-linked automation) + basic scheduling would deliver 80% of the value with 20% of the effort.
Recommended MVP: GE-62 (schema) → GE-63 (basic scheduling) → GE-67 (time clock) → GE-78 (game-linked automation) → GE-73 (QuickBooks sync). This gives Rob staff scheduling tied to games with time tracking and payroll — the core of what he needs.