data & analytics · business intelligence

Cross-system reporting built on the warehouse, with metrics defined once.

Some questions need CRM, ERP and claims data at the same time. Those get answered on the warehouse. We build that BI on Snowflake, Databricks or Fabric, in Power BI or Tableau, with a semantic model that defines each metric once and filters rows by identity group.

platforms
data-analytics / business-intelligence 6 platforms
01 · WAREHOUSE 02 · SEMANTIC LAYER 03 · BI TOOLS 04 · VIEWERS Snowflake or Databricks: certified marts Snowflake orDatabricks certified marts OneLake Delta tables: Fabric lakehouse OneLake Delta tables Fabric lakehouse Semantic model: Power BI · dbt · semantic views Semantic model Power BI · dbt ·semantic views Identity groups: Entra ID · Okta Identity groups Entra ID · Okta Power BI: Direct Lake · Import Power BI Direct Lake · Import Tableau: published data sources Tableau published data sources Business users: finance · operations · regions Business users finance · operations ·regions
Microsoft FabricSnowflakeDatabricksdbt
in short·15-second read

Analytics business intelligence turns warehouse data into reports and dashboards that combine many sources.

Cohash builds BI on Snowflake, Databricks and Microsoft Fabric with Power BI and Tableau. We design semantic models that define metrics once, use Direct Lake on Fabric where it fits, and apply row-level security based on identity provider groups, so every report shows each viewer only their data.

you probably need this if
  • The same revenue figure comes out differently in Power BI and Tableau.
  • Your Power BI Premium P SKU capacity needs to move to a Fabric F SKU.
  • Someone keeps row-level security up to date by hand in every report, rather than from identity groups.
Ask an engineer facts checked 2026-10-20 · 4 sources
how it runs
  1. 01Inventory
  2. 02Define metrics
  3. 03Build
  4. 04Adopt
you keep
  • Report and data set inventory
  • Metric dictionary with owners
  • Certified semantic models
+ 2 more documents
who does it
Power BI developerAnalytics engineer (dbt)Semantic model developer Microsoft Certified: Power BI Data Analyst Associate Microsoft Certified: Fabric Analytics Engineer Associate
platforms
the story · business intelligence

From the first call to a setup your own team can run.

Here's what usually prompts a call about your Business Intelligence, what we do about it and in which order, and where you end up.

  1. chapter 01 · where it hurts

    Why teams reach out

    • The same revenue figure comes out differently in Power BI and Tableau.
    • Your Power BI Premium P SKU capacity needs to move to a Fabric F SKU.
    • Someone keeps row-level security up to date by hand in every report, rather than from identity groups.
  2. chapter 02 · what we change

    How we solve it

    • Semantic models
    • Power BI on Fabric
    • Tableau on the warehouse
    • Row-level security from identity
    • Report rationalization
    • Power BI Premium migration
  3. chapter 03 · how it runs

    Our approach

    • Inventory
    • Define metrics
    • Build
    • Adopt
  4. chapter 04 · where you end up

    What changes

    • Workspaces move before the subscription ends and viewers keep access.
    • Tableau and Power BI now show the same member count, from one definition.
    • Report and data set inventory
    • Metric dictionary with owners
what we do

Where we spend the hours

6 areas of work, each one done by an engineer who has run it in production.

  1. Power BI semantic models, Snowflake semantic views or dbt's semantic layer, with metric definitions agreed with finance and operations before anyone builds a chart.

  2. Direct Lake models on Delta tables in OneLake for large data sets, Import where it's the better fit, and F SKU capacity sized against real usage.

  3. We publish data sources on Snowflake or Databricks and pick live or extract connections one workload at a time.

  4. We drive security roles from Entra ID or Okta groups, so a region manager's access changes when their group does.

  5. We retire duplicate and unused reports first, so there's less to move. The survivors go onto certified data sets.

  6. We move workspaces off retiring P SKUs onto Fabric F SKUs, and measure capacity before and after so the sizing isn't a guess.

capability 01 / 06in production

Semantic models

Power BI semantic models, Snowflake semantic views or dbt's semantic layer, with metric definitions agreed with finance and operations before anyone builds a chart.

capability 02 / 06in production

Power BI on Fabric

Direct Lake models on Delta tables in OneLake for large data sets, Import where it's the better fit, and F SKU capacity sized against real usage.

capability 03 / 06in production

Tableau on the warehouse

We publish data sources on Snowflake or Databricks and pick live or extract connections one workload at a time.

capability 04 / 06in production

Row-level security from identity

We drive security roles from Entra ID or Okta groups, so a region manager's access changes when their group does.

capability 05 / 06in production

Report rationalization

We retire duplicate and unused reports first, so there's less to move. The survivors go onto certified data sets.

capability 06 / 06in production

Power BI Premium migration

We move workspaces off retiring P SKUs onto Fabric F SKUs, and measure capacity before and after so the sizing isn't a guess.

typical situations

Situations we walk into

We pieced these together from Business Intelligence situations that come up a lot. They're patterns. You won't find a specific client in them.

case file 01

A P1 capacity, a few hundred workspaces and an agreement that ends in spring

composite · not a client story
  1. Beforethe situation

    Several hundred workspaces sit on one Power BI Premium P1 capacity. The enterprise agreement runs out in the spring, and Microsoft has stopped selling new P SKUs. Nobody has counted how many viewers depend on Free licenses, or checked whether any workspace has to change region.

  2. What we dothe work

    We pull load from the Fabric Capacity Metrics app and size the F SKU, starting at F64 because that keeps Free-license viewing. Large storage format models and Fabric items are listed in case a region move comes up. Then we buy the F SKU, reassign workspaces in batches and cancel the P SKU only after every batch is validated.

  3. Afterwhere you end up

    Workspaces move before the subscription ends and viewers keep access. Capacity is sized from measured load, not a straight P-to-F swap.

case file 02

Several definitions of 'active member' across Tableau and Power BI

composite · not a client story
  1. Beforethe situation

    Analysts publish in Tableau and Power BI, and the active member counts don't match. Each report filters eligibility spans its own way. Row-level security is a hand-kept table of email addresses.

  2. What we dothe work

    We gather every version of the metric and put them in front of the business owner until one definition is written down. That definition goes into a shared semantic model on the warehouse. Row-level security moves off the email table onto Entra ID security groups, and we retire duplicate reports after telling their owners.

  3. Afterwhere you end up

    Tableau and Power BI now show the same member count, from one definition. Put someone in the right group and they see the right rows. Take them out and the rows go too.

case studies

Business Intelligence case studies

All case studies
architecture

How warehouse BI defines metrics once and filters by identity group

Certified tables in Snowflake, Databricks or OneLake feed a semantic model that defines each metric once. Power BI uses Direct Lake or Import and Tableau uses published data sources, with row-level security driven by Entra ID or Okta groups.

How warehouse BI defines metrics once and filters by identity group Certified tables in Snowflake, Databricks or OneLake feed a semantic model that defines each metric once. Power BI uses Direct Lake or Import and Tableau uses published data sources, with row-level security driven by Entra ID or Okta groups. 01 · WAREHOUSE 02 · SEMANTIC LAYER 03 · BI TOOLS 04 · VIEWERS certified tables Direct Lake RLS role membership measures live or extract filtered reports filtered dashboards Snowflake orDatabricks certified marts Fb OneLake Deltatables Fabric lakehouse Semantic model Power BI · dbt · semanticviews Ex Identity groups Entra ID · Okta Power BI Direct Lake · Import Tableau published data sources Business users finance · operations ·regions
Read the diagram as text
  1. Snowflake or Databricks → Semantic model: certified tables
  2. OneLake Delta tables → Semantic model: Direct Lake
  3. Identity groups → Semantic model: RLS role membership
  4. Semantic model → Power BI: measures
  5. Snowflake or Databricks → Tableau: live or extract
  6. Power BI → Business users: filtered reports
  7. Tableau → Business users: filtered dashboards
how it runs

A typical engagement

We don't start a step until the last one has produced something you can check.

  1. step 01

    Inventory

    We catalogue reports, data sets, users and refresh schedules, with usage data from the BI platform.

  2. step 02

    Define metrics

    Key metrics written down with owners, sources and calculation rules.

  3. step 03

    Build

    We build semantic models and reports on certified data, then test two things. Are the numbers right, and who can see them?

  4. step 04

    Adopt

    Training, a request process for new reports and retirement of the old ones.

you keep

What you're left with

We write these for your Business Intelligence setup, and they're working documents. Your team should be able to keep things running from them long after we've gone.

  • inventory01

    Report and data set inventory

    yours to keep
  • document02

    Metric dictionary with owners

    yours to keep
  • design03

    Certified semantic models

    yours to keep
  • document04

    Row-level security mapped to identity groups

    yours to keep
  • plan05

    Reports, dashboards and an adoption plan

    yours to keep
talent and delivery · business intelligence

Certified engineers, wherever you need them.

Some clients want a project team, some want a couple of engineers on theirs. Either works. Onsite, nearshore or offshore, with handovers across time zones that keep things moving.

Onsite

Engineers at your sites in the US

Nearshore

Overlapping hours with US teams

Offshore

Overnight progress on your backlog

All time zones

Coverage handed over across time zones

24-hour coverage · US Central time
OnsiteUS business hours
Nearshoreoverlapping US hours
Offshoreovernight progress
Combinedhandover, not hand-off
roles we staff
  • Power BI developer
  • Analytics engineer (dbt)
  • Semantic model developer
  • Data visualization designer
  • BI administrator
01How is this different from your enterprise platforms BI work?

Our enterprise platforms BI service handles reporting inside Salesforce, Dynamics 365 or the ERP, for the people who work in those apps. This one is for reporting on the warehouse, where data from lots of systems gets joined and governed.

02Do we need to migrate off Power BI Premium?

If you run P SKUs, yes. Microsoft has stopped selling new P SKUs and each one ends at the end of its agreement term, followed by a grace period. Pro and Premium Per User aren't affected. We'll plan the move to an F SKU and check the sizing.

03Power BI or Tableau?

Usually whichever one you already license and know. Power BI fits Microsoft 365 and Fabric shops. Tableau is common where Salesforce is big, and with analysts who like exploring visually. We build on both.

04Should we use Direct Lake?

Direct Lake is a good fit for large Delta tables in OneLake, where Import refreshes take too long. It needs Fabric capacity, and it has limits. In some setups it quietly falls back to DirectQuery. So we normally prototype it on your own data first.

05What happens if our P SKU subscription ends before we finish moving?

Microsoft gives a 30-day grace period at the current size. From day 31 interactive operations are throttled, and from day 91 all operations are rejected until workspaces move to an F SKU or the capacity is deleted. We plan reassignment well before the end date so none of that applies.

related

Often paired with

Projects on Business Intelligence usually end up touching one of these, so they're worth a look.

sources 4 sources linked last checked 2026-10-20 content fingerprint da540304
  1. 01Microsoft Learn: Direct Lake overviewlearn.microsoft.com ↗
  2. 02Microsoft Learn: Power BI Premium to Microsoft Fabric migration overviewlearn.microsoft.com ↗
  3. 03Snowflake: Summit 2025 announcements, semantic views generally availabledocs.snowflake.com ↗
  4. 04Microsoft Learn: Power BI Premium P SKU to Fabric F SKU migration decision guidelearn.microsoft.com ↗
Reviewed by the Cohash team Product names are trademarks of their owners. how we handle facts and data →
next step

Tell us what you're running. We'll tell you what we'd do first.

A 30-minute working session with a senior engineer. No slides.

useful to bring
  • The platform and the version you're on
  • Where you need to get to, and by when
  • What's custom: rules, plugins, integrations
  • Any audit finding or deadline driving it