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