Overview
Red Rover is an absence management system used by PSD to track staff absences and substitute coverage. This skill provides access to absence data for reporting and analysis.
Configuration
- Base URL:
https://connect.redroverk12.com/ - Org ID: 1305 (Peninsula School District)
- Authentication: HTTP Basic Auth + API Key header
- Credentials: Stored in 1Password as "RedRover"
- Rate Limit: 100 requests/minute
Authentication
All requests require both:
Authorization: Basic [base64(username:password)]headerapiKey: [key]header (obtained from organization endpoint)
The organization endpoint returns a dynamic API key that should be used for subsequent requests.
Scripts
All scripts are in skills/redrover-manager/scripts/. Run with bun:
get_organization.js
Fetch organization info and validate credentials.
bun get_organization.js
Returns: Organization ID, name, and API key.
get_absences.js
Fetch raw absence/vacancy data for a date range.
bun get_absences.js <start_date> <end_date> [filled|unfilled|all]
Examples:
bun get_absences.js 2026-01-20 2026-01-27
bun get_absences.js 2026-01-27 2026-01-27 unfilled
Note: Max date range is 31 days.
get_daily_summary.js
Get daily absence summary (all staff) with counts by school, reason, and fill status.
bun get_daily_summary.js [date]
Date options:
today(default)yesterday- Day names:
monday,tuesday, etc. last wednesday,last friday- Specific date:
2026-01-27
get_certificated_summary.js
Get daily absence summary for certificated staff only (Teachers, ESA, CTE).
bun get_certificated_summary.js [date]
Same date options as above. This is the most commonly requested report - focuses on classroom coverage.
get_weekly_summary.js
Get weekly trends and patterns.
bun get_weekly_summary.js [weeks_ago]
Options:
0= this week (default)1= last week2= two weeks ago
API Endpoints Used
Organization
GET /api/v1/organization
Security: Basic Auth
Returns: Array with org info including dynamic apiKey
Vacancy Details (Primary data endpoint)
GET /api/v1/{orgId}/Vacancy/details
Security: Basic Auth + apiKey header
Query Params:
- fromDate: datetime (required)
- toDate: datetime (required)
- filled: boolean (optional - filter filled/unfilled)
- pageSize: int (default 10, max 100)
- page: int (default 1)
Returns: Paginated vacancy/absence data
Common Workflows
"How many absences yesterday?"
bun get_daily_summary.js yesterday
"Show unfilled positions for today"
bun get_daily_summary.js today
# Look at unfilled_positions array in output
"Weekly absence trends"
bun get_weekly_summary.js
"Last week's summary"
bun get_weekly_summary.js 1
Output Format
Daily Summary
{
"date": "yesterday",
"date_iso": "2026-01-26",
"total_absences": 110,
"filled": 75,
"unfilled": 35,
"fill_rate": 68,
"by_school": {
"PENINSULA HIGH SCHOOL": 13,
"GIG HARBOR HIGH SCHOOL": 10
},
"by_reason": {
"SICK LV > 1 SICK": 54,
"OTH PAID LV > PERSONAL": 15
},
"by_position_type": {
"Teacher": 55,
"Paraprofessional": 36
},
"unfilled_positions": [
{
"school": "PENINSULA HIGH SCHOOL",
"position": "MATH",
"employee": "JANE DOE",
"start": "2026-01-26T07:00:00",
"end": "2026-01-26T14:30:00"
}
]
}
Weekly Summary
{
"week": "Jan 20-24, 2026",
"week_label": "this week",
"total_absences": 450,
"daily_average": 90,
"filled": 380,
"unfilled": 70,
"fill_rate": 84,
"peak_day": { "day": "Monday", "count": 120 },
"slow_day": { "day": "Friday", "count": 65 },
"by_day": {
"Monday": 120,
"Tuesday": 95,
"Wednesday": 90,
"Thursday": 80,
"Friday": 65
},
"trends": [
{ "type": "info", "message": "Monday had 120 absences (50%+ above average)" }
]
}
Data Fields
Key fields in vacancy data:
absenceDetail.employee- Employee who is absentabsenceDetail.reasons[0].name- Reason category (SICK, PERSONAL, etc.)location.name- School nameposition.title- Position titleposition.positionType.name- Position category (Teacher, Paraprofessional, etc.)substitute- If present, position is filledstart/end- Absence time rangeneedsReplacement- Whether sub is required
Schools in PSD
Common school names in data:
- PENINSULA HIGH SCHOOL
- GIG HARBOR HIGH SCHOOL
- HENDERSON BAY HIGH SCHOOL
- GOODMAN MIDDLE SCHOOL
- HARBOR RIDGE MIDDLE SCHOOL
- KEY PENINSULA MIDDLE SCHOOL
- KOPACHUCK MIDDLE SCHOOL
- ARTONDALE ELEMENTARY SCHOOL
- DISCOVERY ELEMENTARY SCHOOL
- EVERGREEN ELEMENTARY SCHOOL
- HARBOR HEIGHTS ELEMENTARY SCHOOL
- MINTER CREEK ELEMENTARY SCHOOL
- PIONEER ELEMENTARY SCHOOL
- PURDY ELEMENTARY SCHOOL
- SWIFT WATER ELEMENTARY SCHOOL
- VAUGHN ELEMENTARY SCHOOL
- VOYAGER ELEMENTARY SCHOOL