Overload#
The resource overload of one evaluation stage: the total, the share of each resource, and the overload around each focus task. Each value comes with its difference from the baseline. You read it from Metrics::overload, which appears in EvaluateResult::baseline and in the scheduled and leveled stages of every CandidateResult.
Declaration#
With the serde feature, Overload implements Serialize and Deserialize with camelCase field names.
Fields#
| Field | Type | Description |
|---|---|---|
total |
Amount |
Overload summed over all resources. delta is the difference from the baseline total. |
resources |
Vec<ResourceOverload> |
One entry per resource with non-zero overload in this stage or in the baseline. Resources of this stage come first, then resources overloaded only in the baseline. |
focus |
Vec<FocusOverload> |
One entry per id in EvaluateOptions::focus. Empty when focus is empty. |
How overload is measured#
For each resource, overload is the sum over time buckets of max(0, load − capacity). The unit is capacity × buckets: one resource at capacity 1, double-booked for two day buckets, has an overload of 2.
The baseline and every stage of every candidate use the same bucket basis: LevelingOptions::basis when EvaluateOptions::level sets it, otherwise the basis derived from config.duration_unit. Values from one EvaluateResult are therefore comparable with each other.
Example#
Two tasks run on the same days and both use dev1. Score a candidate that moves task 2 to dev2, and print the overload of the baseline and of the candidate.
use ;
Related#
Metrics- the stage measurements that contain itLoadProfile- per-bucket load and capacity, where the same excess can be inspectedLevelingOptions- itsbasissets the bucket size- Evaluating Alternatives - how overload is compared across candidates