How Scheduling Works
Plenar does not guess your schedule. It recomputes your plan every time something changes. This page explains what Plenar does with your data, why it makes the decisions it makes, and what you can do to influence those decisions.
Plenar in 30 seconds
You give Plenar:
- Tasks with estimates and dependencies
- Team members with availability and skills
- Goals with deadlines and priorities
- Scheduling constraints (no overlap, capacity buffer, lead time)
Plenar gives you back:
- Timeline — start and end dates for every task
- Optimal assignments — who works on what, picked by skill, capacity, and priority (when auto-assignment is enabled)
- Deadline feasibility — goal ETAs showing when each goal is predicted to finish, and whether it ships on time
- Warnings — things it could not satisfy (missed deadlines, skill gaps, dropped nice-to-haves)
Plenar uses a constraint solver to find the best arrangement. It does not use heuristics, round-robin, or first-come-first-served. It finds the arrangement that best satisfies your constraints and objectives simultaneously.
Hard constraints vs. soft constraints
Understanding this distinction is key to understanding why your schedule looks the way it does.
Hard constraints are inviolable. Plenar will never produce a schedule that breaks these. If they are contradictory, the schedule is infeasible (no valid arrangement exists).
| Hard constraint | What it means |
|---|---|
| Dependencies | Task B cannot start before Task A finishes |
| Availability | No work on weekends, PTO days, holidays |
| Capacity | Estimates inflated by the capacity buffer before scheduling |
| No overlap | When parallel work is off, each person works on one thing at a time |
| Project start date | No work before this date |
Soft constraints are preferences. Plenar tries to satisfy them but will violate them if forced to. A schedule with violated soft constraints is still valid.
| Soft constraint | What it means |
|---|---|
| Goal deadlines | Plenar tries to meet P0/P1/P2 deadlines, but will produce a schedule even if it cannot |
| Skill matching | Plenar prefers qualified members, but will assign anyone if necessary (in Partial mode) |
| Load balance | Plenar tries to distribute work evenly, but will overload someone if needed to meet a deadline |
| Stability | Plenar tries not to move imminent work, but will if the alternative is worse |
How priorities work
Plenar uses a two-tier system where meeting goal deadlines always takes precedence over everything else.
Tier 1: Goal compliance
For P0, P1, and P2 goals, Plenar tracks:
- How many goals are late (miss their target date)
- How late the worst goal is (slip in days)
Meeting a P0 deadline is always preferred over meeting all P1 deadlines. P1 deadlines always outweigh P2 deadlines. P3 and P4 goals have target dates for your reference, but Plenar does not actively enforce them.
Tier 2: Secondary objectives
After satisfying goal deadlines as best it can, Plenar optimizes for:
- Skill matching — assign qualified people to tasks
- Makespan — minimize total project duration
- Utilization — minimize idle time
- Load balance — distribute work evenly
- Stability — resist moving imminent work
- Assignee continuity — prefer keeping previous assignees
- Committed milestones — finish in-progress milestones first
Secondary priorities are configurable via scheduling templates (Deadline Driven, Throughput, Team Balanced, Quality First). See Settings.
Any improvement in Tier 1 (goal compliance) always outweighs all possible improvements in Tier 2.
Schedule statuses
Plenar tells you what kind of answer it found:
| Status | What it means | Common cause |
|---|---|---|
| Optimal | Proven best possible. No rearrangement can improve the schedule. | Small projects with few constraints |
| Feasible | A valid schedule, but possibly not the best. This is the normal result for most projects. | Projects with 20+ items |
| Infeasible | No valid schedule exists. Hard constraints contradict each other. | Circular dependencies, impossible assignments |
A common misconception: “optimal” does not mean “all deadlines met.” It means “no better arrangement exists given your constraints.” If you have 3 developers and 6 months of work with a 3-month deadline, the optimal schedule still has late goals — it just proves that no staffing arrangement can do better.
Scheduling templates
Templates control the secondary priorities — what Plenar optimizes for after meeting deadlines.
| Template | What it optimizes | When to use it |
|---|---|---|
| Deadline Driven | Meeting deadlines, strong skill matching | Default. Works for most projects. |
| Throughput | Minimizing total project duration | When shipping fast matters more than specific dates |
| Team Balanced | Even work distribution | When you want fairness or want to avoid burning out specific people |
| Quality First | Maximizing skill-to-task fit | Specialized work where the right person matters more than speed |
Lead time stability
Plenar does not treat all tasks equally when deciding what to move. Tasks approaching their scheduled start resist rescheduling:
- Already started — very strong resistance. Effectively pinned.
- Within lead time (default: 5 days) — strong resistance. Will only move if the alternative is significantly worse.
- Within 2x lead time — moderate resistance.
- Beyond 2x lead time — free to move.
This prevents the schedule from shuffling imminent work every time someone updates an estimate.
Auto-assignment
When enabled, Plenar decides who works on each unassigned task. It picks the arrangement that best satisfies your constraints and priorities across the entire team.
Three skill matching modes control eligibility:
- Required — strict. A member must have all required skills. No match means the task is not scheduled.
- Partial — always schedules. Prefers skill matches but falls back to any available member.
- Preferred — like Partial, plus optimizes for preferred skill matches as a tiebreaker.
Once Plenar assigns someone, the assignment is stabilized. Subsequent plans keep the same assignment unless you trigger a Recompute.
Why schedules change
Your plan is a function of your inputs. When inputs change, Plenar recomputes your plan. Common triggers:
- Estimate revised — a task takes longer or shorter. Downstream tasks shift.
- Task completed — dependent tasks can now start. Plenar fills the freed capacity.
- Dependency added/removed — changes which tasks can run in parallel.
- Availability changed — PTO, sick leave, on-call. Tasks on those days shift.
- Scope changed — new tasks added or nice-to-haves dropped. Plenar re-balances.
- Priority changed — a goal becomes P0. Plenar reorganizes to meet that deadline.
Every change goes through the change impact preview. You always see what moves and why before committing. See Preview & Apply for the full explanation.