How does Power BI actually get data out of Unanet?
Through the Unanet Data Lake in most cases. Unanet states that the Data Lake provides a real-time replica of your Unanet database that you can connect to Power BI or Tableau (opens in new tab), reached with the ODBC or JDBC driver Unanet supplies. There is no first-party Unanet connector in Power BI, so that replica — not a screen-scrape and not a nightly report someone remembers to run — is the supported extraction route.
A driver-based source behaves differently from a cloud connector once the report leaves your laptop. The Power BI service cannot reach it directly, so scheduled refresh normally runs through an on-premises data gateway (opens in new tab) installed where the driver lives, inside the cadence Microsoft documents in its data refresh reference (opens in new tab). Where several years of timesheets have accumulated, incremental refresh (opens in new tab) re-reads only a recent window instead of the whole history every cycle. We install it, document it, and fix it out of your banked hours when something breaks — the part a connector product leaves to you.
If the Data Lake is not enabled on your subscription, the build still works: we land scheduled Unanet exports into a store you own and model from there. It carries less detail and takes more care to keep honest, so we say which route you have, and what it costs you in coverage, in the scope estimate before any hours are used.
Which Unanet records does the model need?
Four groups carry almost every question firms ask. The project and task structure with its budgets, the assignments that put named people on those tasks, the timesheet entries behind hours, and the expense and vendor cost lines behind everything else. Billing and revenue records join them where margin and backlog are in scope.
Modelling the first two properly is what separates a useful report from a pretty one. Unanet lets a project carry tasks several levels deep, and firms use that depth — phases under projects, sub-tasks under phases, a different shape per client. Flattened into a single label, that structure stops rolling up, and every number has to be re-aggregated by hand. We build it as a parent-child hierarchy with a path, so the same measure answers "how is this task doing" and "how is this division doing". Assignments matter for the same reason: the planned hours on an assignment are what makes a burn chart forward-looking instead of a post-mortem, and the resource plan versus actual comparison lives entirely on that join. The grain discipline underneath all of it is the same craft described on our Power BI data modeling and DAX page.
Where Unanet's own reporting stops and the model picks up
Unanet reports its own data well — the question a report answers, it answers accurately and as of now. The difference a semantic model makes is cross-project, trended over time, and defined once, so the same utilization number appears on the principal's page and the project manager's page without anyone reconciling two exports.
Unanet records, the grain they are captured at, and what the Power BI model adds
| Unanet record |
Grain it is captured at |
What the model adds |
| Projects & tasks |
A project with tasks nested several levels deep, each carrying its own budget and dates |
A parent-child hierarchy with a path, so cost, revenue and hours roll up and drill down through the same measure |
| Assignments & resource plan |
A person assigned to a task with planned hours over a date range |
Plan versus actual by person and task, forward burn against remaining budget, and bench or over-commitment visible before the month closes |
| Timesheets |
One entry per person, per task, per day, with a pay or bill type |
Utilization and billability on one definition, trended by week, with drill-through from any tile to the underlying entries |
| Expenses & vendor cost |
One line per expense or cost item against a project and task |
True project cost beside labor rather than in a separate report, with reimbursable and non-reimbursable split out |
| Billing & revenue |
Invoices and recognized revenue posted against project and period |
Margin by project and phase, realization against standard rates, and unbilled balances aged rather than shown as a single period figure |
| Indirect rates |
The provisional and actual rates Unanet ERP GovCon calculates for you |
The rates Unanet computes, trended month over month and carried into project margin — read from Unanet, never recalculated by us |
The honest answer is usually "both". Keep Unanet's reporting for running the business day to day, and use the model for the questions that decide staffing, pricing and which projects get a conversation this month.
GovCon or A/E: which half of the Unanet line are you on?
Unanet sells two ERPs that share a project, task and timesheet spine but serve different buyers: one for government contractors, one for architecture and engineering firms. The data model work is close to identical. The reporting priorities are not, and that decides what your first three pages look like.
Federal firms lead with funded value, burn against ceiling, labor by contract and indirect rates — and those rates are the one area we deliberately do not reinvent. Unanet ERP GovCon calculates them; the dashboard trends what it calculates. If you want the pool-and-base treatment in depth, including how DCAA-driven cost-pool structures shape a model, that is covered on our Deltek Costpoint Power BI dashboard page, which is the equivalent build for the other GovCon ERP. A/E firms lead with utilization by studio, net service revenue, backlog and effort against fee; the same questions on Deltek's A/E platform are on our Deltek Vantagepoint Power BI dashboard page. If you are still deciding which metrics belong on a leadership page at all, the vendor-neutral version of that argument is on our Power BI for professional services firms page.
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 project profit, burn against budget and utilization from an approved Data Lake connection usually fits a Starter block.
Growth is the more common choice once backlog, resource plan versus actual, or several years of timesheet history come in, because agreeing definitions across project management and finance takes discussion as well as development. Most individual tasks ship within 3–5 business days of scope approval, and you get a scope and hours estimate before anything starts. Our guide to what a Power BI dashboard costs to build covers what moves the number, and how prepaid Flex hours work explains the model in full.
Who is this for, and what is out of scope?
Firms running Unanet with enough project history to trend and no dedicated analytics engineer — typically the point where the same three exports get rebuilt before every leadership meeting, or two departments quote different utilization figures in the same room. Controllers, finance directors, principals and operations leads are the people who usually get in touch.
Writing back to Unanet is out of scope: this is a read-only reporting build, and timesheet, billing and project changes belong in the ERP. Compliance filings are out of scope too. We build management reporting that shows exposure early; your accountants and your Unanet configuration stay the system of record for anything submitted to a client, a contracting officer or an auditor. You own everything we build — the report file, the semantic model and measures, the extraction logic and the refresh schedule all live in your tenant. Contact is form-only: send your request and we reply with a scope estimate.