Lakshya

Analytics & BI Tools · Chapter 7 of 18

Cost, and the three models that bite

BI licensing is priced in ways that punish specific shapes of organisation. Know which shape you are.

4 min read0 diagramsAll 18 chapters

Analytics cost has two halves that are usually budgeted separately and interact strongly: licensing, and the warehouse compute the tool consumes.

The licensing models

ModelPunishesTypical of
Per creator + per viewerLarge consumer populationsTableau
Per user, flatNothing much at small scale; capacity limits at largePower BI Pro
Capacity / premiumUnder-utilisation — you buy the peakPower BI Premium, Microsoft Fabric
Platform + per userSmall teams; economics improve with scaleLooker
Per seat, highSeat proliferation, which is exactly what happensAlteryx
Open sourceNothing in licence; you pay in engineering timeSuperset, Metabase

The half people forget: warehouse compute

Every dashboard interaction in a live-query tool is a warehouse query. A popular dashboard on DirectQuery or Looker can cost more in compute than the BI licence costs, and it appears on a different budget line so nobody connects them.

  • Check last-viewed timestamps. A meaningful share of scheduled refreshes serve dashboards nobody has opened in months.
  • Match refresh frequency to actual use. Hourly refreshes on a weekly report is the most common waste in the entire stack.
  • Aggregate for dashboards rather than querying raw. A pre-aggregated table serving a dashboard is usually orders of magnitude cheaper than the same dashboard scanning detail rows.
  • Cache deliberately, and understand what your tool caches by default — otherwise your optimisation measurements are measuring cache.
  • Attribute BI compute to teams, the same as any other warehouse spend.

The number worth producing

Cost per active dashboard consumer per month, licence plus compute together. Almost nobody computes it, and it immediately reveals the reports that cost hundreds of pounds a month to serve four people who could have had a scheduled email.

It also reframes the licensing conversation from a procurement argument into an engineering one, which is a much better place to have it.

Where BI spend actually goes

  • Licences are the visible cost and rarely the largest one. The warehouse compute driven by the tool usually exceeds it, and it appears on a different bill owned by a different team — which is exactly why nobody connects them.
  • Scheduled refreshes are the biggest single lever, and the easiest to check. Compare each dashboard's refresh frequency against its actual view count. Hourly refreshes on weekly-viewed dashboards are extremely common and cost real money every hour, forever.
  • Import models cost storage and refresh compute; live connections cost query compute. Neither is cheaper in general — it depends entirely on the ratio of viewers to refreshes, which is a number you can compute in an afternoon.
  • Row-level security can be very expensive when it forces a per-user query instead of a shared cached result. A dashboard that was cheap for everyone becomes a dashboard priced per viewer, and the change is invisible until the bill.
  • And unused content accumulates permanently, because deleting someone's dashboard is socially awkward and nobody is measured on it.

The audit that pays for itself in an afternoon

Join two lists: every scheduled refresh, and every dashboard's view count for the last ninety days.

The output is almost always the same shape: a small number of dashboards carry nearly all the views, and a long tail refreshes on a schedule while being viewed once a quarter or never at all.

Turn off the schedule for anything unviewed for ninety days. Do not delete — deleting starts an argument, and stopping a refresh does not. If someone opens it and complains it is stale, you have found a genuine user and can turn it back on.

That single move typically removes a large share of avoidable spend, requires no negotiation, and takes an afternoon.

Then make it permanent: a refresh schedule that expires unless renewed. Opt-in renewal beats opt-out deletion every time, because it moves the effort onto the person who wants the thing rather than the person paying for it.

Check yourself

What is usually the largest BI cost?The warehouse compute the tool drives — which appears on a different bill owned by a different team, so nobody connects them.
What is the highest-leverage audit?Joining scheduled refreshes against ninety-day view counts. The long tail refreshes on a schedule and is viewed almost never.
Why turn off the refresh rather than delete?Deleting starts an argument; stopping a refresh does not. If someone complains it is stale you have found a real user.
Why can row-level security be expensive?It can force a per-user query instead of a shared cached result, turning a dashboard that was cheap for everyone into one priced per viewer.
← Choosing, with real scenariosMaking analytics actually get used →