PTO Calendar Optimizer
A free web app that plans your PTO for you. A CP-SAT solver finds three optimized strategies to choose from.
Vacation planning is a combinatorial problem, so I formulated it and let a solver decide. Each workday gets a binary PTO variable, and CP-SAT maximizes an adjacency-driven objective that rewards bridging holidays, full weeks off, and cheap travel windows. Budget, locked dates, blackout dates, and a monthly cap all come in as hard constraints. The number of vacation blocks K is an exact constraint too, and the app solves for every K from 3 to 15 to trace a Pareto frontier, then picks three strategies off of it: Long Weekends, Balanced (at the knee), and Deep Rest. It supports 15+ countries with automatic holiday detection. You can drag-to-rank holiday priorities, and every plan gets scored against a travel cost index (built from BLS airfare seasonality and holiday-week premiums) and re-scored on six human-aligned 0-100 dimensions. It ships as a FastAPI backend serving a React SPA, in a single Docker container behind Caddy.
Challenges
- Enforcing an exact vacation-block count K with linearized block-start indicators
- Keeping the travel cost signal a tiebreaker (~5% of objective) so it never overrides holiday bridging
- Translating solver objective values into six interpretable plan scores people can compare
Outcomes
- Live at pto.christopherrobertwhite.com, free to use, 15+ countries with automatic holiday detection
- Three optimized strategies per run, picked from a K=3 to K=15 Pareto sweep
- Single-container FastAPI + React deployment behind Caddy