LoadProfile#

Load and capacity of each requested resource, bucket by bucket, over a date range. It's the result of JsonProject.loadProfile, measured on the solved baseline, and the profile field of the ScheduleResult that JsonProject.preview returns when its options carry a profile query (ProfileQuery), measured on the previewed dates.

Fields#

Field Type Description
basis "hour" | "day" Bucket size used: the query's basis, or the one derived from config.duration_unit when the query omits it. See Load basis.
resources ResourceLoad[] One entry per measured resource, in the order of the query's resources, or in input order when the query lists none.

Field names are camelCase. Dates use the output form YYYY-MM-DD HH:mm. See Wire format.

ResourceLoad#

One resource and its buckets.

Field Type Description
resource Id Resource id.
capacityMode "calendar" | "flat" How capacity is spread over the buckets. "calendar": the resource's capacity in buckets with working time on its calendar, 0 in the others. "flat": the resource's capacity in every bucket.
buckets LoadBucket[] Every bucket whose start lies in [from, to), in time order, with no gaps.

Which mode a resource gets depends on its calendar and the scheduling config. See Resource load.

LoadBucket#

One time bucket of one resource.

Field Type Description
start DateValue Start of the bucket.
load number Booked work in assignment value units (1 = 100 %).
capacity number Capacity in the same units. The bucket is overallocated when load > capacity.
tasks Id[] Present only when the query's tasks is "overallocated" or "all". With "overallocated": ids of the tasks booked in an overallocated bucket, [] in other buckets. With "all": ids of every task booked in the bucket. Ids are in input order.

How load is counted is described in Resource load.

Used by#

Example#

A daily profile of one resource with no calendar, booked on two tasks at once on 2 January, queried with tasks: "overallocated":

{
  "basis": "day",
  "resources": [
    {
      "resource": "dev",
      "capacityMode": "flat",
      "buckets": [
        { "start": "2026-01-01 00:00", "load": 1, "capacity": 1, "tasks": [] },
        { "start": "2026-01-02 00:00", "load": 2, "capacity": 1, "tasks": ["a", "b"] },
        { "start": "2026-01-03 00:00", "load": 1, "capacity": 1, "tasks": [] },
        { "start": "2026-01-04 00:00", "load": 0, "capacity": 1, "tasks": [] }
      ]
    }
  ]
}