PowerSolver Docs
Back to Wizard
This page belongs to the full documentation. You don't need it to plan: back to the essentials.

PowerSolver pilot guide — the consultant's field manual

Who this is for: any consultant, including a junior one, who meets a customer to understand their planning problem, collects their data, prepares the PowerSolver workbook, validates it and runs the pilot. How to use it: read §1-§3 once. In the customer meeting, follow §4 (the interview script) with §6 open for the customer's problem type. Before any solve, run §8 (validation) and §11 (acceptance gate). After the pilot: hand the tool over with HAND_OVER_CUSTOMER.md.

Everything below describes what PowerSolver does today (wizard, workbook, engine as released in October 2026). What it does not do is written as such (§2.4, §13). Never promise anything that is not in this guide.


Contents

  1. PowerSolver in one page
  2. What to say about limits
  3. The pilot, step by step
  4. The customer interview — script
  5. Decision trees
  6. Problem types — what to ask and collect for each
  7. Data discovery and the Excel inventory
  8. Filling the workbook
  9. Validating the data before planning
  10. Exceptions and edge cases
  11. Troubleshooting
  12. Acceptance gates
  13. Known gaps and escalation

1. PowerSolver in one page

A plan is described by one Excel workbook (or the equivalent problem.json file). The consultant's job is to fill it correctly. Six notions are enough:

NotionMeaningExample (job shop)Example (school)Where in the workbook
Items to planThe things that get planned, one row eachoperationslessonsSetup row Items to plan + the items sheet (step 2)
DecisionWhat PowerSolver decides for each item. Kind resource (who/where), time (when) or sequence (in what order on a resource, e.g. a route)machine (resource), slot (time)slot (time), room (resource)Setup rows Decision
Options listWhat a decision chooses from, one row eachmachines, slotsslots, roomsone sheet per list (step 3)
Reference listData the rules read but PowerSolver never decides—teachers (already attributed by the principal)Setup row Reference list + its sheet (step 3)
RuleMust (never broken: a plan breaking one is unusable) or Wish (followed as much as possible, with a weight)"a machine does one operation at a time""a subject at most once a day"Rules sheet (step 4)
PinA decision already taken for some items (e.g. already done); PowerSolver plans the others around itoperations already runningexams already satcolumns pinned + the decided values on the item (step 5)

Pin or reference list? A pin fixes the decisions of some items; a reference list holds something that is never decided for any item. Details and examples: CONCEPTS_GUIDE.md §5b. A pin fixes all decisions of the item at once (machine and slot).

The workbook (built for every demo in powersolver-demos/*/input/*.xlsx; the wizard's step 1 Download workbook template gives the current plan or a worked example):

SheetStepContent
Setup1problem type, plan name, items list, decisions, reference lists, time limit
one sheet per list, named exactly like the list in Setup2, 3one row per item / option, id column first
Rules4one row per rule
How to fill—what each sheet and column holds; never imported

The wizard (https://planning.planningpowertools.com, sign-in required): step 1 Load a plan from Excel, then Fill all steps now (or step by step), step 7 Can this work? (checks the data before planning), Plan it, then the Results page (Check before you use it, Rules & score, all items, Changes, Export to Excel).

The 19 rules (exact settings: RULE_REFERENCE.md):

Kind (as named in step 4)Engine idTypical customer sentence
Everything gets a valueunassigned_count"every job must be planned"
No double-bookingno_conflict"a machine does one thing at a time", "a class is in one lesson at a time"
Capability must matchskill_match"only certified technicians", "science in a lab"
Specialised options are reservedresource_exclusivity"keep the labs for science"
Balance the loadload_balance"share the work evenly"
No repeat on the same dayno_subject_repeat_per_day"maths at most once a day per class"
Grouped items share a valuesame_value_in_group"the two halves of a crew start together", "language groups at the same time"
Never use protected optionsprotected_slot"never at lunch", "not on a server that is down"
Respect unavailabilityresource_unavailable"not when the person is on leave", "not when the room is closed"
Stay within capacitycapacity"max 40 hours", "CPU not overbooked"
Within the allowed time windowtime_window"not before the material arrives, not after the due date"
Prerequisites come firstprecedence"survey before installation", "op 1 before op 2"
Minimise costcost"cheapest staff first"
Honour preferencespreference"keep the usual technician", "no nights for those who asked"
Minimise a numberminimize_property"as little overtime as possible"
Minimum restmin_rest"11 hours between two shifts", "no two operations for a surgeon without 1 h break"
Limit per periodperiod_limit"max 10 hours a day", "max 48 hours a week", "max 2 nights a week"
Days in a rowmax_consecutive_days"no more than 5 days in a row"
Enough people per time slotmin_coverage"3 cashiers at noon", "2 nurses every hour" (the plan places the shifts where the demand is)

2. What to say about limits

Say these at the first meeting. They are facts of the product, not excuses.

2.1 What PowerSolver does

  • Decides one to four things per item (who, when, where, with whom) or the order of items on a resource (routes).
  • Checks the data before planning (Can this work?) and tells, in plain words, when a valid plan is impossible and why (not enough rooms, a chain of operations that cannot fit before its due date, a teacher given more hours than their service, …).
  • Replans: keeps what is done (pins), moves as little as possible (wishes on the previous values), shows exactly what changed (Results → Changes; Compare Solutions for several successive plans).

2.2 Operating limits

LimitValueWhat happens beyond
Rows per list5,000the engine refuses the plan ("A list is too large for the planner")
Time limit per plan600 srefused ("A planner setting is not valid")
Plans computed at the same time on one server4the 5th gets "The planner is busy with other plans" (retry in a minute)
Typical timesa few hundred items: seconds to a minute; 500-1,000 items: 2-5 minutes for a polished plan

2.3 Honest statements

  • PowerSolver finds a very good plan, not a proven optimum. Promise: valid, measurably as good or better, much faster to make and to change.
  • Two runs can give two different, equally valid plans (the search stops on time).
  • "No valid plan found in a quick plan of 20 s" never means impossible: only a red Can this work? verdict does.

2.4 Needs PowerSolver does not cover today — check every customer rule against this list

Customer needStatusWhat you can do
Consecutive periods (a 2-hour lesson in two 1-hour slots, a job spanning several slots)not supportedmake the slot as long as the item (2-hour slots), or split the item and accept separate placement
Daily / weekly maximum per person ("max 6 h a day", "max 2 nights a week")supportedperiod_limit (period of 1 day or 7 days; a month is not a fixed number of days: use 28 or 31, or capacity over the whole plan)
Minimum rest, "no more than 3 in a row"supportedmin_rest (hours between two items), max_consecutive_days (days in a row)
Gaps in a day (idle periods between two lessons)not supported—
Comparing two numbers (seats ≥ pupils, load ≤ truck volume per trip)only by categoryencode categories as capabilities (seats_200, seats_400) and skill_match; or a total via capacity
Travel time between assignmentsonly in sequence (route) plans with computed times—
Several people solving at the same timeup to 4 plans at once per server
Choosing a substitute among a pool and keeping others fixed with a pin on one decision onlya pin fixes all decisions of the itemmake the open choice a decision, pin the items whose choice is made

Any rule that does not fit is written down in the pilot report as a limitation, never silently dropped.


3. The pilot, step by step

#StepDurationWhoOutput
0Qualification call45 minsales + consultantgo / no-go: problem fits §2? a real past period with data exists?
1Demo on their industry30 minconsultanta demo workbook of their type (§6) loaded with Fill all steps now, solved, Results shown
2Interview workshop (§4)2 × 2 hplanner + decision makerinterview sheet complete; rules list (must / wish / ranking); success criteria signed
3Data request and inventory (§7)3-5 dayscustomer data contactevery file received, inventory table filled
4Workbook build (§8)1-3 daysconsultantworkbook complete; §9 checks passed; gate 1 (§12.1)
5First plan½ dayconsultantCan this work? green or amber; first valid plan
6Review session 12 hplannerevery remark classified: data fix, rule, weight, limitation
7Iterate3-5 daysconsultantsecond plan; comparison with the customer's own plan
8Live replan session2 hplanner + decision makera real change (absence, breakdown, rush order) replanned live; Changes tab shown
9Results review and handover1-2 hdecision makerpilot report; HAND_OVER_CUSTOMER.md checklist

Success criteria — agree 3 or 4 in writing at step 2: (1) every must-follow rule holds on the real period (0hard); (2) on their top-ranked wishes, PowerSolver's plan is at least as good as theirs; (3) full plan in under N minutes, replan in under M; (4) the planner would publish it with fewer than K manual corrections.

Pilot report: the problem in their words and volumes; each rule as modelled (sentence + rule kind) and the rules that could not be modelled; results per success criterion; their plan vs PowerSolver's, rule by rule; limitations met; proposal.


4. The customer interview — script

Run it with the person who makes the plan today, and the decision maker for parts A and J. Write the answers in the interview sheet (§4.11). Each question says why it matters and what it becomes in the workbook.

4.1 Part A — the problem (15 min)

#AskWhyGood answer looks likeBecomes
A1"What plan do you make today? Show me the last one."Anchors everything on reality, not on an ideal"the weekly machine schedule, here is last week's Excel"problem type (§5.1), baseline
A2"How often, and for what period?"Defines the planning horizon and the time grid"every Friday, for next Monday-Friday, in 2-hour slots"the time options list
A3"Who makes it, how long does it take, what is painful?"The pain is the success criterion"Paul, one day a week; rush orders force a full redo"success criteria
A4"What makes a plan good? What makes it unacceptable?"Separates must from wish early"late deliveries are unacceptable; overtime is bad but possible"must / wish
A5"What changes after the plan is published, and how often?"Replanning needs"a machine breaks once a week; rush orders twice a week"replan scenario, pins
A6"What do you do today when it cannot all fit?"Tells you what to do with unplanned items"we subcontract", "we push to next week"priority / soft rules

4.2 Part B — the items to plan (20 min)

#AskWhyBecomes
B1"What is one 'thing' you place in the plan? A job, a lesson, a shift, an operation, a visit?"The item granularity: one row per thing placed onceSetup Items to plan
B2"How do you identify each one? Is that id stable from week to week?"Ids must be unique and stable (pins and comparisons rely on them)id column
B3"What does each one need to be done? A skill, a machine type, equipment, a room type?"Feeds Capability must matcha needs column (text or comma list)
B4"How long does it take? Always the same?"Duration; if items are longer than one slot, see §2.4duration (ISO PT2H or the template's unit)
B5"When can it start at the earliest, and when must it be finished?"Time windowsearliest, due (date-times)
B6"Does it depend on another item being done first?"Precedence chainsdepends_on (id or comma list of ids)
B7"Do some items belong together (same crew, same class, same order)?"Groups for no-double-booking or same-value rulesgroup column(s)
B8"Are some more important? What happens if one is not planned?"Priority, soft rulespriority, weights
B9"Is anything already decided or already done?"Pinspinned + decided values
B10"Who or what is already fixed for each item and never chosen by the plan?"Reference lists (teacher already attributed, technician promised)a column naming the fixed resource + a reference list

4.3 Part C — the decisions (10 min)

#AskWhyBecomes
C1"For each item, what must be decided: who, when, where, with whom?"One decision per answer, 1 to 4Setup Decision rows
C2"Is the order on a resource what matters (a route, a sequence on a machine), or only the assignment?"Sequence vs resource/timeKind sequence vs resource/time
C3"Among these, is any already decided for every item?"That is a reference list, not a decisionSetup Reference list

4.4 Part D — the options lists (20 min)

For each decision: "List every possible option." Then per option:

#AskWhyBecomes
D1"What can it do / what does it offer?"Capabilitiesskills / capabilities / offers (comma list)
D2"When is it not available? Planned leave, maintenance, closures?"Unavailabilitya list of unavailable slot codes, e.g. Mon-AM, Tue-PM
D3"How much can it take in the period?"Capacitya number (capacity, max_shifts, cpu)
D4"Is it reserved for some items only?"Specialised options are reservedsame capability column
D5"Does it cost something per item or per hour?"Cost rulerate / hourlyRate
D6(time options) "What are the slots: start, end, day, any never-use slot (lunch)?"Time gridstartTime, endTime, day, a yes/no protected column

4.5 Part E — reference lists (10 min, only if C3 or B10 answered yes)

"For each fixed person or thing: when are they away? What can they do? How much can they take?" These columns are read by Respect unavailability, Capability must match and Stay within capacity through resource_property. If the data itself breaks one of them (a teacher given more hours than their service), Can this work? says so before planning.

4.6 Part F — the rules (40 min)

  1. Ask: "List every rule a plan must follow — things you would never publish." Write them in their words.
  2. Ask: "List what makes a plan better — your wishes."
  3. For every rule, read it back as a PowerSolver sentence and the rule kind (§1 table): "No two operations on the same machine at the same time — correct?"
  4. For every must, ask the publication test: "Would you publish a plan that breaks it once?" If yes, it is a wish.
  5. For every rule, ask which column holds the information. A rule without data cannot be checked: add the column to the data request.
  6. For rules that do not fit any kind: check §2.4; write it down as a limitation with the customer, never drop it.

4.7 Part G — ranking the wishes (10 min)

"If two wishes conflict, which wins?" Order them; then give weights that keep the order with margin (e.g. 1, 3, 10). Let the planner decide the order, not the consultant. In replanning, "keep the previous value" wishes usually get 2-5 (demo 18: keep machine 3, keep time 2).

4.8 Part H — exceptions (15 min)

Use §10 as a checklist: holidays, partial availability, subcontracting, overtime, emergency items, items that may be left out, one-off events.

4.9 Part I — volumes and periods (5 min)

Number of items, options per decision, reference rows; planning horizon; how often they replan. Check against §2.2.

4.10 Part J — the baseline and success criteria (10 min, with the decision maker)

"Give us the plan you actually made for this period." It becomes the comparison (§11.4). Then write the 3-4 success criteria (§3).

4.11 The interview sheet (copy it into the meeting notes)

FieldAnswer
Problem type (§5.1)
Planning period and slot length
Items to plan (name of the list), count, id source
Decisions (id, kind, options list), counts
Reference lists
Must rules (customer words → rule kind → columns)
Wishes, in order, with weights
Pins / already decided
Exceptions (§10)
Rules that do not fit (§2.4)
Baseline plan received?
Success criteria (signed)
Data contact, delivery date

5. Decision trees

5.1 Which problem type?

Are items placed in an ORDER on each resource (routes, tours, a machine's job sequence with travel/set-up)?
├── yes → vehicle-routing (decision of kind "sequence")
└── no → What is decided?
    ├── a time AND a room/place for each item, groups that must not clash → school-timetabling or conference-scheduling
    │      (a school: classes, teachers, subjects;  a conference: sessions, speakers, tracks)
    ├── a person for each shift/position (the shifts are given) → employee-rostering
    ├── a machine AND a time for each operation, routing order → job-shop-scheduling
    ├── a technician AND a time for each job at a site → maintenance-scheduling
    ├── a server/host for each workload, capacities → cloud-optimization
    ├── a person (and possibly a time) for each task, skills → task-assignment
    └── none of these fits → generic (same engine, no type-specific form fields)

The problem type changes only the wizard's form fields and labels; the rules and the engine are the same for all.

5.2 Resource, time or sequence?

Is the decision "when"?                       → Kind = time      (the options list has startTime, endTime)
Is it "who / what / where" (no order)?        → Kind = resource
Is it "in what order on each vehicle/machine"? → Kind = sequence (one per plan at most; options = vehicles/machines)

5.3 Decision, pin or reference list?

For a column such as "technician" or "teacher":
Is it chosen by the planner for at least some items?
├── no, never chosen, for any item          → reference list (+ a column on the item naming it)
└── yes
    ├── for every item                       → decision
    └── for most items, some already fixed   → decision + pin those items (pins fix ALL their decisions)

5.4 Must or wish?

Would the customer publish a plan that breaks it once?
├── never        → Must (hard). Then check: does the data allow it? (§9.3)
└── yes, if needed → Wish (soft), with a weight from the ranking (§4.7)

5.5 Can a rule be modelled?

Find the rule kind in §1 whose sentence matches → is the needed column in the data?
├── yes → write the Rules row (§8.4)
└── no column → add it to the data request
No kind matches → §2.4 → workaround agreed with the customer, or written down as a limitation

6. Problem types — what to ask and collect for each

The wizard offers 9 problem types. For each: the columns its form template asks for (mandatory ones in bold: an import without them is refused with "Required column … is missing"), a model verified on a demo, the specific questions, the usual rules, and the traps. Any extra column is accepted and kept ("new" column) — rules can use it.

The template columns come from PowerAdmin (step 2 = items, step 3 = options). duration is labelled hours in the form; the engine reads ISO durations (PT2H, PT55M) natively and the import accepts them. Use ISO durations to avoid any ambiguity (§13).

6.1 Job shop — job-shop-scheduling (demos 09, 18)

Content
Template columnsitems: id, name, duration, skills · options: id, name, capacity, skills
Verified model (demo 18)items operations (order, part, customer, operation number, needs, duration, earliest, due, depends_on, ship_early_by); decisions machine (machines: capabilities, down_slots) and slot (slots: startTime, endTime, code)
Askrouting of each part (ordered operations); which machines can do which operation; maintenance and breakdown slots; material arrival; promised dates; key accounts; shift pattern
Usual rulesEverything gets a value ×2; No double-booking (machine + slot); Capability must match (needs → capabilities); Respect unavailability (machine down_slots); Prerequisites come first (depends_on, slot startTime); Within the allowed time window (earliest → due, must); same with ship_early_by (wish)
Trapsan operation longer than a slot (§2.4); depends_on naming an id that does not exist; due dates before the material arrives (Can this work?: EMPTY_WINDOW); routing chains that cannot fit (CHAIN_TOO_LONG)

6.2 School timetabling — school-timetabling (demos 01, 12)

Content
Template columnsitems: id, name, duration, skills, priority · options: id, name, capacity; time slots: id, name, startTime, endTime
Verified model (demo 12)items lessons (class, level, subject, teacher, pupils, room_need, daily_group, lv2_block); decisions slot (time) and room; reference list teachers (teaches, service_hours, unavailable, wished_off)
Askthe weekly curriculum per class; teacher attribution (fixed or to decide?); language groups taught in parallel; rooms and what they offer; teachers' days away and wishes; lunch and protected periods
Usual rulesNo double-booking per pupil group, per teacher, per room; Respect unavailability (teacher, fixed); Capability must match (room_need → offers; subject → teaches); Stay within capacity (service_hours); Grouped items share a value (language block); No repeat on the same day; wishes: home room, wished half-days off
Trapsa part-time teacher present fewer days than the hours of a once-a-day subject; parallel groups taught by the same teacher; a whole class and a half group at the same time (use pupil groups 6A:all, 6A:esp)

6.3 Conference scheduling — conference-scheduling (demo 14)

Content
Template columnsitems: id, name, duration, skills, priority · options: id, name, capacity
Verified modelitems sessions (track, speaker, kind, needs, earliest, latest); decisions slot, room (offers, closed); reference list speakers (unavailable)
Asktracks and which tracks must not overlap; keynotes; speakers' presence days; room equipment and seats; workshop parts in order
Usual rulesNo double-booking (room+slot; speaker; track); Capability must match (needs → offers); Respect unavailability (speaker fixed; room closed); time window (keynote opens the day); precedence (part 1 before part 2); wishes: track keeps its room, speaker's preferred day
Trapsone track with as many sessions as slots (AT_RISK, 100 %); a room column closed left empty for every room (now kept as empty)

6.4 Employee rostering — employee-rostering (demos 05, 15)

Content
Template columnsitems: id, name, startTime, endTime, duration, skills, priority, deadline, location, demand · options: id, name, availability, skills, capacity, hourlyRate, location
Verified model (demo 15)items positions (ward, role, shift, date, needs, groups, staffing); decision staff (role, qualifies, contract, max_shifts, on_duty, leave, asked_off, prefers)
Askevery position to staff per day and shift (one row per person needed); qualifications; contracts (max shifts in the period); leave; requests; agency staff rules; rest after nights
Usual rulesEvery position staffed; Capability (role/ward/skills; on duty that day); Minimum rest (11 h between two shifts); Limit per period (48 h a week); Days in a row (at most 3); Stay within capacity (max_shifts); wishes: hospital staff before agency, requested days off, no nights for those who asked
Trapsa shift needing 3 people = 3 rows; daily/weekly maxima (§2.4); the template asks for availability on people — if the customer gives leave as dates, convert to the slot/day codes the rule compares

6.5 Maintenance scheduling — maintenance-scheduling (demos 07, 13)

Content
Template columnsitems: id, name, location, duration, skills, priority, deadline, startTime, endTime · options: id, name, location, skills, capacity, availability, hourlyRate
Verified model (demo 13)items jobs (client, zone, skill, type, duration, priority, latest, target_by, preferred_tech); decisions technician, slot (half-days); technicians: zones, skills, status, absent
Askjobs of the period (planned and breakdowns); skills and zones of technicians; absences; client access windows; surveys before installations; key-account preferred technician; subcontractors
Usual rulesNo double-booking (technician per half-day); Capability (skill; zone); Respect unavailability (absent); time window (access, deadline); precedence (survey first); wishes: breakdowns early, usual technician, own staff before subcontractors
TrapsMonday absences making the week impossible (NOT_ENOUGH_PLACES on "one job per half-day"); jobs longer than a half-day

6.6 Cloud optimisation — cloud-optimization (demos 08, 17)

Content
Template columnsitems: id, name, duration, skills, priority · options: id, name, capacity, skills
Verified model (demo 17)items vms (service, tier, vcpu, memory_gb, needs); decision server (cpu, memory_gb, features, down)
Askeach workload's CPU and memory; required features (GPU, compliance); replicas that must be on different servers; servers down or in maintenance
Usual rulescapacity ×2 (cpu, memory_gb with load columns); Capability (features); No double-booking by service (replicas apart); Never use protected options (server down); wish: keep special servers free
Trapsreplicas count > servers with the feature (impossible); units mixed (GB vs MB)

6.7 Task assignment — task-assignment (demos 04, 11, 16)

Content
Template columnsitems: id, name, duration, priority, skills, deadline, startTime, endTime, location, demand · options: id, name, skills, capacity, hourlyRate, availability, location
Verified model (demo 16)items packages (workstream, phase, needs, home_squad, depends_on, earliest, latest); decisions squad, week; squads: skills, off_weeks
Askthe work items and their skills; dependencies; milestones; teams and their capacity and holidays; preferred team per workstream
Usual rulesNo double-booking (squad per week); Capability; Respect unavailability; precedence; time window; wish: workstream keeps its lead team
Trapsa team needed by more items than it has weeks; dependency loops (DEPENDENCY_LOOP)

6.8 Vehicle routing — vehicle-routing (demo 06)

Content
Template columns (sequence mode)items: id, name, location, duration, priority, demand · options: id, name, startTime, capacity, location
Verified modelitems visits (location, required_skill, service_duration, time windows, priority); decision itinerary (kind sequence) on vehicles (skills, startTime, endTime, capacity); computed values position, startTime, endTime along the route (Setup rows Computed value)
Askvisits and service times; time windows; vehicle shifts and capacity; skills needed at the customer
Limitstravel times between locations are not computed from addresses; the demo sequences visits with service durations only. The rules on sequence plans are limited (Everything gets a value, Minimise a number); check §2.4 before promising routing optimisation

6.9 Generic — generic

Use it when no type fits. Template columns: items id, name, duration, priority, skills · options id, name, skills, capacity, hourlyRate, availability, location. Everything else is identical. Demos 19 (exams: 3 decisions) and 20 (operating theatre: 4 decisions) use their own type names and show models with 3 and 4 decisions.


7. Data discovery and the Excel inventory

7.1 The inventory table (fill one row per data element before building anything)

Data elementBusiness meaningSource systemOwnerFormat todayGranularityRefreshMandatory?Workbook sheet.column
Operation idone routing step of a work orderERPproduction plannertext PO-4102-1per operationdailyyesoperations.id
Needsmachine capability requiredERP routingmethods engineertext millingper operationon changeyes (rule)operations.needs
Machine downtimeplanned maintenance slotsmaintenance toolmaintenance leaddatesper half-dayweeklyif the rule is usedmachines.down_slots

Mark each element mandatory (a rule or the template needs it), optional (improves the plan) or not needed.

7.2 Questions about existing files

  1. "Where does this information live today? Excel, ERP, HR tool, paper?" — ask to see the file.
  2. "Who updates it, and how often?" — the owner becomes the handover contact for that sheet.
  3. "Is there one row per item, or one row per something else?" — e.g. one row per order with "3 operations" in a cell must become 3 rows.
  4. "Are ids stable? Do two files use the same ids?" — joins between files fail on ids written differently (T01 vs T1).
  5. "Are there hidden rows, merged cells, colour codes that carry meaning?" — colours and merged cells are lost on import; turn them into columns.
  6. "Is the file complete for the period, or is part of it in someone's head?" — write the missing part down now.

7.3 Reusing customer files

  • A customer sheet can be imported as it is in steps 2-3 when its first row holds the column names and each row is one item. Column names can be the template's field names or labels (case and spaces ignored); unknown columns are kept as extra properties.
  • Prefer copying the columns into the PowerSolver workbook (one sheet per list, named like the list), so that one file carries the whole plan and Fill all steps now works.
  • Keep the customer's original file untouched; record in the inventory which columns were copied and transformed.

8. Filling the workbook

Start from Download workbook template (wizard step 1) — it gives a worked example (3 jobs, 2 technicians, 2 slots, 5 rules) when no plan is loaded — or from the demo workbook of the customer's type (§6), and replace the data.

8.1 Setup sheet, row by row

Columns: Part, Name, Label, Decision, Kind, From, Formula. First row = these headers.

PartNameLabelDecisionKindMandatoryNotes
Problem typejob-shop-schedulingyesone of §6; another value works but shows its own card
Plan nameWeek 48 machining planno
Items to planoperationsOperationsyes (one row)Name = the items sheet's name; letters, digits, _, starting with a letter
DecisionmachinesMachinesmachineresourceyes (1-4 rows)Name = options sheet; Decision = the id rules use; Kind resource / time / sequence
DecisionslotsTime slotsslottime
Reference listteachersTeachersno
Computed valuestartTimesequence onlyFrom previous, host; Formula previous?.endTime ?? host.startTime (copy demo 06)
Time limit120recommendedseconds, 1-600
Construction / Search / Sort items byFIRST_FIT …noleave out unless advised

Bad: Items to plan | Operations list (space: refused); two Items to plan rows; a Decision without Kind (read as resource — wrong for a time decision: the calendar views need time).

8.2 List sheets (steps 2 and 3)

  • Name the sheet exactly like the list in Setup (operations, not Operations 2026).
  • First row = column names; first column = id, unique in the sheet, never empty.
  • One row per item / option. No merged cells, no subtotal rows, no blank rows in the middle.

Value formats (the import converts exactly as the engine reads):

Kind of valueWriteGoodBad
Textas ismillingMilling (trailing space and capital: does not match milling)
Numbera number cell or 7.5 / 7,54040 h
Yes / noTRUE / FALSE (also yes/no, oui/non, 1/0)TRUEx in some rows, empty in others
Date-time2026-11-23T06:00 or an Excel date cell2026-11-23 06:0023/11 (no year, no time)
DurationISO-8601PT2H, PT55M2h, 120 without stating the unit
Listcomma-separated in one cellmilling, turningone value per column (skill1, skill2)
Reference to another rowits idMA-2the person's name Mme Roux

Empty cells: an empty cell means "no value" — an empty needs = no requirement; an empty unavailable = always available. A column with a name but no value in any row is kept, empty, on every row (a rule may read it).

8.3 Pins and replanning columns

For an item already decided: pinned = TRUE and one column per decision id with the decided option id (e.g. machine = F2, slot = Mon-3). All decisions of a pinned item must be filled. To keep changes small in a replan, add previous_machine, previous_slot and wishes Honour preferences (entity_property previous_machine, value_property code) — as demo 18 problem.wednesday.

8.4 Rules sheet (step 4)

Columns: Rule, Must / Wish, Weight, Kind, then one column per setting. Write it in the wizard (step 4) and use Download rules (Excel), or copy the Rules sheet of the matching demo. Example (job shop):

RuleMust / WishWeightKindvariable_fieldfieldsentity_propertyvalue_propertyslot_fieldslot_propertyunavailable_property
Every operation has a machineMust100Everything gets a valuemachine
One operation per machine at a timeMust100No double-bookingmachine, slot
Machine can do the operationMust100Capability must matchmachineneedscapabilities
Machine not in maintenanceMust100Respect unavailabilitymachineslotcodedown_slots
Key accounts ship a day earlyWish3Within the allowed time windowslotstartTime

Each setting names a decision id or a column of the step 2-3 sheets. The meaning of every setting is in the workbook's How to fill sheet and RULE_REFERENCE.md.

8.5 Loading

Wizard step 1 → Load a plan from Excel → the dialog lists what each step will import → Fill all steps now (all or nothing; every problem listed by sheet, row and column) → step 7. Or Go through the steps one by one and press Import on each step's banner (useful in front of the customer).


9. Validating the data before planning

Run 9.1-9.3 in Excel, 9.4-9.5 in the wizard. Do not solve before gate 1 (§12.1).

9.1 Structure checks (Excel)

#CheckHowIf wrong
1Every sheet named like its Setup listcompare namesrename the sheet
2id unique in each sheetExcel Remove duplicates on a copy, or COUNTIF(A:A,A2)>1ask the owner which row is right
3No empty idfilter blankscomplete or delete the row
4Every reference existsCOUNTIF(machines!A:A, x) for each depends_on, teacher, pinned valuecorrect the id; the engine refuses unknown ids
5Same spelling everywheresort unique values of needs and of capabilities side by sidealign spellings (5-axis vs 5ax)
6No merged cells / subtotal rowsinspectunmerge, delete

9.2 Value checks

#CheckTypical error
1Dates: all YYYY-MM-DDTHH:MM, same time zone, in the planning perioddates of last year; US vs European day/month
2earliest ≤ due on every itemreversed columns → EMPTY_WINDOW
3Durations: one unit, ISOminutes and hours mixed
4Numbers really numbers40 h, N/A
5Lists comma-separated; or line breaks
6Slot codes in unavailability lists match the slot list's code columnMon AM vs Mon-AM

9.3 Arithmetic — is it even possible? (do it before Can this work?, to discuss with the customer)

CheckFormulaExample
Demand vs capacity per capabilityitems needing X ≤ (options offering X) × (slots each is available)42 exams need halls of 220+ seats; 9 such halls × 4 free slots = 36 → impossible
Per resource with a limitsum of loads of the items fixed on it ≤ its capacityteacher with 12 h service given 15 h
Chainssum of durations along a depends_on chain ≤ due − earliest4 operations of 2 h due 4 h after arrival
Groupsitems of a group that may not overlap ≤ slots available to the groupa track with 22 sessions for 21 slots

If demand exceeds capacity, say it on day one: the right plan leaves items unplanned, and the customer must decide (add capacity, relax a rule to a wish, accept unplanned items).

9.4 Wizard import checks

Each import shows the problems by row and column; Import stays disabled until the file is corrected. Typical: "Required column "duration" is missing" (§6 template), "PT2H" is not a number (only for templates that predate ISO support — reload the wizard), "ID is empty", "ID … is already in the list", "Column 7 has values but no name".

9.5 Can this work? (step 7)

VerdictMeaningAction
Red — No valid plan is possiblecertain: some must-rule cannot hold with this dataread each finding; fix the data or turn the rule into a wish; check again
Amber — Possible, but some resources are nearly fulla resource is used ≥ 85 %consider margin; use Try a quick plan (20 s)
Green — No problem foundthe checks found nothing; not a guaranteeplan it
"The problem cannot be read"a data error (wrong column, unknown id…)each message names the step, rule and setting to correct

Findings and what to do:

FindingTypical causeFix
Items must start after X and before Y, but X is laterreversed or wrong datescorrect the dates
Items wait for each other in a loopdepends_on cycleremove one dependency
Fixed (pinned) items already break a must ruletwo pinned items on the same machine and slotunpin or correct
Items have no option leftno option has the needed capability, or all are unavailableadd an option or correct the need
Every suitable option is unavailable at every usable timeunavailability too widefree a time or add an option
Items can only use N places; they need Mdemand > capacity (§9.3)add capacity, widen options, move items
Chain does not fit in its time windowrouting too long for the due datewiden window, shorten chain
The data itself breaks a must rulean item's fixed resource lacks what it needs, or is over capacitycorrect the attribution or the capacity
A resource is nearly full (amber)≥ 85 % usedmargin, or accept a longer search

10. Exceptions and edge cases

Ask each question; record the answer and the model decision.

TopicAskModel
Public holidays, closures"Which days are closed in the period?"leave those slots out, or list them as unavailable for every option
Partial availability"Who works part time, which half-days?"unavailability list per person
Temporary staff, subcontractors"Can you add people? At what cost?"extra options with a wish "own staff first" (demo 13)
Overtime"Can people exceed their contract?"capacity as a wish, or a higher capacity with a cost
Emergencies / rush items"What happens with an urgent order?"priority + time window; replan with pins (§11.5)
Items that may stay unplanned"Is it acceptable to leave something out?"Everything gets a value as a wish with a high weight
Fixed people per item"Is the teacher/technician already decided?"reference list (§5.3)
Several people per item"Does a job need two technicians?"one row per seat, with a common group column + Grouped items share a value on the time (so the seats are at the same time)
Items longer than a slot"Any job longer than the slot?"§2.4
Travel"Do travel times matter?"zones as capabilities (demo 13); routing (§6.8)
Fairness"Must work be shared evenly?"Balance the load
Preferences"Do people state wishes?"preference / skill_match as wishes
One-off weeks"Is this week special?"plan it as its own period

Questions to raise before proceeding (do not build until answered): who decides when two wishes conflict; what to do with unplanned items; whether the plan may change once published, and how much; which data owner corrects errors.


11. Troubleshooting

11.1 Recognising unclear requirements

SignalAsk
"Usually", "normally", "if possible""And when it is not possible, what do you do?" → wish
"It depends""On what? Show me two cases" → a column or an exception
A rule with no data behind it"Where is that written today?"
Two people give different rulesstop; get the decision maker to arbitrate
"Like last time"ask for last time's file

11.2 The plan is not valid (red on Results)

  1. Read Check before you use it: which must rule is broken, how many times, for which items.
  2. Run Can this work? again (step 7): red findings name the cause in the data.
  3. If it is green and the plan is still not valid: give more time (step 6), or use Try a quick plan to see whether a valid plan exists at all.
  4. Still not valid: turn one must rule at a time into a wish (step 4) to find the one that cannot hold, then find the data rows behind it; turn the rule back to must afterwards.

11.3 Data errors on load (The problem cannot be read)

Each message has a plain title, the engine's exact sentence and where to correct it ("Correct it in step 4: Rules › rule 'No clash' › setting 'group_property'"). Typical: a rule names a column no item has (spelling), a value has the wrong kind (text in a number column), an id is used twice, a decision has no options.

11.4 Comparing with the customer's own plan

Put their plan into the workbook as pins (every item pinned with their values), plan it: the score is their plan measured by our rules. Then plan without pins. Compare in Results → Rules & score, and with Compare Solutions.

11.5 Replanning after a change

Copy the published plan's decisions into the items sheet (Results → Export to Excel gives every item with its decisions): pin what is done, add previous_* columns and the "keep" wishes for the rest, apply the change (absence = unavailability, breakdown = down slots, rush order = new row), load, plan. Results → Changes compares with the previous plan (same browser tab, or load the baseline problem and solution files). The wizard has no one-click "replan from this plan" yet (§13).

11.6 Performance

Iterate with 30-60 s; use the long time limit only for the final plan. Above ~1,000 items, test the time first.


12. Acceptance gates

12.1 Gate 1 — data ready for planning (all must be ticked)

  • ☐ Interview sheet complete (§4.11), signed by the customer planner.
  • ☐ Every must rule mapped to a rule kind with its columns; every unmodelled rule listed as a limitation.
  • ☐ Inventory table complete; every mandatory element has a source and an owner.
  • ☐ Workbook: Setup complete; every sheet named like its list; ids unique and non-empty.
  • ☐ §9.1 and §9.2 passed; §9.3 arithmetic discussed with the customer.
  • ☐ Fill all steps now imports without any problem.
  • ☐ Can this work? is green or amber, or every red finding is understood and accepted by the customer.
  • ☐ The customer's own plan for the period is in hand.

12.2 Gate 2 — plan ready for review

  • ☐ Results: "Ready to use" or every red point explained.
  • ☐ Every must rule at 0 (Rules & score).
  • ☐ Wishes compared with the customer's plan.
  • ☐ Problem, solution and workbook saved with the date in their names (§ handover guide §7).

13. Known gaps and escalation

13.1 Gaps found while writing this guide (check before promising)

GapImpactWorkaround
Problem type names differ: the wizard offers job-shop-scheduling, cloud-optimization; demos and AI templates use job-shop, cloud-capacity, workorder-assignment, …a demo loaded shows its own card; the AI templates of step 0 may not match the wizard carduse the wizard names in new workbooks
No "add a reference list" button in step 3reference lists come only from a workbook or a problem filedeclare them in the Setup sheet
No one-click replan builderreplan files are prepared by hand (§11.5)copy decisions from Export to Excel
A pin fixes all decisions of the itemcannot fix only the technician and free the timemake the open choice a decision
duration: the form says hours; the Results page counts a plain number as minutesinconsistent display of plain-number durationsuse ISO durations (PT2H)
§2.4 rule familiessome customer rules cannot be modelledagree a workaround or record a limitation
User roles (admin, user, analyst, viewer) exist in PowerAdmin, but the wizard does not restrict actions by roleevery signed-in user can planagree usage rules with the customer

13.2 Escalation

Escalate to the PowerSolver product team when: the engine answers "internal error"; a red finding looks wrong for the data; a solve never finishes; a customer rule is essential and not in §1/§2.4. Send: the workbook, the problem_*.json and solution_*.json files the wizard downloaded, a screenshot of the message, and the step you were on. Never send customer personal data outside the agreed channel.