---
title: Contracts
summary: 'The formal employment relationship between one employee and one company. The contract activates the employee for time tracking, payroll, holiday accrual, and overtime calculations.'
section: features
tags:
  - crud
  - tempus
  - foundation
  - hr
updated: '2026-08-12'
---

> A **contract** in Tempus is the formal employment relationship between one [employee](tempus_employees.md) and one [company](tempus_companies.md). It is what activates the employee for payroll, time tracking, holiday quotas, and overtime.

## Overview

Without an active contract an employee has no holiday quota, overtime accrual, expected hours, or time-attendance scope. An employee can hold several contracts over time, but only currently active ones drive day-to-day computations. The usual way to create one is [Employee onboarding](tempus_employee_onboardings.md), which builds the employee, contract, and first work-shift assignment together. Use the standalone form for mid-employment changes.

## What it does

The contract is the gate to the rest of Tempus: holiday quotas use its company and holiday calendar, overtime uses its weekly hours as the baseline, time-point validation compares clock-ins against the work shift assigned under it, and approval routing uses its department to find the manager.

Three settings deserve care:

- **Contract type** signals which legal rules apply and whether an end date is required (fixed-term types require one).
- **Contract start date** is the baseline for the work-shift assignment. If the shift starts later, the employee has no expected hours for the gap and time-point validation flags it. Match the two unless deliberate.
- **Compensatory balance** sets the starting credit or debit of time owed. Set it only when migrating from another system: a wrong value permanently displaces every future overtime calculation.

> [!WARNING]
> Changing weekly hours on an existing contract does not recompute historical overtime. For hour changes, end the current contract and create a new one.

## Contract transfer

When a tenant has two or more companies, a **Transfer** button appears on each contract row. It closes the source contract on a date you pick, opens a new one on the target company the next day, and preserves work-shift assignments, balances, and history. Use transfer for internal reorganizations and the end-and-recreate flow for unrelated job changes.

## How to activate a new employee for time tracking

Until an active contract exists, the employee has no holiday quota, no expected hours, and no overtime accrual, so most "Tempus is not showing anything for this person" questions are a missing or mis-dated contract.

1. Use [Employee onboarding](tempus_employee_onboardings.md) rather than building the pieces separately. It creates the employee, the contract, and the first work-shift assignment together, which is where they most often end up out of step.
2. Pick the contract type first. Fixed-term types require an end date.
3. Give the contract start date and the work-shift assignment start **the same date** unless you mean otherwise. A shift starting later leaves a gap with no expected hours, and time-point validation flags every day in it.
4. Leave the compensatory balance at zero unless you are migrating from another system. A wrong opening value displaces every future overtime calculation permanently.
5. Confirm the department, since approval routing reads it to find the manager.
6. Verify the employee now has a holiday quota and expected hours before moving on.
7. For a later change in weekly hours, end this contract and create a new one. Editing the hours in place does not recompute historical overtime.

## See also

- [Employees](tempus_employees.md) - the people contracts belong to.
- [Companies](tempus_companies.md) - the legal employers.
- [Departments](tempus_departments.md) - the org unit scoping each contract.
- [Work shifts](tempus_work_shifts.md) - the rostered pattern the contract's weekly hours must match.
- [Employee onboarding](tempus_employee_onboardings.md) - the recommended path for creating an employee and contract together.
- [Overtime periods](tempus_overtime_periods.md), [Overtime declarations](tempus_overtime_declarations.md) - the overtime machinery the contract feeds into.

```yaml fields
employee_id:
  label: Employee
  tab: 'Contract details'
  hint: 'The employee this contract belongs to. Only active employees appear in the dropdown.'
company_id:
  label: Company
  tab: 'Contract details'
  hint: 'The legal entity employing this person. Determines applicable labor regulations and the holiday calendar.'
department_id:
  label: Department
  tab: 'Contract details'
  hint: 'Department within the company. Drives approval routing for the employee requests. Filtered by the selected company.'
contract_type:
  label: 'Contract type'
  tab: 'Contract details'
  hint: 'Type of employment contract. Fixed-term types require an end date.'
  values:
    -
      value: permanent_contract
      label: 'Permanent contract'
      text: 'Open-ended (CDI). No end date required.'
    -
      value: fixed_term_contract
      label: 'Fixed-term contract'
      text: 'Fixed-term (CDD). An end date is required.'
    -
      value: temporary_agency_contract
      label: 'Temporary agency contract'
      text: 'Employee sent by an agency for a specific mission.'
    -
      value: apprenticeship_contract
      label: 'Apprenticeship contract'
      text: 'Combined work and study contract.'
    -
      value: adaptation_contract
      label: 'Adaptation contract'
      text: 'Tailored contract for workers with a disability.'
    -
      value: internship_contract
      label: 'Internship contract'
      text: 'Short-term placement, often unpaid or low-paid.'
    -
      value: part_time_contract
      label: 'Part-time contract'
      text: 'Reduced-hours employment.'
    -
      value: seasonal_contract
      label: 'Seasonal contract'
      text: 'Tied to a specific season.'
    -
      value: occasional_contract
      label: 'Occasional contract'
      text: 'On-call work with no guaranteed hours.'
    -
      value: telework_agreement
      label: 'Telework agreement'
      text: 'Addendum documenting a remote-work arrangement.'
job_title:
  label: 'Job title'
  tab: 'Contract details'
  hint: 'Free-text or ESCO-sourced job title. Start typing for autocomplete from the European job-title catalog.'
contract_start:
  label: 'Contract start'
  tab: 'Contract details'
  hint: 'Legal start date of the contract. Also used as the baseline for the first work-shift assignment.'
contract_end:
  label: 'Contract end'
  tab: 'Contract details'
  hint: 'Legal end date. Required for fixed-term contract types. Leave empty for open-ended permanent contracts.'
participation:
  label: Participation
  tab: 'Contract details'
  hint: 'Employment percentage (0-100%) representing the workload commitment relative to the company full-time hours.'
weekly_expected_working_time:
  label: 'Weekly expected working time'
  tab: 'Contract details'
  hint: 'Contractual weekly hours in H:mm format (for example, 40:00). The legal reference used for overtime calculation.'
compensatory_balance:
  label: 'Compensatory balance'
  tab: 'Contract details'
  hint: 'Starting credit or debit of time owed in H:mm format. Positive for credit, prefix with - for debit. Set only when migrating from another system.'
ho_balance:
  label: 'Home-office balance'
  tab: 'Contract details'
  hint: 'Starting count of available home-office days for this contract.'
```
