One inspection grammar across every QDIP application.
- 01Situation
- 02Alternatives
- 03Evaluation
- 04Risk / uncertainty
- 05Recommendation
- 06Evidence
- 07Trace
Contractor Allocation
See the same work through each operational role, then let QDIP allocate the portfolio under contract, capacity and contractor-specific productivity constraints.
Execution view. Contractor is assigned by QDIP; there is no manual vendor selector.
Scenario context
A planner must allocate work packages across contractors while preserving eligibility, technical feasibility, capacity and contract-volume constraints. Cheap contractors cannot take all work, so QDIP must preserve scarce capacity for the highest-value assignments.
Which contractor/contract assignment should be used for each allocation unit without consuming scarce portfolio capacity in a locally attractive but globally worse way?
The scenario tests global portfolio allocation, provenance/constraint enforcement and measurable counterfactual cost advantage over the observed allocation.
- • 100 allocation units
- • 4 contractors; 8 contracts
- • 6 trusted input authorities
- • allocation level: WORK_PACKAGE
- • constraint coverage: COMPLETE
- • decision time: 2026-10-01T00:00:00Z
- • Expected execution cost can be unknown for T&E work; unknown cost is reserved rather than silently treated as cheap.
Analyst data workspace
Choose synthetic data, semantic parsing for unfamiliar business files, or the exact versioned template when reproducibility matters.
Smart import
CSV / XLSX / JSON is analyzed by the shared Decision Intake capability. It proposes semantics; it does not silently run the optimizer.
Exact template
Versioned JSON bypasses semantic inference. Validation must pass before it can replace the active scenario input.
Data dictionary
| Field | Meaning | Type / unit | Requirement |
|---|---|---|---|
| id | Stable scenario identifier | string | required |
| asOf | Snapshot time for contract/capacity state | ISO datetime | required |
| decisionAt | Decision time used for temporal validity checks | ISO datetime | required |
| allocationLevel | Atomic allocation unit level | enum | required |
| units[] | Work packages/orders with scope, demand, deadline and technical requirements | object[] | required |
| contractors[] | Eligible contractors, contracts, rates, execution profiles and capacity buckets | object[] | required |
| trustedAuthorities[] | Authoritative sources allowed to contribute decision inputs | object[] | required |
Decision inputs by role
The demo separates who supplies scope, commercial terms and operational capacity from who receives the final contractor assignment.
Planner release view
Planner view has no contractor dropdown or writeable contractor field.
| Unit | Work type | Execution window | Contractor assignment |
|---|---|---|---|
| AU-001 | ROUTINE_TRIM · 3 tree | 2026-10-02 → 2026-10-04 | Pending QDIP allocation |
| AU-002 | ROUTINE_TRIM · 4 tree | 2026-10-02 → 2026-10-05 | Pending QDIP allocation |
| AU-003 | ROUTINE_TRIM · 5 tree | 2026-10-02 → 2026-10-06 | Pending QDIP allocation |
| AU-004 | ROUTINE_TRIM · 6 tree | 2026-10-02 → 2026-10-07 | Pending QDIP allocation |
| AU-005 | ROUTINE_TRIM · 2 tree | 2026-10-02 → 2026-10-08 | Pending QDIP allocation |
| AU-006 | ROUTINE_TRIM · 3 tree | 2026-10-02 → 2026-10-09 | Pending QDIP allocation |
| AU-007 | ROUTINE_TRIM · 4 tree | 2026-10-02 → 2026-10-10 | Pending QDIP allocation |
| AU-008 | ROUTINE_TRIM · 5 tree | 2026-10-02 → 2026-10-11 | Pending QDIP allocation |
| AU-009 | ROUTINE_TRIM · 6 tree | 2026-10-02 → 2026-10-12 | Pending QDIP allocation |
| AU-010 | ROUTINE_TRIM · 2 tree | 2026-10-02 → 2026-10-13 | Pending QDIP allocation |
| AU-011 | ROUTINE_TRIM · 3 tree | 2026-10-02 → 2026-10-14 | Pending QDIP allocation |
| AU-012 | ROUTINE_TRIM · 4 tree | 2026-10-02 → 2026-10-15 | Pending QDIP allocation |
| AU-013 | ROUTINE_TRIM · 5 tree | 2026-10-02 → 2026-10-16 | Pending QDIP allocation |
| AU-014 | ROUTINE_TRIM · 6 tree | 2026-10-02 → 2026-10-17 | Pending QDIP allocation |
| AU-015 | HAZARD_TREE_REMOVAL · 2 tree | 2026-10-02 → 2026-10-18 | Pending QDIP allocation |
| AU-016 | ROUTINE_TRIM · 3 tree | 2026-10-02 → 2026-10-19 | Pending QDIP allocation |
| AU-017 | EMERGENCY_CLEARANCE · 1 job | 2026-10-02 → 2026-10-20 | Pending QDIP allocation |
| AU-018 | ROUTINE_TRIM · 5 tree | 2026-10-02 → 2026-10-21 | Pending QDIP allocation |
| AU-019 | ROUTINE_TRIM · 6 tree | 2026-10-02 → 2026-10-22 | Pending QDIP allocation |
| AU-020 | HAZARD_TREE_REMOVAL · 2 tree | 2026-10-02 → 2026-10-23 | Pending QDIP allocation |
| AU-021 | ROUTINE_TRIM · 3 tree | 2026-10-02 → 2026-10-24 | Pending QDIP allocation |
| AU-022 | ROUTINE_TRIM · 4 tree | 2026-10-02 → 2026-10-25 | Pending QDIP allocation |
| AU-023 | ROUTINE_TRIM · 5 tree | 2026-10-02 → 2026-10-26 | Pending QDIP allocation |
| AU-024 | ROUTINE_TRIM · 6 tree | 2026-10-02 → 2026-10-03 | Pending QDIP allocation |
| AU-025 | HAZARD_TREE_REMOVAL · 2 tree | 2026-10-02 → 2026-10-04 | Pending QDIP allocation |
| AU-026 | ROUTINE_TRIM · 3 tree | 2026-10-02 → 2026-10-05 | Pending QDIP allocation |
| AU-027 | ROUTINE_TRIM · 4 tree | 2026-10-02 → 2026-10-06 | Pending QDIP allocation |
| AU-028 | ROUTINE_TRIM · 5 tree | 2026-10-02 → 2026-10-07 | Pending QDIP allocation |
| AU-029 | ROUTINE_TRIM · 6 tree | 2026-10-02 → 2026-10-08 | Pending QDIP allocation |
| AU-030 | HAZARD_TREE_REMOVAL · 2 tree | 2026-10-02 → 2026-10-09 | Pending QDIP allocation |
| AU-031 | ROUTINE_TRIM · 3 tree | 2026-10-02 → 2026-10-10 | Pending QDIP allocation |
| AU-032 | ROUTINE_TRIM · 4 tree | 2026-10-02 → 2026-10-11 | Pending QDIP allocation |
| AU-033 | ROUTINE_TRIM · 5 tree | 2026-10-02 → 2026-10-12 | Pending QDIP allocation |
| AU-034 | EMERGENCY_CLEARANCE · 1 job | 2026-10-02 → 2026-10-13 | Pending QDIP allocation |
| AU-035 | HAZARD_TREE_REMOVAL · 2 tree | 2026-10-02 → 2026-10-14 | Pending QDIP allocation |
| AU-036 | ROUTINE_TRIM · 3 tree | 2026-10-02 → 2026-10-15 | Pending QDIP allocation |
| AU-037 | ROUTINE_TRIM · 4 tree | 2026-10-02 → 2026-10-16 | Pending QDIP allocation |
| AU-038 | ROUTINE_TRIM · 5 tree | 2026-10-02 → 2026-10-17 | Pending QDIP allocation |
| AU-039 | ROUTINE_TRIM · 6 tree | 2026-10-02 → 2026-10-18 | Pending QDIP allocation |
| AU-040 | HAZARD_TREE_REMOVAL · 2 tree | 2026-10-02 → 2026-10-19 | Pending QDIP allocation |
| AU-041 | ROUTINE_TRIM · 3 tree | 2026-10-02 → 2026-10-20 | Pending QDIP allocation |
| AU-042 | ROUTINE_TRIM · 4 tree | 2026-10-02 → 2026-10-21 | Pending QDIP allocation |
| AU-043 | ROUTINE_TRIM · 5 tree | 2026-10-02 → 2026-10-22 | Pending QDIP allocation |
| AU-044 | ROUTINE_TRIM · 6 tree | 2026-10-02 → 2026-10-23 | Pending QDIP allocation |
| AU-045 | HAZARD_TREE_REMOVAL · 2 tree | 2026-10-02 → 2026-10-24 | Pending QDIP allocation |
| AU-046 | ROUTINE_TRIM · 3 tree | 2026-10-02 → 2026-10-25 | Pending QDIP allocation |
| AU-047 | ROUTINE_TRIM · 4 tree | 2026-10-02 → 2026-10-26 | Pending QDIP allocation |
| AU-048 | ROUTINE_TRIM · 5 tree | 2026-10-02 → 2026-10-03 | Pending QDIP allocation |
| AU-049 | ROUTINE_TRIM · 6 tree | 2026-10-02 → 2026-10-04 | Pending QDIP allocation |
| AU-050 | HAZARD_TREE_REMOVAL · 2 tree | 2026-10-02 → 2026-10-05 | Pending QDIP allocation |
| AU-051 | EMERGENCY_CLEARANCE · 1 job | 2026-10-02 → 2026-10-06 | Pending QDIP allocation |
| AU-052 | ROUTINE_TRIM · 4 tree | 2026-10-02 → 2026-10-07 | Pending QDIP allocation |
| AU-053 | ROUTINE_TRIM · 5 tree | 2026-10-02 → 2026-10-08 | Pending QDIP allocation |
| AU-054 | ROUTINE_TRIM · 6 tree | 2026-10-02 → 2026-10-09 | Pending QDIP allocation |
| AU-055 | HAZARD_TREE_REMOVAL · 2 tree | 2026-10-02 → 2026-10-10 | Pending QDIP allocation |
| AU-056 | ROUTINE_TRIM · 3 tree | 2026-10-02 → 2026-10-11 | Pending QDIP allocation |
| AU-057 | ROUTINE_TRIM · 4 tree | 2026-10-02 → 2026-10-12 | Pending QDIP allocation |
| AU-058 | ROUTINE_TRIM · 5 tree | 2026-10-02 → 2026-10-13 | Pending QDIP allocation |
| AU-059 | ROUTINE_TRIM · 6 tree | 2026-10-02 → 2026-10-14 | Pending QDIP allocation |
| AU-060 | HAZARD_TREE_REMOVAL · 2 tree | 2026-10-02 → 2026-10-15 | Pending QDIP allocation |
| AU-061 | ROUTINE_TRIM · 3 tree | 2026-10-02 → 2026-10-16 | Pending QDIP allocation |
| AU-062 | ROUTINE_TRIM · 4 tree | 2026-10-02 → 2026-10-17 | Pending QDIP allocation |
| AU-063 | ROUTINE_TRIM · 5 tree | 2026-11-02 → 2026-11-18 | Pending QDIP allocation |
| AU-064 | ROUTINE_TRIM · 6 tree | 2026-11-02 → 2026-11-19 | Pending QDIP allocation |
| AU-065 | HAZARD_TREE_REMOVAL · 2 tree | 2026-11-02 → 2026-11-20 | Pending QDIP allocation |
| AU-066 | ROUTINE_TRIM · 3 tree | 2026-11-02 → 2026-11-21 | Pending QDIP allocation |
| AU-067 | ROUTINE_TRIM · 4 tree | 2026-11-02 → 2026-11-22 | Pending QDIP allocation |
| AU-068 | EMERGENCY_CLEARANCE · 1 job | 2026-11-02 → 2026-11-23 | Pending QDIP allocation |
| AU-069 | ROUTINE_TRIM · 6 tree | 2026-11-02 → 2026-11-24 | Pending QDIP allocation |
| AU-070 | HAZARD_TREE_REMOVAL · 2 tree | 2026-11-02 → 2026-11-25 | Pending QDIP allocation |
| AU-071 | ROUTINE_TRIM · 3 tree | 2026-11-02 → 2026-11-26 | Pending QDIP allocation |
| AU-072 | ROUTINE_TRIM · 4 tree | 2026-11-02 → 2026-11-03 | Pending QDIP allocation |
| AU-073 | ROUTINE_TRIM · 5 tree | 2026-11-02 → 2026-11-04 | Pending QDIP allocation |
| AU-074 | ROUTINE_TRIM · 6 tree | 2026-11-02 → 2026-11-05 | Pending QDIP allocation |
| AU-075 | HAZARD_TREE_REMOVAL · 2 tree | 2026-11-02 → 2026-11-06 | Pending QDIP allocation |
| AU-076 | ROUTINE_TRIM · 3 tree | 2026-11-02 → 2026-11-07 | Pending QDIP allocation |
| AU-077 | ROUTINE_TRIM · 4 tree | 2026-11-02 → 2026-11-08 | Pending QDIP allocation |
| AU-078 | ROUTINE_TRIM · 5 tree | 2026-11-02 → 2026-11-09 | Pending QDIP allocation |
| AU-079 | ROUTINE_TRIM · 6 tree | 2026-11-02 → 2026-11-10 | Pending QDIP allocation |
| AU-080 | HAZARD_TREE_REMOVAL · 2 tree | 2026-11-02 → 2026-11-11 | Pending QDIP allocation |
| AU-081 | ROUTINE_TRIM · 3 tree | 2026-11-02 → 2026-11-12 | Pending QDIP allocation |
| AU-082 | ROUTINE_TRIM · 4 tree | 2026-11-02 → 2026-11-13 | Pending QDIP allocation |
| AU-083 | ROUTINE_TRIM · 5 tree | 2026-11-02 → 2026-11-14 | Pending QDIP allocation |
| AU-084 | ROUTINE_TRIM · 6 tree | 2026-11-02 → 2026-11-15 | Pending QDIP allocation |
| AU-085 | EMERGENCY_CLEARANCE · 1 job | 2026-11-02 → 2026-11-16 | Pending QDIP allocation |
| AU-086 | ROUTINE_TRIM · 3 tree | 2026-11-02 → 2026-11-17 | Pending QDIP allocation |
| AU-087 | ROUTINE_TRIM · 4 tree | 2026-11-02 → 2026-11-18 | Pending QDIP allocation |
| AU-088 | ROUTINE_TRIM · 5 tree | 2026-11-02 → 2026-11-19 | Pending QDIP allocation |
| AU-089 | ROUTINE_TRIM · 6 tree | 2026-11-02 → 2026-11-20 | Pending QDIP allocation |
| AU-090 | HAZARD_TREE_REMOVAL · 2 tree | 2026-11-02 → 2026-11-21 | Pending QDIP allocation |
| AU-091 | ROUTINE_TRIM · 3 tree | 2026-11-02 → 2026-11-22 | Pending QDIP allocation |
| AU-092 | ROUTINE_TRIM · 4 tree | 2026-11-02 → 2026-11-23 | Pending QDIP allocation |
| AU-093 | ROUTINE_TRIM · 5 tree | 2026-11-02 → 2026-11-24 | Pending QDIP allocation |
| AU-094 | ROUTINE_TRIM · 6 tree | 2026-11-02 → 2026-11-25 | Pending QDIP allocation |
| AU-095 | HAZARD_TREE_REMOVAL · 2 tree | 2026-11-02 → 2026-11-26 | Pending QDIP allocation |
| AU-096 | ROUTINE_TRIM · 3 tree | 2026-11-02 → 2026-11-03 | Pending QDIP allocation |
| AU-097 | ROUTINE_TRIM · 4 tree | 2026-11-02 → 2026-11-04 | Pending QDIP allocation |
| AU-098 | ROUTINE_TRIM · 5 tree | 2026-11-02 → 2026-11-05 | Pending QDIP allocation |
| AU-099 | ROUTINE_TRIM · 6 tree | 2026-11-02 → 2026-11-06 | Pending QDIP allocation |
| AU-100 | HAZARD_TREE_REMOVAL · 2 tree | 2026-11-02 → 2026-11-07 | Pending QDIP allocation |
