> ## Documentation Index
> Fetch the complete documentation index at: https://docs.plane.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Workforce calculation

A `Workforce::Calculation` is an immutable cost and headcount snapshot for a set
of positions over a period. It can be created from a workforce plan or from
inline position inputs before a worker exists.

### Attributes

<ResponseField name="id" type="string">
  Unique identifier for the calculation, e.g. `wfc_V6nP3qR9tY2m`.
</ResponseField>

<ResponseField name="object" type="string">
  The object type. Always `workforce.calculation`.
</ResponseField>

<ResponseField name="status" type="string">
  The calculation status. Currently `calculated`.
</ResponseField>

<ResponseField name="plan" type="string">
  Workforce plan ID when the calculation was created from a plan.
</ResponseField>

<ResponseField name="currency" type="string">
  Three-letter ISO currency code for calculation totals.
</ResponseField>

<ResponseField name="period" type="object">
  The period covered by the calculation.

  <Expandable title="child attributes">
    <ResponseField name="starts" type="string">
      Start date of the calculation period.
    </ResponseField>

    <ResponseField name="ends" type="string">
      End date of the calculation period.
    </ResponseField>

    <ResponseField name="frequency" type="string">
      Period frequency. Currently `monthly`.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="headcount" type="string">
  Average headcount over the calculation period.
</ResponseField>

<ResponseField name="cost" type="object">
  Total calculation cost.

  <Expandable title="child attributes">
    <ResponseField name="total" type="string">
      Total projected cost.
    </ResponseField>

    <ResponseField name="cash" type="string">
      Projected cash cost.
    </ResponseField>

    <ResponseField name="accrual" type="string">
      Projected accrual cost.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="periods" type="array">
  Periodized calculation rows. Each row includes `period`, `headcount`, `cost`,
  and minimal `line_items`. Line items are display/provenance rows: use `name`
  for display, `source.object` for the dereferenceable object when it differs
  from the rollup family, `source.type` for rollups, and `source.id` to trace
  the input that produced the row.
</ResponseField>

<ResponseField name="created" type="string">
  Timestamp of when the calculation was created.
</ResponseField>

<ResponseExample>
  ```json Response theme={null}
  {
    "id": "wfc_V6nP3qR9tY2m",
    "object": "workforce.calculation",
    "status": "calculated",
    "plan": "wfp_R8mK2pQ9xL4s",
    "currency": "CAD",
    "period": {
      "starts": "2026-09-01",
      "ends": "2026-10-31",
      "frequency": "monthly"
    },
    "headcount": "1.0",
    "cost": {
      "total": "26400.00",
      "cash": "26400.00",
      "accrual": "0.00"
    },
    "periods": [
      {
        "period": "2026-09",
        "headcount": "1.0",
        "cost": "13200.00",
        "line_items": [
          {
            "position": "pos_kP9r2NqW6mT4",
            "name": "Regular earnings",
            "amount": "10000.00",
            "currency": "CAD",
            "source": {
              "type": "position",
              "id": "pos_kP9r2NqW6mT4"
            }
          },
          {
            "position": "pos_kP9r2NqW6mT4",
            "name": "Employer health tax",
            "amount": "3200.00",
            "currency": "CAD",
            "source": {
              "type": "labor.tax",
              "id": "ltx_Q4mR8tK2pL9x"
            }
          }
        ]
      }
    ],
    "created": "2026-05-27T12:00:00Z"
  }
  ```
</ResponseExample>
