Skip to content

Capacity from an HR system

When an HR system is connected as a data source (SAP SuccessFactors), working time and absences come from there. Nobody maintains them by hand any more, and nobody has to remember to update them when someone reduces their hours.

That is the common case in larger organisations — but it is not a prerequisite. Without an HR source everything works as described in Capacity — baseline, deductions, available and Absences: the value sits on the person and is maintained there.

Three paths, because these are three different kinds of data

Section titled “Three paths, because these are three different kinds of data”
WhatWhere fromHow it arrives
Master value — weekly hours, employment rate, full/part timePersonnel master recordAs a person field, via the normal draft path: with approval mode, history and audit like any other change to a person
Period-specific value — parental leave from Q3, a temporary increaseContract recordsAs a capacity row per period. The person record has no field for it: the value applies to certain months only, not permanently
Absences — periods when someone is not availableTime managementAs a date range with an extent (full or half day)

The first path is the most important and the least conspicuous: because the capacity fields are ordinary fields of the person type, they appear in the connector mapping next to name and department and can be mapped there just the same. There is no separate capacity import alongside.

When you set it up, the usual source field names are already mapped:

Source fieldroleALPHA field
standardHoursWeekly hours
fteEmployment rate
employmentTypeEmployment (full/part time)

The mapping can be changed like any other. Two quirks that save trouble:

  • An employment rate in percent is recognised. Some tenants maintain 0.8, others 80 — both are read as eighty percent.
  • An unusable value is dropped, not imported as zero. Zero would mean “does not work”; when the value is missing, utilization says “limit not recorded” and the calculation falls back to the tenant default. That is the more honest state.

Two rules that make the nightly sync harmless

Section titled “Two rules that make the nightly sync harmless”

A connector only overwrites its own rows. If someone else — a second source or a manual entry — holds a value for the same person and period, that value stays. The sync report lists how many rows it therefore left alone; anyone who would otherwise hunt for the missing value in the wrong place sees immediately who owns it.

A run replaces its absences completely — but only within the delivered window. Without the replacement a withdrawn absence would stay forever. Without the window, a run delivering three months would delete the whole year’s entries. The window reaches back across the current period and forward across the usual planning horizon.

HR systems deliver a type with every absence: leave, sickness, parental leave, care leave. roleALPHA does not take it. It is read and thrown away; there is no column it could land in, and no setting that changes this.

This is not thrift out of convenience. Sickness and care are health data under Art. 9 GDPR. A field that can hold them pulls the entire application into that regime — regardless of whether any tenant uses it. A field that does not exist needs neither justification nor protection nor deletion. For planning it is entirely sufficient to know that capacity is gone.

The consequence worth knowing: analyses such as “sick days per department” are structurally impossible here, not merely undesired. The truth about that is kept by the HR system.

If a data source claims persons, it takes over their mastership: person records can then no longer be edited manually — not by the AI assistant either — and the interface shows which source system owns them. That includes the capacity fields, because they are person fields.

If it claims only capacity and absences, everything else stays open: demands can still be created and edited normally. The connector masters the capacity rows, not demand planning.

Then exactly one option is missing: the period-specific baseline. Parental leave or a temporary increase cannot be represented as a contract value per period — the person carries a master value, which is however editable on them at any time. And the same situation can always be recorded as an absence, with the same effect on available capacity.