Employment Cost Estimation
Overview
Cost estimation feature allows employers to calculate the total cost of employment in terms of EOR hiring in different countries.
ℹ️ The system cannot estimate cost with 100% accuracy so there might be slight variation in the actual cost of hiring.
List all available countries
The first step in setting up cost estimation is to know which countries are active and ready for cost calculation. To get this list, you can use the List Countries endpoint. You only need to provide your valid access token and it returns the complete list that looks like this:
{
"data": [
{
"code": "ARG",
"name": "Argentina",
"currency": {
"code": "ARS",
"name": "Argentine Peso",
"symbol": "$",
"slug": "ars-a2115934-1788-4f04-9e6f-9b385012d3b3"
},
"region_slug": "2f29ec37-b76c-4c7c-b719-a0319a250a8d",
"child_regions": [],
"has_additional_fields": false,
"availability": "active",
"original_country_slug": "argentina-eedc87b4-3b73-409a-8fa7-d6e8a7dfbcdf"
},
{
"code": "AUS",
"name": "Australia",
"currency": {
"code": "AUD",
"name": "Australian Dollar",
"symbol": "$",
"slug": "aud-40b20ff7-ef1e-4466-8728-515290209b69"
},
"region_slug": "ca932d45-2b37-451a-930b-dd2f8c0fadd7",
"child_regions": [
{
"code": "VIC",
"name": "Victoria",
"status": "active",
"slug": "aff70db8-804e-4622-82ad-2a7a706d63ad"
},
{
"code": "QLD",
"name": "Queensland",
"status": "active",
"slug": "c1821b98-65ff-4ace-9181-4a67e74eeb97"
},
{
"code": "SA",
"name": "South Australia",
"status": "active",
"slug": "d5ceb56c-9b2f-4ad3-850c-03fe9b23bca2"
},
{
"code": "TAS",
"name": "Tasmania",
"status": "active",
"slug": "86e66eb1-8e03-4556-a016-54447114b686"
},
{
"code": "NSW",
"name": "New South Wales",
"status": "active",
"slug": "e50e9e42-ae78-4ac8-82bf-bb729ef58c8c"
},
{
"code": "WA",
"name": "Western Australia",
"status": "active",
"slug": "0caf3eef-d110-4d16-9368-ab7c595279ac"
},
{
"code": "ACT",
"name": "Australian Capital Territory",
"status": "active",
"slug": "22f18e31-8b65-4a9b-9ad7-db62d4e31221"
},
{
"code": "NT",
"name": "Northern Territory",
"status": "active",
"slug": "bbd62a34-648e-4d05-9636-ebc617a95684"
}
],
"has_additional_fields": false,
"availability": "active",
"original_country_slug": "australia-3eff343c-71a5-4302-b038-ff09d3ddc9c6"
},
...
]
}
In this response you have:
code
: Represents the code of the country.name
: Represents the name of the country.currency
: Represents an object that contains fields to define the currency of that country. These fields are the code, name, symbol, and slug of the currency.region_slug
: A country can have multiple regions and sub-regions. This string represents a more specific geographical region within a country.child_regions
: Represents an object that contains details about sub-regions inside a country, if any. These fields are the code, name, status, and slug of the child region that are used to identify a part of the region.has_additional_fields
: This flag indicates whether a country requires additional information beyond the basic fields in the cost calculator.availability
: This flag shows the current status of the company.original_country_slug
: This string is a code that represents the entire country.
Fetch additional fields
When listing countries, if a country has has_additional_fields
set to true, you can use the region_slug
in the Show Region Fields endpoint to retrieve required fields for that region. This endpoint takes region_slug
as slug
and returns a JSON schema specifying the required fields.
{
"data": {
"version": 7,
"schema": {
"additionalProperties": false,
"properties": {
"contract_duration_type": {
"description": "Select the type of contract that applies to this employee",
"enum": [
"fixed",
"indefinite"
],
"title": "Contract Duration",
"x-jsf-presentation": {
"inputType": "radio",
"options": [
{ "label": "Indefinite", "value": "indefinite" },
{ "label": "Fixed Term", "value": "fixed" }
],
"placeholder": "Select the contract type"
}
}
},
"required": [
"benefit-acfe1bee-f7b0-4462-b039-ff2b09d82c30",
"benefit-d4446a62-e587-4c66-bc1e-63df4d6bb053",
"benefit-2b85e1f9-f22b-47e6-9f90-65c0096d405b"
],
"type": "object",
"x-jsf-order": [ "contract_duration_type" ]
}
}
Include benefits
You can also include benefits in cost estimation with the help of the Show Region Fields endpoint.
ℹ️ Including benefits in cost estimation is disabled by default. To use this feature, please reach out to our support team at [email protected].
In the above response, there is a required
field that specifies the benefit types for employees of that region. To process these benefits, you need the benefit_group_slug
and benefit_tier_slug
for each selected benefit type. In the above response, all three benefit types require these identifiers. Let's say, one of the benefits includes health insurance for employees. In that case,
benefit_group_slug
:benefit-d4446a62-e587-4c66-bc1e-63df4d6bb053
benefit_tier_slug
:c9bdad71-670b-4704-bc90-c8f7173e22da
for Family - Allianz Standard 2024 (Family) - 166 USD - 326 USD/mo
This information can be used to create a cost estimate, explained in the next step.
Create a cost estimate
Now that you have the required parameters, you can create a cost estimation using the Create Cost Estimate endpoint.
The request body requires the following parameters:
{
"employer_currency_slug": "USD",
"employments": [
{
"age": 30,
"annual_gross_salary": 20000,
"annual_gross_salary_in_employer_currency": 450000,
"benefits": [
{
"benefit_group_slug": "benefit_group_slug",
"benefit_tier_slug": "benefit_tier_slug"
}
],
"employment_term": "fixed",
"region_slug": "region_slug",
"regional_to_employer_exchange_rate": "123",
"title": "Backend developer"
}
],
"include_benefits": true,
"include_cost_breakdowns": false
}
In this request, you have:
employer_currency_slug
: Represents the currency slug of the employer.employments
: Contains the employment object for which cost estimation is required. Multiple employments can be mentioned but at least one is required.age
: Age of the employee for which cost estimation is required.annual_gross_salary
: Refers to the decided annual salary of the employee.annual_gross_salary_in_employer_currency
: Refers to the same gross annual salary but in the employer’s currency.benefits
: Is an array that specifies employee benefits throughbenefit_group_slug
andbenefit_tier_slug
. These values are retrieved in the previous step.employment_term
: Determines the type of employment the employee is going to be hired for. The choice is betweenfixed
andindefinite
.region_slug
: This is a required parameter that represents a specific geographical region within a country.regional_to_employer_exchange_rate
: Represents the exchange rate used to convert amounts from a regional/local currency to the employer's billing currency.title
: This is a string that you can use to give the employment a suitable title.
include_benefits
: When set to true, it includesannual_benefits_total
andmonthly_benefits_total
withinemployer_currency_costs
andregional_currency_costs
. These amounts are reflected in the overall estimate totals.include_cost_breakdown
: When set to true, it includes detailed breakdown for annual and monthly contributions breakdown and extra statutory payments breakdown.
When you make the call with the required parameters, you will receive a response that includes for each employment:
- Country and region details
- Employer currency costs, including:
- Annual and monthly gross salary
- Benefits breakdown (if requested)
- Contributions breakdown
- Management fees
- Total costs
- Regional currency costs with the same breakdowns as above
If you want to download this estimate, you can provide the same data in the create PDF of cost estimation endpoint and get a base64 encoded PDF file.
Updated about 1 month ago