Acumatica to Power BI: OData, Generic Inquiries or SQL – Which Should You Use?

Bogdan Pavlovic Avatar

When a company decides to report on Acumatica data in Power BI, the first technical question is: how do we get the data out? There are three main options. Here is how I choose between them.

Option 1: Generic Inquiries exposed through OData (most common)

You build a Generic Inquiry in Acumatica with exactly the fields you need, tick “Expose via OData”, and connect to it from Power BI with the OData feed connector.

Best for: most finance and operations reporting, especially on Acumatica SaaS, where you don’t have database access.

Pros:

  • Works on SaaS and private cloud
  • Acumatica security applies: users only see what their role allows
  • You control the shape of the data in the inquiry, so Power BI receives clean tables

Cons:

  • Large inquiries can be slow or time out
  • Every change to the data needs a change to the inquiry

Option 2: OData on Acumatica data entities (DACs)

Newer Acumatica versions can also expose data directly through an OData v4 endpoint based on the system’s data access classes, without building a Generic Inquiry first.

Best for: teams that want raw tables and prefer to do the modeling in Power BI.

Cons: you need to understand the Acumatica data structure well, and you often load more data than you need.

Option 3: Direct SQL access

If Acumatica is hosted on your own servers (or a private cloud where you have database access), Power BI can read the SQL database directly or through a reporting replica.

Best for: large data volumes and complex history, where speed matters most.

Cons: not available on standard SaaS, bypasses Acumatica role security, and the raw schema is complex. Always use a read-only account, and preferably a copy of the database rather than production.

Common problem: the OData feed times out

If a feed with hundreds of thousands of rows is slow or fails, try these in order:

  • Remove columns you don’t use from the Generic Inquiry. Fewer columns means a much smaller payload.
  • Filter in the inquiry, for example only the last few years, or only posted transactions.
  • Aggregate in the inquiry when you don’t need transaction-level detail (for example GL balances by account and period instead of every journal line).
  • Split large inquiries into several smaller ones (for example by year) and append them in Power Query.
  • Schedule refreshes outside business hours to reduce load on the Acumatica instance.

My recommendation

For most companies on Acumatica SaaS: start with well-designed Generic Inquiries exposed via OData, one per fact table (GL balances, AR invoices, AP bills, inventory transactions), plus small inquiries for dimensions (accounts, branches, customers, vendors, items). It’s the easiest to maintain and respects Acumatica security.

Need help connecting Acumatica to Power BI?

That is exactly what my Power BI for Acumatica service does. See the pricing guide or get in touch.