key and a value (any JSON).
Seeded rules:
| Key | Default | Used for |
|---|---|---|
company_name | "Columbia 911 Communications District" | Sidebar subtitle, email from name |
week_start | 0 (Sunday) | Schedule grid anchor |
pay_period_days | 14 | Timesheet pay period length |
ot_threshold_week | 40 | Weekly hours above which count as OT on timesheet |
min_rest_between_shifts_hours | 8 | Rule check (future warning) |
holidays | [] | Array of ISO dates |
Edit a rule
On/app/admin/rules:
- Each row has a key, description, and JSON value input
- Change the value, click Save
- Audit log records the change
"Acme Corp". Booleans: true/false. Arrays: []. Objects: {}.
Add a new rule
At the bottom of the page, use the “Add rule” form. Key + JSON value. Once added, the app may or may not use it depending on whether code checks for that key — adding a rule doesn’t automatically make the app do something new.Common customizations
Change company name
Change company name
Set
company_name to "Your Company, Inc.". Shows up in the sidebar header and future email templates.Start weeks on Monday
Start weeks on Monday
Set
week_start to 1. Affects the This Week strip on Today.Adjust pay period length
Adjust pay period length
Set
pay_period_days to 7 for weekly pay, or 14 (default) for bi-weekly. Future: support semi-monthly via dates.Daily OT (California-style)
Daily OT (California-style)
Future feature — not yet implemented. For now, all OT is weekly-threshold based.
Add holidays
Add holidays
Set
holidays to ["2026-07-04", "2026-12-25"]. Schedule views show these specially (future).Required permission
rules.manage — Admin only by default.