How does Power BI actually get data out of ADP?
Through one of four routes, and choosing between them is most of the early value. Power BI Desktop ships no first-party ADP connector, so something has to publish the data. ADP's own answer is the Microsoft Power BI Connector for ADP DataCloud Enhanced Insights (opens in new tab), whose listing states plainly that it requires a subscription to DataCloud Enhanced Insights. That is a real product and a fair option if you already hold the tier. If you do not, buying an analytics subscription to feed a dashboard you are building anyway deserves an honest comparison rather than a shrug.
The second route is the ADP developer platform, where Workforce Now exposes REST endpoints for workers, time and payroll-adjacent data. The catch is authentication: ADP issues a client certificate to your organization and expects it presented alongside the OAuth credentials on every call. Power Query has no data source authentication option that does that, which is exactly where most in-house attempts stop. The fix is unglamorous and durable — a small service, function or scheduled job you own makes the authenticated call and lands the result somewhere Power BI can read on a schedule.
Routes out of ADP, and when each one is the right choice
| Route |
What it is |
When we use it |
| ADP Marketplace Power BI connector |
ADP's listed connector for DataCloud Enhanced Insights, which its listing states requires a subscription to that tier |
You already hold Enhanced Insights and its packaged metric set covers what leadership asks for |
| Workforce Now REST APIs |
The documented endpoints on ADP's developer platform, authorised with OAuth 2.0 plus a client certificate issued to you |
You need fields the packaged analytics does not carry, or you would rather not add a subscription tier |
| Scheduled custom report exports |
Reports built in Workforce Now's own reporting tools, delivered on a schedule as files to storage you control |
The fastest honest start — no developer registration, and your HR team owns the field list |
| Third-party drivers and integration platforms |
Commercial ODBC drivers and iPaaS tools that wrap the same ADP APIs behind a licence |
Rarely our first suggestion — it adds a renewal and a vendor between you and your own data |
| An existing warehouse copy |
ADP extracts already landing in SQL Server, Snowflake, Databricks or Microsoft Fabric through an internal pipeline |
Always our first question — faster to refresh, cheaper to model, and already joinable to finance data |
Whichever route wins, one Power BI-specific trap is worth naming early. Building request URLs dynamically in Power Query, by concatenating a date or a location code straight into the address, produces a query the service cannot classify and will refuse to refresh on a schedule — even though it worked in Desktop. Keep the base address constant and pass everything variable as relative path and query parameters, which the Power Query Web connector (opens in new tab) supports directly. Where the landing zone is on your network, the on-premises data gateway (opens in new tab) carries the refresh.
Which ADP product are you on, and why does it change the build?
Because ADP is not one system. It is a family of platforms sold to different sizes of employer, and what you can extract, at what effort, follows from which one your company bought. Getting this wrong is the single most common reason an ADP reporting estimate turns out to be optimistic, so we confirm it in scoping and write the route into the scope document before hours start.
The ADP product family and what each one means for reporting
| Product |
Who it is sold to |
What it means for extraction |
| RUN Powered by ADP |
Small businesses running payroll with a light HR layer |
Usually scheduled report exports rather than an API project — and that is normally the proportionate answer |
| ADP Workforce Now |
Mid-sized employers, and the most common case we are asked about |
Both a reporting layer and a documented API surface, so the route is a genuine choice rather than a constraint |
| ADP Vantage HCM |
Large enterprises with a broader HCM footprint |
Typically agreed data feeds and scheduled extracts; we confirm what your contract covers before scoping |
| ADP Enterprise HR |
Long-standing large-employer implementations |
Often already landing into a warehouse, which usually makes that copy the better source |
| ADP TotalSource (PEO) |
Employers in a co-employment arrangement |
Your data sits inside the PEO environment, so available fields and access depend on the service agreement |
| Multi-country ADP payroll |
Employers running several countries through ADP services |
Consolidation work first — currencies, calendars and country files aligned before a single measure is written |
Two modelling details do most of the damage if they are left implicit. The first is worker type: employees, part-timers, seasonal staff and contractors all sit in the population, and almost every company counts them differently. We encode that as a flag on the worker dimension so the rule is visible and changeable. The second is the department and location hierarchy. ADP carries home department, location and job codes, and those codes get renamed and re-parented over time, so we build the hierarchy as a dimension with its own history rather than reading today's labels back over last year's numbers. The wider craft behind both is on our Power BI data modeling and DAX page, and the structure follows Microsoft's star schema guidance (opens in new tab).
Which HR and labor measures does the dashboard carry?
The set below is what HR directors and the operations leaders who own the labor line consistently ask for, and each one hides a definition somebody has to agree with before the number means anything. We write them as documented DAX measures over the star schema and a real date table, then validate every total against a report your team already runs inside ADP.
Core HR and labor measures we build over the ADP model
| Measure |
How it is defined |
Why it is written this way |
| Headcount and FTE |
Active workers as of the selected date, with FTE reported next to the body count |
Point-in-time, so a month-end figure never depends on when the refresh happened to run |
| Headcount movement |
Month-end headcount split into hires, terminations and net change by department and location |
A flat total can hide heavy churn underneath, and movement is the part leadership can act on |
| Annualized voluntary turnover |
Voluntary terminations in the period over average headcount, scaled to a full year |
Annualizing puts a month, a quarter and a year on one comparable axis |
| Rolling 12-month turnover |
Terminations across the trailing twelve months over average headcount for the same window |
Smooths seasonal exits so the trend shows direction rather than one heavy month |
| New-hire retention |
Share of each hire cohort still active at 90 days, six months and one year |
Cohorted by hire date, so a bad hiring quarter stays attached to the quarter that caused it |
| Labor cost by department and location |
Paid labor from ADP allocated to calendar periods and rolled up the department and location hierarchy |
Pay periods do not align to months, so the allocation rule has to be explicit and visible |
| Overtime hours and overtime share |
Overtime and premium hours, and overtime as a percentage of total hours, by department, location and week |
The share is the number that travels — it is comparable across sites of different sizes |
| Absence and PTO balances |
Absence occurrences and hours, plus outstanding accrued balances where ADP carries them |
Absence is usually the leading indicator that shows up before the overtime bill does |
Overtime by location is normally the measure that changes a conversation. Arithmetically it is trivial. Organisationally it is uncomfortable, because an overtime percentage that reads as acceptable company-wide often resolves into two or three sites carrying nearly all of it, and those sites are frequently the same ones carrying the turnover. Putting both measures on one page, against one department dimension, is the entire point of building the model rather than exporting two reports.
Where does ADP's own analytics stop?
ADP's reporting and its DataCloud analytics are capable inside their own boundaries, and for questions about ADP data in ADP's shape they are the right tool. The requests that reach us are the ones that cross a boundary: into finance and the general ledger, into scheduling or point-of-sale volumes, or across several years in which departments were renamed and merged.
ADP's reporting and analytics compared with a custom Power BI model
| What you are trying to do |
Reporting and analytics inside ADP |
Custom Power BI model |
| Operational HR and payroll lists |
Its core strength — live, in context, already secured |
Possible, but not a reason on its own to build a model |
| Labor cost against the GL and budget |
Budget and actuals usually live in accounting, outside ADP |
Labor modelled beside ledger and plan data as conformed facts |
| Overtime against demand or volume |
The demand signal is in scheduling, POS or your ops system |
Hours and volume on one date table, so the ratio is a measure |
| Turnover your way |
Fixed to the definitions the packaged report or tier chose |
Every variant an explicit, documented measure you can change |
| Multi-year trend across reorganisations |
Constrained by today's department and location codes |
A historised hierarchy keeps comparisons honest through a reorg |
| Where the logic and access live |
Inside the vendor's platform, and behind its subscription tiers |
In a model file in your own tenant, which you own outright |
The practical answer is usually both. Keep ADP for running payroll and HR operations, and build the model for the numbers that decide staffing levels, overtime approvals and where a retention budget goes next quarter.
How is people data secured and refreshed?
Carefully, because this is the most sensitive dataset most companies own. We pull the narrowest field list the agreed metrics require and leave identifiers out of the model where a measure does not need them. Visibility is then handled with row-level security in the Power BI service (opens in new tab), driven from a mapping of viewers to departments and locations, so a site manager sees their own crew, an HR business partner sees their assigned groups and leadership sees everything — all from one published report. Our guide to Power BI row-level security setup walks through how those roles are built and tested.
Small-population views get deliberate treatment too: where a filter would leave a cell describing a handful of employees, we suppress or aggregate it rather than publish an average that identifies someone. Refresh is scheduled to match how the data actually moves — daily is right for most HR reporting, with a tighter cadence around each pay run — inside Microsoft's documented data refresh limits (opens in new tab). Where years of time and pay history have accumulated, incremental refresh (opens in new tab) keeps each cycle to a recent window.
What does the build cost, and how long does it take?
Prepaid Flex hours that never expire: Starter 20 hours at $125/hr ($2,500), Growth 40 hours at $115/hr ($4,600), Power 80 hours at $100/hr ($8,000), with hourly work from $100/hour on the largest block. A first build covering headcount, turnover, overtime and labor cost by department, from scheduled exports or an existing warehouse copy, usually fits a Starter block. Growth is the realistic tier when the API route with certificate authentication has to be stood up, when several ADP companies or countries need consolidating, or when definitions have to be negotiated between HR, operations and finance before development starts.
Most tasks ship within 3–5 business days of scope approval, and you get a scope and hours estimate before anything begins. Our guide to Power BI dashboard development cost covers what moves the number, how prepaid Flex hours work explains the model in full, and custom Power BI dashboard development describes the wider service this build sits inside.
Who is this for, and what is out of scope?
Employers running ADP with enough history to trend and no dedicated analytics engineer — typically the point where somebody exports the same reports every month and leadership has quietly stopped trusting the reconciliation. HR directors, operations leaders at multi-site businesses, and the finance partners who own the labor line are the people who usually get in touch, often after a meeting where two turnover numbers disagreed.
Generic payroll cost reporting is deliberately not this page. Gross-to-net, deduction and tax categories, pay-register reconciliation and labor cost by cost center are provider-agnostic work that we cover on the Power BI payroll dashboard page, which builds from any provider's registers. This page is the ADP-specific half: getting the data out, and the HR and labor metrics that follow. If your HR system of record is Workday rather than ADP, the extraction story is completely different and the Workday Power BI dashboard page covers it. For Paylocity customers, see the Paylocity Power BI dashboard page. Multi-site operators watching labor as a share of sales will also want the industry view on Power BI for restaurants or Power BI for franchise owners, where overtime sits next to revenue. Contact is form-only — send your request and we'll reply with a scope estimate.