Source: raw/Claude_Just_Replaced_My_Power_BI_Developer_Custom_Visuals.md — Mike, F9 Finance (“Finance AI Insider” newsletter), YouTube KV84OuB5q_4

Mike (F9 Finance) demonstrates a free-tier workflow for building any Power BI custom visual by describing it to Claude. Two free Microsoft AppSource visuals — HTML Content (renders an HTML string returned by a DAX measure) and Deneb (renders a Vega-Lite spec) — paired with Claude reading your model’s TMDL files, let finance teams build red/green variance KPI cards, multi-location variance tables, and bullet charts without a developer and without leaving Power BI. The whole demo runs on Claude’s free tier.

Key Takeaways

  • Two free AppSource visuals do the rendering. HTML Content (a.k.a. HTML Viewer) takes an HTML string returned by a DAX measure and renders it on the canvas; Deneb renders a Vega-Lite chart spec. Install each in ~2 min: Build visuals → … (get more visuals) → AppSource → search “HTML” / “Deneb” → Add.
  • Give Claude your schema via TMDL. Save the report as a Power BI project (.pbip), not a .pbix — that exposes a semantic model folder whose definition/ holds TMDL files (database, model, and per-table). Attach those so Claude knows your exact table / column / measure names. TMDL carries structure, not data, so Claude will ask clarifying questions about account values.
  • Free tier is enough. Model = Sonnet, reasoning effort bumped to high (the best a free plan allows). The author notes the same prompts work on ChatGPT/Copilot but finds Claude strongest at HTML + DAX.
  • HTML Content pattern: prompt Claude (“act as an expert Power BI designer… write the DAX measures that return an HTML string”) → it returns a DAX measure → paste it as a New Measure on the table → drop that measure into the visual’s Values field. Variance KPI cards flip red/green by direction (higher revenue = green, higher expense = red); multi-location tables use color dots for favorable/unfavorable vs the business average.
  • Deneb pattern is different: Claude writes a Vega-Lite spec; you first add the required measures to the Deneb visual’s data, then Create → Vega-Lite → empty template → paste the spec. This is how you get a bullet chart (actual vs budget) — a standard finance visual Power BI lacks natively — in ~30 seconds.
  • Falsifiable gotcha: Deneb renders blank if the spec’s field names don’t match the model exactly. Field-name parity is mandatory.
  • Outcome claimed: a controller’s monthly board-pack section dropped from ~4 hours to 20 minutes; KPI views that were exported-to-Excel-screenshot-into-PowerPoint now live in the report and update with the data.

Implementation

  • Tool/Service: Power BI Desktop + free AppSource visuals (HTML Content, Deneb) + Claude (Sonnet, free tier, effort high).
  • Setup: Install both visuals from AppSource; save report As → Power BI project (.pbip); attach semantic model/definition/*.tmdl to Claude.
  • Cost: $0 (free visuals + Claude free tier). Paid path: Claude Code / Cowork can connect directly to Power BI and auto-feed the model (a separate companion workflow the video links but does not show).
  • Integration notes: DAX measures that return HTML go in HTML Content → Values; Vega-Lite specs go in Deneb’s editor. Because TMDL is structure-only, expect Claude to ask about account values before writing multi-metric tables.

Try It

  1. Install HTML Content and Deneb from AppSource (~2 min each).
  2. Save your report as a .pbip project; attach the TMDL files from semantic model/definition/ to Claude (Sonnet, effort high).
  3. Prompt: “Act as an expert Power BI designer. I added a custom visual that renders HTML. Write the DAX measure for a KPI card showing actual vs budget variance in $ and %, flipping red/green by direction (higher revenue green, higher expense red).”
  4. Paste the returned measure as a New Measure → drop it into HTML Content → Values.
  5. For a bullet/finance chart, ask Claude for a Vega-Lite spec, add the named measures to Deneb, then paste the spec — match field names exactly or it renders blank.
  • Self-Service Data Analytics — Anthropic’s internal playbook for Claude over business data; the same “point Claude at your data model” direction at org scale.
  • Claude Cowork — the automation path the video defers to (Cowork / Claude Code connecting directly to Power BI to auto-feed TMDL).
  • Claude Opus 4.8 + System Card — the reasoning-effort knob this workflow bumps to “high” on the free plan.
  • Claude Design — Claude producing presentation-grade visual output from a description.

Open Questions

  • The companion “connect Claude Code directly to Power BI” workflow (which auto-feeds the TMDL instead of manual attach) is referenced but shown in a separate video — not verified here.
  • The 4h→20min board-pack figure is creator-reported from client engagements, not independently measured.