People pillar · v0.16.0

employment-contract EmploymentContract

Employment contract instance record.

$id · https://corpospec.com/schemas/v0.16.0/employment-contract.schema.json

Fields

Field Type Required Description
entity PathRef yes Path-based cross-reference relative to .corpospec/ root. Pattern: `^[a-z0-9_-]+(/[a-z0-9_.-]+)+$`
id PathRef yes Path-based cross-reference relative to .corpospec/ root. Pattern: `^[a-z0-9_-]+(/[a-z0-9_.-]+)+$`
kind string yes Free-form discriminator string (uses BDR 0069 EmploymentType variant names — `geschaeftsfuehrer`, `arbeitnehmer`, `freelance`, etc. — to avoid coupling to the existing enum at v0.x).
notice_period_employee string yes
notice_period_employer string yes Employer notice period as ISO 8601 duration (`P3M` = 3 months).
person PathRef yes Path-based cross-reference relative to .corpospec/ root. Pattern: `^[a-z0-9_-]+(/[a-z0-9_.-]+)+$`
pii_class PiiClass yes Personal-data classification on every record carrying personal data, per BDR 0070 / BDR 0069 / BDR 0078. Used by `corpospec-report` to gate rendering and by the privacy pillar's RoPA records to determine safeguards.
retention_until IsoDate yes Default retention: end_date + 10 years per HGB §257.
role PathRef yes Path-based cross-reference relative to .corpospec/ root. Pattern: `^[a-z0-9_-]+(/[a-z0-9_.-]+)+$`
signed_date IsoDate yes ISO 8601 date (YYYY-MM-DD).
signed_documents PathRef[] yes PathRefs to signed PDFs / scanned signatures.
start_date IsoDate yes ISO 8601 date (YYYY-MM-DD).
status EmploymentContractStatus yes Contract lifecycle status.
template_ref PathRef yes PathRef into `legal/templates/<slug>` — the template the contract was drafted from.
term EmploymentTerm yes Contract term type.
weekly_hours number yes
work_location WorkLocation yes Where work is performed.
applicable_collective_agreement string? Tarifvertrag (DE collective agreement) reference.
consent_record ConsentRecord?
end_date IsoDate? End date for fixed-term contracts.
non_compete NonCompete?
probation_end IsoDate? Probation end date — DE max 6 months; EU directive caps at 6 months.
superseded_by PathRef? PathRef into the successor contract on promotion / role change.
working_time_account boolean? DE Arbeitszeitkonto flag.

Definitions

Shared types referenced within this schema.

ConsentRecord
GDPR Art. 88 + §26 BDSG consent record for employment data processing.
type: object
EmploymentContractStatus
Contract lifecycle status.
enum: "draft", "signed", "active", "terminated", "superseded"
EmploymentTerm
Contract term type.
IsoCountry
ISO 3166-1 alpha-2 country code.
pattern: ^[A-Z]{2}$
IsoDate
ISO 8601 date (YYYY-MM-DD).
type: string
NonCompete
Non-compete clause + Karenzentschädigung (DE post-employment compensation requirement).
type: object
PathRef
Path-based cross-reference relative to .corpospec/ root. Pattern: `^[a-z0-9_-]+(/[a-z0-9_.-]+)+$`
pattern: ^[a-z0-9_-]+(/[a-z0-9_.-]+)+$
PiiClass
Personal-data classification on every record carrying personal data, per BDR 0070 / BDR 0069 / BDR 0078. Used by `corpospec-report` to gate rendering and by the privacy pillar's RoPA records to determine safeguards.
PostalAddress
Physical address aligned with schema.org PostalAddress.
type: object
WorkLocation
Where work is performed.
type: object
WorkLocationKind
enum: "onsite", "hybrid", "remote"

Reference in your YAML

# yaml-language-server: $schema=https://corpospec.com/schemas/v0.16.0/employment-contract.schema.json