Demo Playground | ✅ Available Status: This is a demo WIP status | | | | |
Pricing Structure for Embedded (Learn more) Pricing is among the most important factors to consider when evaluating BI tools. A good embedded pricing should be easy to start when doing POC, as well as not be too expensive when you scale up. Typically embedded BI tools have pricing structure that scales with the number of embed viewers or usage of your application. Common pricing structures are: - Seat-based pricing: Pricing by embed viewers
- Platform pricing: One fixed price (usually quoted and negotiated) for unlimited viewers
- Usage-based pricing: Pricing by some usage metric like report runs or active sessions
- Additionally there might be pricing based on feature tiers
- Some vendors may offer discounted pricing for your POC period.
| | | | | |
| Query runs/Query slots Select between Query Runs or Concurrent Workers. With unlimited dashboard viewers. (docs) | API calls One production instance, 10 Standard Users, 2 Developer Users, upgrades, up to 500,000 query-based API calls per month, and up to 100,000 administrative API calls per month. (docs) | Analytical Impressions Pay for entitlements of Analytical Impressions. Applies to users with the Viewer role. (docs) | Node Type & Node Instances Pricing based on node types and node instances. To publish content to an embedded capacity, at least one user requires a Power BI Pro license. (docs) | Feature-tiered Full-powered embedding starts from Pro plan ($500/mo). (docs) |
| Pricing Transparency Transparent for standard plans. Contact sales for embedded pricing. | Pricing Transparency Opaque. Requires speaking to sales. | Pricing Transparency Transparent for standard plans. Contact sales for embedded pricing. | Pricing Transparency Transparent for embedded pricing. | Pricing Transparency Transparent for embedded pricing. |
Embedding Methods (Learn more) Embedding methods affect the customizability of your embedded apps. Typically with higher customization, the tradeoff is higher development effort. Common embedding methods are: - iFrame: Embeds a pre-built dashboard or report into your app using an HTML iframe tag.
- Web Components: Embeds analytics as reusable custom web components that integrate natively into your app's UI framework.
- API integration: Uses APIs to fetch and render data dynamically, allowing custom-built dashboards within your app.
- SDK: Provides a software development kit (SDK), often in a specific programming language or framework (e.g., React SDK), to integrate and customize analytics. Each method has its pros and cons. You should evaluate embedding approaches based on your app's architecture, required level of customization, and available development resources.
| | | | | |
| iFrame embedding Provide sandbox UI for generating the iFrame backend code (docs) | iFrame embedding Allow developers to generate signed embed URLs for dashboards, Looks, or Explores. (docs) | iFrame embedding Provide embed codes with configurable URL parameters for iframes on external applications. (docs) | iFrame embedding Create secure token-based URLs for iframes, with access controlled via Azure Active Directory. (docs) | iFrame embedding Allow users to generate signed URLs with tokens for secure embedding. (docs) |
| SDK embedding Not Available | JavaScript SDK Offers Embed SDKs for JavaScript, allowing developers to streamline embedding workflows. (docs) | SDK embedding Not Available | JavaScript SDK Provides a JavaScript SDK with pre-built functions for authentication, event handling, and embedded report interaction (docs) | React SDK Offers an Embedding SDK for React, allowing developers to integrate individual Metabase components. (docs) |
| API embedding Not Available | Embed API Provides an Embed API that allows developers to programmatically control embedded content, such as dynamically generating embed URLs and interacting with Looker content within applications. (docs) | JavaScript API Provides a JavaScript API that allows developers to interact with embedded dashboards programmatically. (docs) | REST API Provides REST APIs that enable developers to programmatically retrieve embed URLs, generate embed tokens, and manage content. (docs) | Embed API Provides an embedding API that enables developers to fetch cards and dashboards via JSON Web Tokens (JWTs). (docs) |
| Allow users to create a "shareable link" of a dashboard, and embed it directly to websites. (docs) | Public Embedding Allow users to share data visualizations publicly via embeddable URLs (docs) | Public Embedding Through Tableau Public, allowing users to publish visualizations to a publicly accessible server (docs) | Public Embedding Via "Publish to Web" option, which generates a publicly accessible embed URL for sharing reports without authentication. (docs) | Public Embedding Allow dashboards and questions to be shared via public links, which generate a shareable URL anywhere. (docs) |
Permission & User Access Control (Learn more) Embedded tools should ensure each customer can only see their own data and prevents unauthorized modifications. This is called multi-tenancy. Most embedded BI tools support the basic version of this capability. When evaluating, look into permission levels (e.g., column-level access, row-level access, password-protected sharing) and ensure permission settings are intuitive. | | | | | |
| Multi-tenancy Support row-level access controls managed through secure server-side tokens (JWT). | Multi-tenancy Supports Row-Level Access Control (RLS), and user attributes to securely segment data and tailor experiences for different tenants. | Multi-tenancy Supports site-level segmentation, user permissions, and Row-Level Security (RLS) to isolate data and content for different tenants. | Multi-tenancy Supports row-level security, user filters, tenant-specific configurations. | Multi-tenancy Supports row-level security via JWT tokens and multi-tenant deployments. |
| Dynamic Data Sources Allow connecting to different data sources (databases) based on different customers (tenants). (docs) | Dynamic Data Sources Not supported | Dynamic Data Sources Not supported | Dynamic Data Sources Not supported | Dynamic Data Sources Not supported |
Look & Feel (Learn more) The BI tools should allow developers to maintain a branding consistency, deliver customized dashboards and cater to diverse visualization needs. When evaluating, look into the level of customization for colors, fonts, layout. Assess the variety of chart types and their customizability. | | | | | |
| Custom Theme and CSS Styling Allow users to create custom, reusable themes using code through canvas-based dashboard. (docs) | Custom Themes & CSS Styling Allow admin users to build and customize themes through LookML or UI settings. (docs) | Custom Themes & CSS Styling Supports indirectly via extensions and web embedding with CSS and JavaScript for advanced theming. (docs) | Custom Themes & CSS Styling Allow users to import JSON-formatted theme files. (docs) | Custom Themes & CSS Styling |
| Custom Visualizations Supports custom charts via Vega-Lite. (docs) | Custom Visualizations Available through Looker marketplace. (docs) | Custom Visualizations. Rich visualization options. Custom charts are supported with Viz Extensions API. (docs) | Custom Visualizations Supported with Power BI visuals SDK, limited native theme customization (docs) | Custom Visualizations Requires external tools or programming languages (e.g., Python with libraries like Seaborn or D3.js). (docs) |
| Through canvas-based dashboard that allows more fluid dashboard design. (docs) | Custom Layout LookML Dashboards in Looker allow code-based customization of tile positioning, sizing, and settings. (docs) | Custom Layout Supports custom dashboard layouts with drag-and-drop, tiled or floating containers, flexible sizing, and Tableau extensions. (docs) | Custom Layout Allows custom layout definition via ICustomLayout and IPageLayout in embed configurations. (docs) | Custom Layout Limited support for custom layout via drag-and-drop interface to arrange charts, tables, and text cards on the dashboard. (docs) |
Performance & Scalability (Learn more) Tools should ensures reasonable performance, and should scale well with increasing viewers and data volumes. There are typically 2 methods that affect report performance: - Caching: Embedded vendors load data into their own caching layer to speed up serving of reports.
- Direct Querying: BI tool querying your database/data warehouse directly.
| | | | | |
| Query Caching Stores query results on demand for configurable durations. (docs) | Query Caching Stores query results and leverages persistent derived tables (PDTs) to precompute and cache aggregated or intermediate query results. (docs) | Query Caching Store query results in its in-memory data engine and utilizing a query cache on Tableau Server to improve data retrieval speed. (docs) | Query Caching Supports storing initial query results locally for semantic models in Import mode. (docs) | Query Caching Caches query results with configurable expiration for embedded dashboards. (docs) |
| Query Optimization Via Aggregate Awareness. Automatically pick the most optimal aggregated tables per each query for maximal query performance. (docs) | Query Optimization Via Aggregate Awareness. Automatically pick the most optimal aggregated tables per each query for maximal query performance. (docs) | Query Optimization Via its Hyper data engine for in-memory computation, query caching, and pre-aggregated and Level of Detail (LOD) calculations to optimize queries. (docs) | Query Optimization Via Power BI user-defined aggregation, requiring users to manually define aggregation rules and mappings. (docs) | Query Optimization Via database indexing, caching query results, and allowing users to write custom SQL for precise and efficient data retrieval. (docs) |
Self-service Report Creation (Learn more) Embed viewers should be able to customize and build their own reports based on a predefined set of data dimensions and metrics. Viewers should also be able to interact, download, and share custom reports with other embed viewers. When evaluating: - Assess the depth and flexibility of self-serve features like filtering, drill-through, grouping, and visualization options.
- Look for embedded report builders and assess how easily users can build reports without assistance.
| | | | | |
| Data Exploration Through a drag-and-drop interface within datasets, using filters, drills, native period comparison and curated dimensions and measures. (docs) | Data Exploration Through pre-built Explores, filters, pivoting, drill-downs, custom dimensions and measures. (docs) | Data Exploration Through a drag-and-drop interface, filters, pre-defined parameters, drill-down hierarchies, and natural language queries via Ask Data. (docs) | Self-Service Data Exploration Enables analysis with drill-throughs, slicers, filters, and natural language Q&A. (docs) | Data Exploration Through an intuitive interface that includes a graphical query builder, interactive dashboards, and a data browser for navigating databases and tables. (docs) |
| Alert and Scheduling Condition-based automated alert. Email/Slack scheduling is available in PDF/CSV format. (docs) | Alert and Scheduling Allow users to set data-driven alerts and schedule report deliveries via email, Slack, or webhooks. (docs) | Alert and Scheduling Through data-driven alerts for threshold notifications and automated schedules. (docs) | Alert and Scheduling Allows users to set up automated alerts, schedule extract refreshes and report deliveries. (docs) | Alert and Scheduling Enables users to configure notifications for specific data conditions, delivering updates via email or Slack at defined intervals. (docs) |
| Embedded Report Builder WIP feature. | Embedded Report Builder Not available yet. | Embedded Report Builder Through Embedded Web Authoring feature that enables end-users to create and modify reports within the embedded environment. (docs) | Embedded Report Builder Not available yet | Embedded Report Builder Through Interactive Embedding (Pro and Enterprise plans). (docs) |
Security & Compliance (Learn more) Should protect your customers' sensitive data and builds trust by meeting industry security standards. Common security compliance certificates are: SOC2, HIPAA/BAA (for health tech companies), and GDPR. | | | | | |
| SOC2, BAA, and GDPR compliant | SOC2, HIPPA, and GDPR compliant | SOC2, HIPPA and GDPR compliant | SOC2, HIPPA, and GDPR compliant | SOC2, CCPA, and GDPR compliant |
| Servers in US (San Francisco), Europe (Germany), and APAC (Singapore). (docs) | Multiple locations in US, EU, APAC and Middle East. (docs) | Multiple locations in North America, Europe and APAC (docs) | Multiple locations across the world based on Azure regions. Default based on the region of signup. (docs) | US (East Coast), EU (Frankfurt), LATAM (São Paulo), and APAC (Singapore) (docs) |
Maintainability (Learn more) Should allow the reuse of analytics logic and components across customers to reduce the maintenance burden for developers and product engineers. Common functionalities to support this are: - Semantic layer to allow defining reusable, centralized metrics
- Ability to define logic using code language (analytics as code)
- 2-way integration with Git version control
| | | | | |
| Semantic Modeling Layer Centralizes business logic in modular, reusable data models, allowing consistent definitions across reports. (docs) | LookML Data Modeling Enables defining centralized, modular data logic that can be reused across reports. (docs) | Logical Layer Properietary. Tableau's Logical Layer visually defines relationships and aggregation rules within workbooks or data sources. (docs) | Robust Modeling Project-focused and workbook-scoped, using visual interfaces and DAX for defining relationships and calculations, with limited global reusability unless datasets are explicitly shared. (docs) | Lightweight Modeling Layer Allows users to define metadata and create relationships between tables using joins directly in the query builder. (docs) |
| Code-based definition & querying languages (AMQL) Designed natively for 'analytics as code' workflow. Define models and dashboards using code, enabling components to be parameterized and reused. (docs) | Code-based definition language (LookML) Enables defining centralized, modular data logic that can be reused across reports. (docs) | Not supported No code-based definition language | Supported via TMDL format An object model definition syntax for tabular data models at compatibility level 1200 or higher. (docs) | Not supported. Product not designed to support code-based definition natively. Workaround using Serialization. (docs) |
| Native Git Version Control Support Git version control natively for both dashboards and models. (docs) | Git-based Version Control Git-based version control for data models, proprietary dashboard versioning. (docs) | Properietary Version Control Supports version control indirectly by relying on Tableau Server or Tableau Online to maintain revision histories of published workbooks. (docs) | Proprietary Version Control No native Git integration. But new text-based format (TMDL) makes it easy for developers to set up manual integration with Git version control. (docs) | Properietary Version Control Proprietary. Allows one-way Git-based version control through Serialization, available starting with the Pro Plan. (docs) |
This is an interesting topic with no straightforward answer. There are a lot of factors involved with a decision like this:
• Where does your data live? If you use Google cloud services, you may get better deals/have an easier time using a Google BI product, etc.
• What OS do you and your company primarily use? If most people use macOS, then PowerBI is not a good option for you.
• What is your budget?
• What level of devops and data engineering support will you have?
There are open source tools that work well, but the setup and support might require a lot more engineering on your end. PowerBI is popular but a pain to use on macOS. Tableau/Looker/etc offer user control and embedded functionality built into their software, but the cost of user licenses can get very expensive depending on how many customers you have.
You might want to take a look at Holistics.io. It's a cloud-hosted, SQL-first BI platform with strong support for version control (Git) and a software dev workflow (CI/CD, dev/prod environments). The platform is highly programmable, and we offer pixel-perfect dashboards for precise reporting.
We also have usage-based pricing (not user-based) and built-in email/Slack report scheduling. If you're considering alternatives to PBI or Qlik Sense, Holistics could be a solid fit for embedded analytics.
Check out the playground: https://hooli.getholistics.com/