Deel logoPower BI logo

HR data to BI

Deel to Power BI integration: global headcount and pay costs per country and type of employer

With an integration between Deel and Power BI, employees, contractors and employer-of-record employments from Deel sit in a fixed Power BI model, per country, entity and type of employment. Pay costs from Deel payroll come along per payroll run in one currency, so finance sees global people costs next to the budget in Power BI.

What the integration does

Organisations that work through Deel with own entities, employer of record and contractors want to see people costs per country and per type in Power BI. Today those figures come from separate Deel exports in different currencies.

  1. Deel administration creates an API token with read access only to people, contracts and reports.
  2. Every day KoppelHet fetches all people with their employments, country, entity and type of employment.
  3. After a payroll run KoppelHet fetches the gross-to-net report of that run, converted to euros.
  4. The columns of each country are translated to fixed cost types in the model.
  5. KoppelHet refreshes the Power BI model; country managers see only their own country.
Deel → KoppelHet → Power BISOURCEDeelTARGETPower BIKoppelHetmapping · logging · monitoringDeel → KoppelHet → Power BISOURCEDeelTARGETPower BIKoppelHetmapping · logging · monitoring
Out: People with employments · Type of employment: own entity, EOR or contractor · Legal entities and cost centres · Gross-to-net data per payroll run · Departures, voluntary or not

What to watch for with Deel and Power BI

  • In Deel each employment has its own type, such as own entity, employer of record or contractor. If Power BI counts all people together, contractors end up in headcount. KoppelHet makes the type of employment a fixed dimension, so headcount, contractors and EOR can be shown separately.
  • Deel allows five requests per second for the whole organisation, across all tokens. If integrations to identity or finance systems are also running, they share the same capacity. KoppelHet spreads the daily run and handles a refusal properly, so other integrations do not stall.
  • Deel's gross-to-net report has columns per payroll run that differ per country. KoppelHet translates those columns into fixed cost types such as gross pay, employer costs and allowances, so Power BI can add up and compare countries.
  • Deel can convert the gross-to-net report to a chosen currency when it is retrieved. KoppelHet fetches each run in euros and stores that amount, so the pay costs of a closed run in Power BI no longer move with the exchange rate.
  • Deel records on departure whether someone left voluntarily. KoppelHet includes that, so Power BI shows voluntary and involuntary turnover per country and per type of employment.
  • Deel versions its API with a date in every request. KoppelHet pins the version, so a new Deel version does not silently change field names in the Power BI model. Switching happens deliberately and tested.

How we build and run it

  • The integration runs on the KoppelHet platform, hosted in a data centre in the EU.
  • Every sync and every error is visible in the functional log; on an error your administrator is notified.
  • A change that cannot go through is not half-applied but queued for another attempt.
  • KoppelHet is ISO 27001 certified. Data travels encrypted and stays on the platform no longer than needed.
  • After go-live we manage the integration and adjust it when your process changes.
  • The integration fits next to your existing integration layer. Only the fields in the design are transferred; the platform keeps no register of its own.

Implementation, architecture and compliance

Implementation and price

This is not an app you switch on. We build the integration for your organisation on our platform, with building blocks we reuse on every project. So it is custom work that does not start from scratch.

A consultant prepares the intake and analyses both systems. We then record the mapping and exceptions field by field, test in the test or acceptance environment and go live at a moment you choose. Costs are a one-off amount for the setup and a monthly amount for platform, monitoring and support.

Price indication · Basic

Leave your work email and you see the price indication right away.

We only use your address to follow up on your question about this integration.

Frequently asked questions

Does this also work without Deel payroll?

Yes. Then people, contracts and agreed pay come along, but no gross-to-net per run. Pay costs from another payroll package can be put in the same model.

Do contractors count in headcount?

You decide. The type of employment is a filter in the model, so headcount with and without contractors sits side by side.

What about the GDPR?

You are the controller and KoppelHet is the processor, under a data processing agreement. Bank details and identity documents from Deel are not included.

Technical details for IT

For those who want to know how it works under the hood: APIs, fields and sources used.

  • Deel REST API (api.letsdeel.com/rest) with API token or OAuth2 app and version header X-Version (stable version 2026-01-01). People through GET /people with fields, hiring_types, limit and offset; per employment including hiring_type, country, client_legal_entity, payment (rate, scale, currency), termination_last_day and voluntarily_left. Cost centres per legal entity.
  • Pay costs through GET /gp/reports/{id}/gross_to_net with currency, limit and offset; rows with dynamic columns, summary rows filtered out. Limit of five requests per second per organisation, 429 above that. Power BI semantic model in import mode, refreshed through the Power BI REST API, with row-level security on country.

Which fields are transferred

The key fields. The full mapping is agreed per customer.

Field in DeelField in Power BINotes
id (person)Persoonsleutel
employments[].hiring_typeDimensie soort dienstverbandOwn entity, EOR or contractor
employments[].country en client_legal_entityDimensie land en entiteit
employments[].payment (rate, scale, currency)Tabel afgesproken beloning
termination_last_day en voluntarily_leftTabel verloop
Gross-to-net-rapport per salarisrun (currency)Tabel loonkosten per runCountry columns translated to fixed cost types

Related

Which systems do you want to connect?

Tell us which systems you use and what should happen automatically. Together we define the smallest working solution, with a clear design and a quote before building.