Cornerstone OnDemand · Power BI

Cornerstone data in Power BI: five ways, compared

Reporting 2.0 exports, Cornerstone's own Power BI utility, your own pipeline, an ETL connector or an OData feed – what each is good at, and where it gets expensive.

Robert Bucher Robert BucherOctober 11, 2026 · 6 min read

Sooner or later somebody in your organization says it: "Can we just have the Cornerstone data in Power BI?" The finance dashboards live there, the operations dashboards live there, and the board is used to reading them there. Learning and talent data should sit next to them.

It is a fair ask, and there is more than one road to it. We have built most of them for clients over the years, so here they are side by side – with what each one is good at, and where it gets expensive.

Road 1: export from Reporting 2.0

The road everyone starts on. Build the report in Cornerstone Reporting 2.0, download it as Excel or CSV, and load the file into Power BI.

It works on day one and needs no API access at all. The catch is that the file is a photograph: it is as old as the moment you downloaded it, and somebody has to download it again next week. The download also has limits worth knowing – 200,000 records by default, one million at most – and scheduled reports nobody opens for 30 days switch themselves off. We wrote those up in detail in the Reporting 2.0 limits.

Good for: a one-off analysis, a pilot dashboard. Gets expensive when: the dashboard has to stay current without a person in the loop.

Road 2: Cornerstone's own Power BI utility

Cornerstone publishes a small open helper on GitHub, the CSOD Power BI Integration Utility. It is an HTML page that builds the query string you paste into Power BI Desktop (Get Data > Blank Query) to read Cornerstone's Edge OData API directly. The README also covers the same setup in Power Query for Excel.

It is free, it comes from Cornerstone, and it gets you a live connection without middleware. Read the README before you plan around it, though: it states that the integration "currently only supports Basic 2-Factor Authentication" and that "signature based authentication cannot be used at this time", and the setup works with a session token you create in the portal's Edge API section. From there you are writing OData queries against the raw Cornerstone objects yourself – the joins, the definitions of "overdue" or "mandatory", and the paging are your model's job.

Good for: a technical team that wants a direct line into Cornerstone from Power BI Desktop. Gets expensive when: many reports need consistent definitions, or authentication rules in your organization rule out the session-token approach.

Road 3: your own pipeline on the reporting APIs

The engineering road: a job that reads the Data Exporter API (DEAPI) or the Reporting API on a schedule, writes the rows into a database or warehouse, and Power BI reads from there.

This gives you full control over what is stored and how it is modelled, and the DEAPI's delta sync means you only move what changed. The cost is the pipeline itself: OAuth, paging, the throttle limits, delta tokens, retries, schema changes when Cornerstone adds or deprecates a field, and the warehouse to run it on. Both reporting APIs read from Cornerstone's Real-Time Data Warehouse, which refreshes about every 15 minutes in production, so that lag is built in whichever way you read. Getting data out of Cornerstone maps the APIs if you go this way.

Good for: organizations with a data team and a warehouse that already hosts other HR sources. Gets expensive when: nobody owns the pipeline after the person who built it moves on.

Road 4: an ETL connector

ETL and data-integration vendors offer ready-made Cornerstone connectors that land the data in your warehouse. One example is Fivetran's Cornerstone connector, listed as a "Lite" connector, which syncs tables such as users, OUs, training, transcripts, certifications, goals and requisitions – some incrementally, some re-imported on every sync.

You buy the plumbing instead of building it, and the connector vendor maintains it. What you still own is the warehouse, the model on top and the definitions: a connector delivers tables, not "compliance rate per location".

Good for: organizations that already run a warehouse and an ETL platform. Gets expensive when: the warehouse, the ETL licence and the modelling work are all new just for Cornerstone.

Road 5: the octo.taxi OData feed

This is the road we built octo.taxi for, so read this section knowing who wrote it.

octo.taxi syncs your Cornerstone data in near-realtime and serves it to Power BI through an OData feed at api.octo.taxi/v2/odata. There is a ready Power BI starter model: six tables (Employees, Learning, Trainings, OrgUnits, EmployeeOrgUnits and Certifications), their relationships, measures such as completions, mandatory training, headcount, certifications held and expiring in 90 days, and three report pages for compliance, completions and headcount.

The setup, as documented in the API reference:

  1. Create an API key in octo.taxi, for example named "Power BI", with read access or exactly the six scopes the model needs.
  2. In Power BI Desktop, create one blank query per block of the downloaded .pq file and paste the blocks, starting with the URL and key parameters.
  3. Connect to api.octo.taxi as Web, Anonymous – the key travels in a header – with privacy level Organizational, then Close & Apply.
  4. Add the relationships and measures from the .dax file.
  5. Publish, set the data source credentials in the service (Anonymous, Skip test connection), and schedule the refresh. No gateway is needed.

"Mandatory" in that model follows the same rule as in octo.taxi itself: Cornerstone's required flag set and no exemption date. That matters more than it sounds – it is the reason the number in Power BI matches the number on the octo.taxi dashboard.

Good for: HR and L&D teams that want current Cornerstone data in Power BI without building a pipeline. Limits: the feed carries the objects octo.taxi syncs, not every corner of Cornerstone; your organization's privacy rules (minimum group sizes, masking, entity limits on the key) apply in the feed as they do in the app.

The honest bit

None of these roads is wrong. A one-off board slide does not need a pipeline. A company with a mature warehouse and a data team will happily run its own. The real question is who keeps it running in a year – and whether the number in Power BI will still match the number your HR team sees.

Two things are true on every road. First, Cornerstone's Real-Time Data Warehouse sits upstream of all the API routes, so "live" means "about fifteen minutes behind the portal" at best. Second, Power BI has its own clock: shared capacity allows eight scheduled refreshes a day, Premium 48. Plan the dashboard around both, and nobody will be surprised in the meeting.

Your data should move freely, from A to B, in style.


Sources. Cornerstone: Reporting 2.0 – Create Report (record limits) · Cornerstone: Real-Time Data Warehouse overview · Cornerstone: CSOD Power BI Integration Utility (GitHub) · Cornerstone API throttling (csod.dev) · Fivetran: Cornerstone connector · Microsoft: Data refresh in Power BI · octo.taxi API reference: Power BI starter model.

Robert Bucher

Robert Bucher is the founder of Octily, a creative studio dedicated to Cornerstone OnDemand, and the maker of octo.taxi. Octily has delivered 300+ Cornerstone projects for 104+ clients.

Your Cornerstone data, without the rate-limit wall

Dashboards, org chart, plain-language queries, and a REST API of your own – synced and kept current for you.

Get started →

Related articles