Skip to content
CSA Loom — the Microsoft Fabric experience for Azure tenants where Fabric isn't yet available: lakehouses, warehouses, notebooks, semantic models, Activator rules, Data Agents, across Commercial, GCC, GCC-High, and DoD IL5

Parity Gap — Power BI + Real-Time Intelligence (v2 validator, 2026-05-26)

Editors: dashboard / paginated-report / scorecard / kql-dashboard / activator Source: apps/fiab-console/lib/editors/phase3-editors.tsx (lines 580-1134, 1636-1873) Validator state: source-grade audit. Phase 4 live click blocked by MFA expiration.

1. dashboard (Power BI)

Element app.powerbi.com → Dashboard Loom Severity
Dashboard list (left tree) Workspace tree Tree of dashboards per workspace present
Workspace picker Top combo WorkspacePicker (shared component) present
Tile grid Live tiles with thumbnails, click-through to report Card grid (s.cardGrid) with title + subTitle + size caption — no thumbnails, no live data MAJOR — pure metadata cards, not real tiles
Selected tile detail Side panel with embed URL + dataset Card with id / reportId / datasetId / embedUrl present
Edit dashboard (add tile, resize) Top button + drag absent BLOCKER for parity
Subscribe / Share / Comments Top toolbar absent MAJOR
Q&A (natural language) Top searchbox absent MAJOR
Refresh tile data Per-tile absent MAJOR
Pin tile to home Action menu absent MINOR

Grade: D — list dashboards + show tile metadata. No live tiles, no edit. Browse-only.

2. paginated-report & report (Power BI)

Both delegate to ReportLikeEditor (one component, two callers — lines 1636-1641).

Element app.powerbi.com → Report Loom Severity
Report list per workspace Tree (in ReportLikeEditor shared component — assumed Tree) present
Workspace picker Top shared present
Open report (embedded iframe) Yes — actual report renders Likely metadata view + <a> to webUrl (didn't fully read shared component) MAJOR if no embed
Page navigator (paginated) Side panel for multi-page reports absent MAJOR for paginated-report
Export to PDF / Excel / PowerPoint Toolbar absent MAJOR
Subscribe Toolbar absent MAJOR
Bookmarks Pane absent MINOR
Comments Pane absent MINOR
Edit (Power BI Desktop deeplink) Toolbar absent MAJOR

Grade: D for both — metadata-only browse. Without an actual embedded viewer (powerbi-client npm) the parity floor is D.

3. scorecard

Element app.powerbi.com → Scorecard Loom Severity
Scorecard list per workspace Tree Tree present
Goals table Grid 4-col Table (Goal / Current / Target / [Add value]) present
Add value to goal Modal ✓ Dialog with value / target / note Inputs + Save (line 1849-1868) wired to POST /api/items/scorecard/[id] B-present
Edit goal definition (name / target / owner) Yes absent MAJOR
Add goal Top button absent MAJOR
Sub-goals / hierarchy Tree per goal absent MAJOR
Status auto-roll-up Computed absent MAJOR
Connect to Power BI measure Goal-connect dialog absent MAJOR for parity
History chart per goal Side panel absent MAJOR
Owner / followers Field absent MINOR
Check-ins Action partial (Add value covers this) C-present

Grade: C — Add value is real ✓, but no goal authoring, no measure connection, no history. Goal-display only.

4. kql-dashboard

Element app.fabric.microsoft.com → KQL dashboard Loom Severity
Tile grid Yes Card grid with title / viz badge / inline rows preview / Edit toggle B-present
Per-tile KQL editor Monaco + Kusto schema-aware <Textarea> (Fluent, line 688-694) with Consolas font BLOCKER
Per-tile viz picker (table / line / bar / pie / column / heatmap / etc.) Big gallery native <Select> 3 options (table/line/bar) MAJOR — only 3 of N viz types
Per-tile title Input Fluent Input present
Run all tiles Yes Re-run all Button wired (line 652, calls load with run=1) B-present
Add tile Top Add tile Button wired B-present
Edit JSON (bulk) Yes Edit JSON Button → Dialog with <Textarea> (line 707-712) B-present
Save Toolbar wired with dirty badge present
Parameter pane (cross-tile filters) Top bar absent MAJOR
Refresh interval per tile Settings absent MAJOR
Drill-down between tiles Linked absent MAJOR
Share / Embed Toolbar absent MAJOR
Auto-refresh page Top toggle absent MAJOR
Per-tile delete ✓ Trash icon Delete20Regular per-card present
Result rendering (line/bar charts) Real charts First 5 rows as text with " " separator + "+N more rows" caption — no actual chart

Grade: C — Add tile / Re-run all / Edit JSON / Save / Delete tile all wired. The <Textarea> for KQL blocks A; the absence of real charting blocks B (a tile with viz='line' shows the same text-only preview).

5. activator

Element app.fabric.microsoft.com → Activator (Reflex) Loom Severity
Reflex list per workspace Tree Tree present
Create new reflex Modal ✓ Dialog with displayName + description (line 1046-1064) → POST /api/items/activator B-present
Rules list Grid 7-col Table (Name / Object · Property / Condition / Action / State / Last triggered / Trigger button) present
Add rule Form-based wizard with object/property picker, condition builder, action picker Dialog with name + condition JSON <Textarea> + action JSON <Textarea> MAJOR — JSON editing vs visual rule builder
Trigger rule now Yes Play20Regular Button per rule, calls POST with &trigger=<ruleId> B-present
Object/property picker Yes (live binding to KQL / Eventstream stream) absent BLOCKER for visual parity
Action picker (Teams / Power Automate / Email / Custom) Combo JSON <Textarea> MAJOR
Activation history / charts Side panel absent MAJOR
Disable / Enable rule Toggle absent MAJOR
Per-rule edit Pencil button absent MAJOR
Per-rule delete Bin absent MAJOR

Grade: C — Create reflex + Add rule (JSON) + Trigger rule are all wired against real Fabric Activator REST. JSON condition/action editor blocks B. No visual rule builder.

Phase 4 (click-every-button)

Editor Wired action buttons Dead ribbon labels
dashboard 1 (Refresh) ~4 (report-ribbon shared)
paginated-report/report inherits ReportLikeEditor ~4
scorecard 2 (Refresh, Add value→Save) ~4
kql-dashboard 6 (Add tile, Edit JSON, Re-run all, Save, per-card Delete, per-card Edit toggle) ~3
activator 4 (Refresh, New reflex→Create, Add rule→Add, per-rule Trigger) ~4 (ACT_RIBBON)

Summary

Editor Grade Reason
dashboard D List + tile metadata only, no live tiles, no edit
paginated-report D Metadata browse only, no embedded viewer, no page navigator
report D Same as paginated-report
scorecard C Add value to goal wired ✓, no goal authoring or measure connect
kql-dashboard C Add tile / Re-run / Edit JSON / Save wired; <Textarea> for KQL, no real charts
activator C Create + Add rule + Trigger wired; JSON condition/action (no visual builder)