- Home
- Partners
For Microsoft partners
Dashboards that tell your client what to do
Not “gross margin is 31%.” “Stop quoting these twelve items.” Built on your client’s own data, in their tenant, under your brand.
- ✓Mutual non-solicit signed before kickoff
- ✓Your brand, your email, your deck
- ✓I add to your scope, never replace it
Seven dashboards, the same method
The dashboard shows the problem and stops there.
Pick a dashboard below and follow one number from the morning screen to the thing somebody does about it. Your reporting gets it to step two and it is right to. Everything after that is a different job, and it is the one I do.
One morning number, four questions nobody asked it
- 512items at zerowhat the report shows
- 233really shortless make to order
- 184with nothing on orderless already covered
- 19,400units of orders blockedpurchasing joined to sales
- $6.9Mworking capital in reachgraded against the band
A correct receivables balance, and nobody knows who to ring
- Already in place
$2.91Moutstanding across 1,240 open invoices
The balance is right, current, and on a screen every morning.
Everything refreshes on schedule. That is the hard part, and your team did it.

A real Power BI page on synthetic demo data. Nothing is wrong with it. Open it live in Power BI (opens in a new tab) - Where it stops
$1.38Mpast due, across 604 invoices
Past due is not the same as chaseable, and the report cannot tell them apart.
This is where a reporting engagement ends. The next question is not a chart request.
What the report already has
AR Past Due = CALCULATE ( [AR Outstanding], 'SalesInvoices'[Days Overdue] > 0 ) - What I add
$1.02Mgenuinely chaseable, 438 invoices
Drop the disputes, the payment promises and the accounts on hold.
Ringing a customer about an invoice they dispute, or one they promised to pay on Friday, costs the relationship and collects nothing.
Why it does not come as standard. Disputes, payment promises and credit holds sit in three different places, and nobody asks a report writer to join them.
$1.38Mless $367K on dispute, promised or on hold$1.02Mworth a callThe measure that replaces past due
AR Chaseable Today = SUMX ( FILTER ( 'SalesInvoices', 'SalesInvoices'[Days Overdue] > 0 && 'SalesInvoices'[On Dispute] = "No" && ISEMPTY ( RELATEDTABLE ( 'PaymentPromises' ) ) && RELATED ( 'Customers'[On Credit Hold] ) = "No" ), 'SalesInvoices'[Remaining Amount] ) - What I add
$432Kin the forty worth a call first
Ranked by value, so somebody works an actual list on Monday.
Forty calls cover over 40% of everything worth chasing.

The same data as a call list, from the same model. Open it live in Power BI (opens in a new tab) The call list, as a measure
AR Call First 40 = SUMX ( TOPN ( 40, FILTER ( 'SalesInvoices', 'SalesInvoices'[Days Overdue] > 0 && 'SalesInvoices'[On Dispute] = "No" && ISEMPTY ( RELATEDTABLE ( 'PaymentPromises' ) ) && RELATED ( 'Customers'[On Credit Hold] ) = "No" ), 'SalesInvoices'[Remaining Amount], DESC ), 'SalesInvoices'[Remaining Amount] ) - What waiting costs
349 of 438still under 90 days if the calls start a month from now
Every month this list waits, $202K more crosses the ninety-day line.
Ageing is arithmetic: an invoice at 78 days is at 108 a month from now, and collections teams triage by exactly those bands. This is what a dashboard that only reports the present cannot tell you.
Of the 438 chaseable invoices, how many are still under 90 days if the calls start
Today400 of 438 · $957KIn 2 weeks372 of 438 · $874KIn a month349 of 438 · $755KIn 2 months265 of 438 · $550KUnder 90 daysPast the 90-day line
- What I add
40calls, ranked, in front of the owner each morning
Then make it a routine, so the list does not wait for someone to look.
The list refreshes with the data and goes to whoever owns collections, with last week's calls marked so nobody rings the same customer twice.
Why it does not come as standard. This is a process change, not a report: an owner, a time of day and a list that arrives without anyone opening a dashboard.
All of it ships inside the dashboard. The measures, the findings and the worklists live in the same model and the same report your client already opens. There is no spreadsheet beside it and nothing to maintain separately.
Your clients already run Microsoft’s free Power BI apps? What they cover, and where they stop →
The real report, live · all 17 pages · synthetic data
Where this comes from
This is not a thought experiment. The method above is what I do on live engagements, and the report you are looking at is a real Power BI project built the way I would build yours. The data in it is invented, on purpose: what the same measures return on a client’s own numbers is theirs, not mine to publish. So the page shows you the method in full and none of their figures.
Illustrative examples · not client data
What the first one looks like
One report on your client’s data, scoped before it starts
The smallest thing worth doing, and the one I would start with on a client I have never met.
- Before
We agree the rules before anything is built
One session with you and whoever owns the number at your client. What counts as short, what the margin floor is, which rows the metric should never have counted. Those answers are the deliverable's spec and they get written down.
- During
I build it in their tenant, inside the report they already open
Their data, their model, your project plan. Measures, the worklist and the finding the report writes for itself. No spreadsheet beside it and nothing new for anyone to log into.
- After
You hand it back under your brand
You get the model, the measures and the documentation of every rule we agreed. Anything I find that needs platform work comes back to you, not to the client.
It is quoted as a fixed deliverable before any work starts, so you know the number before you commit and there are no hourly surprises. What you charge your client on top is entirely your business.
The alternative is hiring. A business intelligence developer in the United States is paid between $109,250 and $156,500 according to Robert Half’s 2026 salary guide, plus recruiting and the weeks before they are productive. Subcontracting makes that capacity variable instead of fixed, which matters when reporting demand arrives in bursts after go-live.
Where the work sits
I take the middle three stages and hand them back branded
The rules that decide what counts as worth acting on live in the model, agreed with the owner before the build.
YOU
The tenant
Configured, posted to, live
ME
The feed
Scheduled, incremental, read-only
ME
The rules
The thresholds the owner signed off
ME
The report
Your palette, your logo, your file
CLIENT
Their home page
Where they already look every morning
How visible I am
Your decision, per engagement
Invisible
DefaultYou are the only name the client sees. I do not attend client meetings and nothing carries my name.
Your team, extended
Most commonI join client calls as part of your team, introduced by you, when the reporting needs answering for in the room.
Named specialist
Your callIntroduced as your reporting specialist, by name. Some partners find that raises the price they can charge.
Before anything else
The questions partners actually ask
Will you approach my client?
No. A mutual non-solicit is signed before kickoff, covering your client and your staff, for two years past the last engagement. It runs both ways.
Whose brand does the work go out under?
Yours, by default. Your email, your templates, your deck. You can also introduce me as your named reporting specialist if you prefer. It is your choice per engagement, not a fixed policy.
We already deployed the standard reports. Why would we need you?
Because those reports answer what happened and stop there. They are good at it, and I start from them rather than replacing them. What they cannot do is rank, threshold or prioritise against your client’s own rules, because the vendor has no way of knowing what those rules are. That last step is the whole job.
Will you widen the scope on my client?
No. Anything I find that needs platform work comes back to you, not to the client. I do not implement ERP and I do not sell the remediation, so I am not competing with you for the implementation or the managed service.
What does it cost?
Work is quoted as a fixed deliverable, as a block of days, or as discovery only, and the rate is agreed per engagement before anything starts. You are quoted before work begins and there are no hourly surprises. What you charge your client is entirely your business.
Where do the thresholds come from?
Your client. A recommendation is only as good as the rule behind it, so the margin floor, the lead time, the ageing window and the collection pace are set with the owner and written down before anything is built. I do not invent a threshold and I do not let a report imply one nobody agreed to.
Fixed deliverable · blocked days · or discovery only · quoted before work starts
What does your client’s reporting tell them to do right now?
Send a page of it and I’ll tell you what it cannot answer yet.
Josh Elberg · Palavir. Fifteen years building reporting layers and defending the numbers on them. Power BI, Fabric, Tableau. Detroit, remote across the US and Canada.