Employment cost calculator

The Employment Cost Calculator API helps you estimate the total cost of hiring employees globally. Get accurate cost breakdowns including salary, employer taxes, benefits, and Deel’s service fees before creating contracts.

Overview

Use this API to:

  • Estimate total employment costs by country and salary
  • Compare costs across different countries for budget planning
  • Include benefits in cost calculations (health insurance, pension, etc.)
  • Show candidates transparent total compensation packages

Basic cost calculation

Calculate employment costs for a specific country and salary.

API endpoint: POST /eor/employment_cost

1import requests
2import os
3
4url = "https://api.letsdeel.com/rest/v2/eor/employment_cost"
5headers = {
6 "Authorization": f"Bearer {os.getenv('DEEL_API_TOKEN')}",
7 "Content-Type": "application/json"
8}
9payload = {
10 "data": {
11 "country": "Netherlands",
12 "salary": 5000,
13 "currency": "EUR"
14 }
15}
16
17response = requests.post(url, json=payload, headers=headers)
18print(response.json())

Request parameters:

ParameterTypeRequiredDescription
countrystringYesCountry name (e.g., “Netherlands”, “United States”)
salarynumberYesMonthly or annual salary amount
currencystringYesISO currency code (e.g., “EUR”, “USD”)
benefitsarrayNoArray of benefit provider IDs to include

Response fields:

  • salary - Input salary amount
  • currency - Input currency
  • country / country_code - Country name and ISO code
  • frequency - Payment frequency (Monthly/Annual)
  • deel_fee - Deel’s service fee
  • employer_costs - Employer taxes and contributions
  • total_costs - Total monthly cost (salary + employer costs + Deel fee)
  • costs - Breakdown of individual employer costs
  • benefits_data - Details of included benefits (if any)
  • severance_accrual - Accrued severance costs (if applicable)

Including benefits in calculations

To get accurate cost estimates with benefits like health insurance or pension, follow these steps.

Step 1: Check available benefits

First, check which benefits are available for the target country.

API endpoint: GET /eor/validations/{country_code}

1import requests
2import os
3
4url = "https://api.letsdeel.com/rest/v2/eor/validations/NL"
5headers = {"Authorization": f"Bearer {os.getenv('DEEL_API_TOKEN')}"}
6
7response = requests.get(url, headers=headers)
8print(response.json())

Look for benefit types with "status": "ENABLED" and note the provider id values — use these in the cost calculation.

Step 2: Calculate costs with benefits

Include the benefits array with provider IDs in your cost calculation request.

1import requests
2import os
3
4url = "https://api.letsdeel.com/rest/v2/eor/employment_cost"
5headers = {
6 "Authorization": f"Bearer {os.getenv('DEEL_API_TOKEN')}",
7 "Content-Type": "application/json"
8}
9payload = {
10 "data": {
11 "country": "Netherlands",
12 "salary": 5000,
13 "currency": "EUR",
14 "benefits": [
15 {"provider_id": "01c60f26-fe0e-48f3-82d5-b899848eee7b"}
16 ]
17 }
18}
19
20response = requests.post(url, json=payload, headers=headers)
21print(response.json())

total_costs increases to include benefit costs. The benefits_data array contains the applied benefit details. Benefit costs are added on top of employer taxes.

Use cases

Compare employment costs across multiple countries to determine where to hire next. Calculate total costs for the same role in different countries to optimise your hiring budget.

1import requests
2import os
3
4headers = {
5 "Authorization": f"Bearer {os.getenv('DEEL_API_TOKEN')}",
6 "Content-Type": "application/json"
7}
8countries = [
9 {"name": "Netherlands", "salary": 5000, "currency": "EUR"},
10 {"name": "United Kingdom", "salary": 4500, "currency": "GBP"},
11 {"name": "Spain", "salary": 4000, "currency": "EUR"},
12]
13
14for country in countries:
15 response = requests.post(
16 "https://api.letsdeel.com/rest/v2/eor/employment_cost",
17 json={"data": country},
18 headers=headers
19 )
20 data = response.json()["data"]
21 print(f"{country['name']}: {data['total_costs']} {data['currency']}/month")

Integrate the cost calculator into your internal hiring platform or ATS to show real-time cost estimates as recruiters build job offers.

1import requests
2import os
3
4def get_employment_costs(country, salary, currency):
5 response = requests.post(
6 "https://api.letsdeel.com/rest/v2/eor/employment_cost",
7 json={"data": {"country": country, "salary": salary, "currency": currency}},
8 headers={"Authorization": f"Bearer {os.getenv('DEEL_API_TOKEN')}"}
9 )
10 data = response.json()["data"]
11 return {
12 "monthly_cost": data["total_costs"],
13 "annual_cost": float(data["total_costs"]) * 12,
14 "breakdown": data["costs"]
15 }

Help hiring managers compare different benefit packages and their impact on total costs.

1import requests
2import os
3
4def calculate_cost(country, salary, currency, benefits=None):
5 payload = {"data": {"country": country, "salary": salary, "currency": currency}}
6 if benefits:
7 payload["data"]["benefits"] = [{"provider_id": b} for b in benefits]
8 response = requests.post(
9 "https://api.letsdeel.com/rest/v2/eor/employment_cost",
10 json=payload,
11 headers={"Authorization": f"Bearer {os.getenv('DEEL_API_TOKEN')}"}
12 )
13 return response.json()["data"]
14
15without_benefits = calculate_cost("United States", 8000, "USD")
16with_health = calculate_cost("United States", 8000, "USD", [health_provider_id])
17with_all = calculate_cost("United States", 8000, "USD", [health_provider_id, pension_provider_id])
18
19print(f"No benefits: ${without_benefits['total_costs']}/month")
20print(f"Health only: ${with_health['total_costs']}/month")
21print(f"Full package: ${with_all['total_costs']}/month")

Best practices

If comparing costs across countries, convert to a common currency for accurate comparison. The API returns costs in the requested currency; apply exchange rates in your own code before comparing totals.

Display itemised costs (salary, taxes, benefits, fees) rather than only the total. Use the costs array in the response to render a clear breakdown for hiring managers or candidates.

Multiply monthly total_costs by 12 for annual budget planning. For fixed-term contracts shorter than 12 months, multiply by the actual contract duration in months.

Tax rates and benefit costs change regularly. Recalculate costs immediately before contract creation rather than relying on cached estimates from earlier in the hiring flow.

Some countries require severance accrual. The severance_accrual field in the response shows the monthly accrual amount — include this in long-term cost planning even when it is not part of the upfront total.

Next steps