Skip to content
Power BI

Power BI consultancy and development

Semantic modelling, DAX and report delivery with one agreed definition per measure.
  • One agreed definition for every KPI, enforced in the model rather than in a spreadsheet
  • Reports that open in under three seconds on real data volumes
  • Row-level security that survives an internal audit
  • A release path with a development, test and production workspace, and no manual publishing

Most organisations do not have a Power BI problem. They have a modelling problem that Power BI made visible. When four reports answer the same question four different ways, the fault is almost never the visual layer. It is that each report carries its own copy of the business logic, built by whoever happened to need it first.

We build the layer underneath: a dimensional semantic model with one definition per measure, tested DAX, row-level security that matches how your organisation actually delegates authority, and a deployment path from development to production that does not involve emailing a PBIX file. Reports then become cheap, because the hard thinking already happened once.

We work at whatever altitude you need, reviewing an estate someone else built, taking a first model from zero, or embedding with an internal team that wants to own it afterwards. We write the documentation on the way through, not as a closing invoice item.

DimensionDateDimensionCustomerDimensionProductDimensionLocationFactOne row = one sale line
Grain is the decision everything else follows from. One row of the fact table has exactly one meaning, stated in the model description.
What we deliver

What the work involves

Semantic model design

Star-schema modelling with conformed dimensions, role-playing dates, slowly changing dimensions where the business needs history, and composite models only where they earn their complexity. Delivered as a documented model with a measure dictionary.

DAX engineering and performance

Measure design that is readable and fast: calculation groups instead of twenty near-identical measures, correct filter-context handling, and tuning against DAX Studio and Performance Analyzer traces rather than guesswork.

Report and dashboard design

Reports built around the decision they support. Explicit information hierarchy, accessible colour, consistent interaction patterns, bookmarks used sparingly, and mobile layouts for the people who read on a phone between meetings.

Security and distribution

Row-level and object-level security driven by directory groups, workspace and app design that matches your org chart, and sensitivity labels so an export does not quietly become an uncontrolled copy.

Refresh and operations

Incremental refresh with correct partitioning, gateway sizing and failover, refresh monitoring with alerting, and a documented runbook naming who fixes what when a refresh fails at 04:00.

Estate review and remediation

A structured audit of an existing tenant: duplicate models, orphaned workspaces, licence waste, broken lineage, undocumented business logic, with a prioritised remediation plan and effort estimates.

Method

How the engagement runs

Each stage names the artefact it produces, so progress can be checked without a status meeting.
  1. Decision inventory

    We start from decisions, not data sources. Which recurring decisions need numbers, who makes them, on what cadence, and what currently blocks them. This is what keeps the model from becoming a data dump.

    Decision and KPI register, with owners and definitions

  2. Source and feasibility assessment

    Profiling of each source system: grain, volumes, change-tracking capability, data quality, refresh windows and access constraints. We flag what is genuinely unusable before anyone promises a dashboard on top of it.

    Source profile and data-quality findings

  3. Model build

    Dimensional model, transformations in the right layer, measures written against the register, and security applied from day one rather than retrofitted.

    Deployed semantic model, measure dictionary, security matrix

  4. Report build and validation

    Reports built with the people who will use them, validated line by line against the source of record until the numbers tie out. Disagreements get resolved and written down, not averaged.

    Signed-off reports and a reconciliation record

  5. Handover and enablement

    Workshops for the internal team, documentation in your own wiki, and a 30-day period where we fix what breaks while your team drives.

    Runbook, architecture document, recorded enablement sessions

Deliverables

Deliverables

  • Documented star-schema semantic model in a Power BI or Fabric workspace
  • Measure dictionary: every KPI with its business definition and DAX
  • Row-level security matrix mapped to directory groups
  • Deployment pipeline across development, test and production workspaces
  • Refresh architecture with incremental partitions and monitoring
  • Report set with accessibility and mobile layouts
  • Architecture decision record explaining why each trade-off was made
  • Enablement sessions recorded for future joiners
Stack

Technologies

  • Power BI Service
  • Power BI Desktop
  • Tabular Editor
  • DAX Studio
  • ALM Toolkit
  • Power Query / M
  • Azure Analysis Services
  • Microsoft Entra ID
  • Azure DevOps
  • Git
Questions

Power BI: common questions

Yes, and in most cases that is the cheaper route. We start with an estate review: which models are worth keeping, which should be consolidated into a shared semantic model, and which can be retired because nobody has opened them in six months. Rebuilding everything from scratch is occasionally the right answer, but it should be a conclusion, not a starting assumption.

It depends on how many people read reports versus build them, and whether you need capacity-only features such as larger models, Direct Lake or paginated reports. Pro per user is usually the cheapest option for small reader populations; a capacity SKU becomes cheaper as the reader count grows, and it is the only route to some features. We model your actual user mix and give you the break-even point before you commit, rather than recommending the largest SKU.

Performance is a modelling outcome more than a visual one. Narrow fact tables, integer surrogate keys, no bidirectional relationships unless genuinely required, aggregations where volumes justify them, and measures that avoid row-by-row iteration over large tables. We trace with Performance Analyzer and DAX Studio and publish before-and-after numbers, so the improvement is a measurement rather than a claim.

That is the design goal. Models are built in a source-controlled, scriptable form, naming conventions are consistent and documented, the measure dictionary explains intent and not just syntax, and we run enablement sessions during the build rather than in a rushed final week. Several clients keep us on a small retainer for review and second-line support; plenty do not need to.

Yes. We sign NDAs as a matter of course and prefer, where possible, to work against a masked or subset copy during development. Where production access is required we work inside your tenant under your conditional-access policies, with named accounts and no shared credentials.

Next step

Power BI: what the next step looks like

A paid two-week discovery, so the estimate is based on your data rather than on an average

Answered within one working day, by the engineer who would do the work