PSA Hub is a full professional services suite — time, expense, projects, billing, WIP, resourcing, forecasting — built natively on Microsoft Dataverse. Your project and billing data lives in your tenant, secured by your Entra ID, administered by the team that already runs your Dynamics 365 environment. Not a separate SaaS with a sync job pointed at Microsoft.
PSA Hub is deliberately not for everyone. It extends a Microsoft platform investment you have already made — that's where all of its advantages come from, so we'd rather you find out here than in a discovery call.
A firm on Dynamics with a standalone PSA tool is really running three systems. PSA Hub removes all three at once.
The standalone tool with its own logins, its own admin console, its own renewal, and its own copy of your clients and projects.
The connector, middleware, or custom sync that ferries accounts, contacts and invoices between the PSA tool and Dataverse — and breaks on every API change at either end.
The month-end ritual of explaining why the PSA tool, the CRM and the ledger disagree. One system of record means there is nothing to reconcile.
Model-driven surfaces are excellent at what they're for: a table, a form, a view. A PSA suite is mostly the other thing — a week grid, a planboard, a utilisation matrix, an approval queue. In the legacy product each of those was a custom web resource bolted into the shell, and that is where the cost lived.
One screenshot per module, from the running application — the same build that ships inside the managed solution. The tenant behind them is a demo one: the firm, the people and every number are invented, so nothing here is a client's data. The software isn't invented, and on a scoping call we run these same screens against yours.








Working software, described by what the screens actually do — and there is a screenshot of each one above. The recorded walkthrough follows on the scoping call, against your own data rather than a demo tenant.
Week grid and line views, copy-week, duplicate, PIA days, post to time card. Cells write straight through to psa_hours, and rows lock once approved. Approvals are one screen — PM, Admin and Claims with a scope toggle, bulk select, inline edit, blocked rows called out.
Line entry, claim creation, receipt upload and download, billable or not. Categories, projects and items resolve as you type rather than through a lookup dialog.
Summary, Financial, Calculations, Items, Budget, Invoice Scheme and Revenue Recognition as tabs on a single screen — not seven form loads. Calculated fields stay read-only; the plugins own them.
Draft invoices from approved time and expense — fixed-price installments or time & materials. Invoice list and detail with write-off reconciliation, AR/AP ageing, and invoice-scheme templates that validate installments to 100%.
Work in progress per project and financial period — WIP invoice and WIP proposal amounts carried in the revenue-recognition period history alongside spent and earned. You enter % complete per project item; the earned and WIP figures follow from it.
Margin per project — selling less cost across budget lines, with a percentage and negative lines called out, rolled up to a project total.
A planboard of who is booked on what, when — per person and per project, with a booking editor that creates, edits and deletes.
Utilisation and availability matrices comparing what's booked against psa_hoursperweek, plus a days mode over psa_piaday for the absence side of the same question.
Revenue forecasts as an editable pivot over psa_forecastitem with anchor dates and a project-totals tab — live projects and budgets, not a spreadsheet copy.
Employee, Project, Admin and Invoice Control boards; a grouped performance report rolling project items up per project and to a grand total; and an hours pivot by project, employee or hour type.
PSA Hub ships as a managed solution — standard Dataverse ALM, nothing bespoke. Inside it are the tables, the security roles, the server-side plugins, and the app surfaces themselves, including a compiled React front end that the Power Apps platform hosts, authenticates and governs. You import one solution; your admins already know how.
// what we run — the TypeScript source stays in our repo ▸ npm run build Vite bundle // React 19 + TypeScript ▸ power-apps push bundle → the PSAHub solution, dev environment ▸ export managed the managed .zip // this is the deliverable // what you import — one solution, everything in it ▸ tables + option sets psa_ schema, 87 registered entities ▸ security roles privilege-trimmed, mirrored from the sitemap ▸ plugin assemblies pricing, posting, approval rules // server-side ▸ the app surfaces 3 areas · 14 navigation groups // at runtime, on the platform you already run ▸ Entra ID platform sign-in // no token plumbing of ours ▸ Dataverse Web API typed services, one per table ▸ DLP + sharing enforced by the platform, not by the bundle ▸ psa_ plugins every rule that must not be bypassable
Per user, per month, billed annually. This is the software line only — implementation is a separately scoped, fixed-price engagement, quoted before you commit to either.
A PSA rollout is a business-process change, not an app install. Every engagement is scoped up front and quoted as a fixed price — engagements start at €18,000, and the number is driven by four things we'll measure with you before quoting:
Users to onboard and train, and the billable / support split — it sets configuration and training effort.
Which ledger you run and whether PSA Hub should feed it. Every accounting integration is custom-built and tested within the engagement — the single biggest scope driver.
How many years of projects, time and rate history come across, and from what system — clean sources migrate cheap, spreadsheets don't.
Every system beyond accounting that must send or receive PSA data — payroll, HR, BI — is scoped and priced per integration.
Why we won't publish a fixed implementation price: an underscoped PSA rollout fails at month-end, and month-end is the one deadline a professional services firm cannot move. Scoping first is how we make sure the number we quote is the number you pay.
Invoices, statements and engagement documents are part of running a practice — so PSA Hub carries our DocGen document engine with it. Take both together and Year 1 of DocGen is included, and the DocGen deployment fee is waived outright: the environment, Entra registration and Key Vault work it covers happens once, during the PSA Hub implementation, so we don't charge for it twice.
| 40 users on Pro, worked example | Standalone | Bundled |
|---|---|---|
| PSA Hub — 40 × €55 × 12 | €26,400 | €26,400 |
| DocGen platform | €8,500 | Year 1 included |
| DocGen deployment | €6,500 | Waived |
| Year 1 total | €41,400 | €26,400 |
| Year 2 onward | €34,900 | €31,900 |
No. PSA Hub is native Dataverse tables with model-driven surfaces over them, plus a compiled React front end delivered as a Power Apps code app. You get real application code where a canvas app would give you Power Fx, and purpose-built screens where a form designer would give you forms.
It keeps working. Everything runs over the same tables, so a pilot group can move to the new screens while everyone else stays put, and you cut over per team rather than per tenant. Nothing forces a big-bang switch.
Custom columns, option sets, and plugins are all Dataverse-side — they survive, because PSA Hub reads the same schema. What doesn't carry over is form layout, which is usually the part you were customizing to work around the form designer in the first place.
Through sanctioned layers — configuration data, custom columns, navigation slots, and Custom API hooks — never by forking the source. That constraint is the product: it's what keeps one fix reaching every client instead of N drifted copies.
It's responsive and usable on a tablet, and time and expense entry are the screens designed for a small viewport. There is no offline mode — it needs a connection, same as any Power Apps surface.
We do. You receive a managed solution containing the compiled app, the tables, the roles, and the plugins — the standard Power Platform deliverable. Your data and your configuration are yours throughout, and exportable at any time.
Implementation is quoted, not listed, and four things drive the number — headcount, your ledger, migration volume and integration count. Send us those and we can tell you the range before you spend a call finding it out.
Billable headcount, which accounting system you run, how many years of history would migrate, and what else needs to exchange data with PSA Hub. If PSA Hub isn't right for your firm, we'll say so in the reply.
A 30-minute call: we'll confirm fit, walk the working product, and leave you with the four numbers that drive your implementation quote. If PSA Hub isn't the right answer for your firm, we'll say so on the call.