<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Metabase | Business Intelligence, Dashboards, and Data Visualization</title>
    <description>Metabase business intelligence, dashboards, and data visualization tools. Dig deeper into your data with open source, no SQL tools for data visualization.</description>
    <link>https://www.metabase.com/</link>
    <atom:link href="https://www.metabase.com/feed.xml" rel="self" type="application/rss+xml"/>
    <pubDate>Wed, 08 Jan 2025 15:20:50 +0000</pubDate>
    <lastBuildDate>Wed, 08 Jan 2025 15:20:50 +0000</lastBuildDate>
    <generator>Jekyll v4.3.3</generator>
    
      <item>
        <title>Maps data visualizations: best practices</title>
        <description>&lt;p&gt;Maps are a powerful way to visualize data, but they work best when used thoughtfully. In this article, we share the basic philosophy behind putting your geospatial data on the grid, like summarizing information to reflect how people naturally think about geography—neighborhoods, states, or countries—rather than scattering individual data points across a pin map. We’ll explore why region maps often tell a clearer, more actionable story and how considering the shape of your data can help you choose the right visualization to highlight patterns and drive better decisions.&lt;/p&gt;

&lt;p&gt;We also covered this in a dedicated webinar, check out the recording &lt;a href=&quot;/events/maps-in-metabase-tips-and-tricks&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;To help you get started, here’s a quick &lt;a href=&quot;https://metaba.se/maps-webinar&quot;&gt;cheat sheet&lt;/a&gt; with everything we’ve discussed about visualizing maps in Metabase, including a philosophy behind picking which map to use. Bookmark it and use it as a reference for your next maps visualization.&lt;/p&gt;

&lt;p&gt;If you’re interested in maps, check out &lt;a href=&quot;/learn/metabase-basics/querying-and-dashboards/visualization/maps&quot;&gt;this guide&lt;/a&gt; — it covers everything you need to know about map visualization in Metabase.&lt;/p&gt;

&lt;h2 id=&quot;what-are-map-data-visualizations&quot;&gt;What are map data visualizations?&lt;/h2&gt;

&lt;p&gt;Map data visualizations display data linked to specific geographic locations. Rather than showing individual data points, they group data by regions—such as countries, states, or neighborhoods—to reveal patterns and trends. This approach makes it easier to analyze how data varies across different areas. Common use cases include visualizing sales by region or population density by city. Map visualizations help transform complex data into clear, actionable insights by providing a geographic context.&lt;/p&gt;

&lt;h2 id=&quot;common-types-of-maps-data-visualizations&quot;&gt;Common types of maps data visualizations&lt;/h2&gt;

&lt;h3 id=&quot;pin-map&quot;&gt;&lt;a href=&quot;/glossary/pin_map&quot;&gt;Pin map&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;A pin map displays a single discrete marker for each point of interest. Great for pinpointing exact locations using latitude and longitude. While they look nice, keep in mind that too many points can clutter the map and make trends hard to spot.&lt;/p&gt;

&lt;iframe src=&quot;https://metabase-public.metabaseapp.com/public/question/76ff7cfd-f69d-4649-b65c-4925505b8c19&quot; frameborder=&quot;0&quot; width=&quot;300&quot; height=&quot;400&quot; allowtransparency=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;h3 id=&quot;grid-map&quot;&gt;&lt;a href=&quot;/glossary/grid_map&quot;&gt;Grid map&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;A grid map is a map with values overlaid graphically in a regular grid, e.g., as squared 10km by 10km colored to show values. These break down data into a grid, similar to a 2D histogram, and work well when you don’t have specific categories. They’re especially useful for data on natural events, like wildfire locations.&lt;/p&gt;

&lt;iframe src=&quot;https://metabase-public.metabaseapp.com/public/question/9c094728-b28f-442a-9822-45d36c57ad5c&quot; frameborder=&quot;0&quot; width=&quot;300&quot; height=&quot;400&quot; allowtransparency=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;h3 id=&quot;region-map&quot;&gt;&lt;a href=&quot;/glossary/region_map&quot;&gt;Region map&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;A region map is a map that shows information for geographic regions (such as countries or states), e.g., by coloring each region to show a value. If you want to show data by country, state, or neighborhood, region maps give a clear snapshot of distribution by area. They’re a great choice for highlighting patterns or differences across regions.&lt;/p&gt;

&lt;iframe src=&quot;https://metabase-public.metabaseapp.com/public/question/da9b5845-df75-4f00-97d4-1b1b784da0b3&quot; frameborder=&quot;0&quot; width=&quot;300&quot; height=&quot;400&quot; allowtransparency=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;h2 id=&quot;using-custom-maps-in-metabase&quot;&gt;Using custom maps in Metabase&lt;/h2&gt;

&lt;p&gt;Metabase supports custom maps, allowing you to upload a JSON file to create region-based visualizations.&lt;/p&gt;

&lt;iframe src=&quot;https://metabase-public.metabaseapp.com/public/question/a9e688ce-db10-4293-895b-7e791024cd69&quot; frameborder=&quot;0&quot; width=&quot;300&quot; height=&quot;400&quot; allowtransparency=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;While this offers flexibility, there are a few best practices and limitations to consider:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Avoid adding too much detail.&lt;/strong&gt; Do you need the exact location of every rack, or would an aggregated view—such as grouping data by administrative regions—be more useful? Summarized data often provides clearer insights.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Focus on actionable insights.&lt;/strong&gt; Visualizing areas with poor coverage is helpful, but think about the next step. Who needs this information, and what actions should they take?&lt;/li&gt;
&lt;/ul&gt;

&lt;iframe src=&quot;https://metabase-public.metabaseapp.com/public/question/51230aef-de46-417c-9b02-36dc3ce5c4c9&quot; frameborder=&quot;0&quot; width=&quot;300&quot; height=&quot;400&quot; allowtransparency=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;&lt;strong&gt;Technical limitations to keep in mind:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Your dataset must include a region column. Metabase can’t infer regions from latitude and longitude for region maps.&lt;/li&gt;
  &lt;li&gt;Metabase doesn’t link custom maps to your data automatically or allow drill-through functionality for regions.&lt;/li&gt;
  &lt;li&gt;When setting up filters, use “Category” instead of “Location” for region-based filtering.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;which-map-data-visualization-type-to-choose&quot;&gt;Which map data visualization type to choose?&lt;/h2&gt;

&lt;p&gt;The choice of map will depend on what you’re trying to communicate. Metabase has 3 different map types for 3 different types of data:&lt;/p&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Data type&lt;/th&gt;
      &lt;th&gt;Map visualization type&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;Individual data points&lt;/td&gt;
      &lt;td&gt;Pin map&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Summary by coordinates&lt;/td&gt;
      &lt;td&gt;Grid map&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Summary by regions&lt;/td&gt;
      &lt;td&gt;Region map&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;h3 id=&quot;do-you-really-need-a-pin-map&quot;&gt;Do you really need a pin map?&lt;/h3&gt;

&lt;p&gt;Before you drop data points onto a pin map, ask yourself: is it necessary? Just like we don’t create bar charts with raw data, the goal of visualizations is to summarize information and highlight the bigger picture—not overwhelm with every individual detail.
Pin maps work well when exact locations matter, like tracking deliveries or identifying store locations. But in most cases, summary maps are more effective.&lt;/p&gt;

&lt;iframe src=&quot;https://metabase-public.metabaseapp.com/public/question/516cf49b-12d5-4519-9665-c63cb84e9864&quot; frameborder=&quot;0&quot; width=&quot;300&quot; height=&quot;400&quot; allowtransparency=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;h2 id=&quot;smarter-map-visualizations&quot;&gt;Smarter map visualizations&lt;/h2&gt;

&lt;ol&gt;
  &lt;li&gt;
    Use GIS maps for unfiltered data. If you’re plotting all data points without filtering, embed a GIS map instead. With Metabase v51, you can use &lt;a href=&quot;/docs/latest/dashboards/introduction#iframe-cards&quot;&gt;iframe cards&lt;/a&gt; to embed GIS maps, improving performance and clarity. Metabase dashboard cards are best when connected to filters; if filtering isn’t part of your setup, a GIS map might be the better option.
  &lt;/li&gt;

  &lt;li&gt;
    Choose region maps when possible.
    &lt;ul&gt;
      &lt;li&gt;
        Grid maps work with any geo data but can feel too generic to provide clear insights.
      &lt;/li&gt;
      &lt;li&gt;
        Region maps require upfront work, like adding region data to your dataset (e.g., states, districts, neighborhoods). However, they align better with how your organization views geographic data, making it easier to identify patterns and take action.
      &lt;/li&gt;

      &lt;p&gt;Tip: For nested regions like City &amp;gt; Borough &amp;gt; Neighborhood, use a map for the smallest region (e.g., neighborhood) with dashboard filters for parent regions. This reduces clutter and makes data exploration easier.&lt;/p&gt;

&lt;iframe src=&quot;https://metabase-public.metabaseapp.com/public/question/300715c4-11ac-4411-bc8c-3bdc8569b52f&quot; frameborder=&quot;0&quot; width=&quot;300&quot; height=&quot;400&quot; allowtransparency=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;iframe src=&quot;https://metabase-public.metabaseapp.com/public/question/51230aef-de46-417c-9b02-36dc3ce5c4c9&quot; frameborder=&quot;0&quot; width=&quot;300&quot; height=&quot;400&quot; allowtransparency=&quot;&quot;&gt;&lt;/iframe&gt;
&lt;/ul&gt;
&lt;/li&gt;

&lt;li&gt;
  &lt;p&gt;Do you even need a map?&lt;/p&gt;
  &lt;p&gt;Not all data benefits from a geographical representation. Ask yourself: does the geographic relationship between areas matter? For instance, do you care that Texas is next to New Mexico, or are you only focused on the metrics? If geography isn’t relevant, a bar chart might convey your data more effectively and reduce cognitive load for viewers.&lt;/p&gt;

  &lt;iframe src=&quot;https://metabase-public.metabaseapp.com/public/question/01de3f34-f42b-489d-86ac-4010cdf1f80f&quot; frameborder=&quot;0&quot; width=&quot;300&quot; height=&quot;400&quot; allowtransparency=&quot;&quot;&gt;
  &lt;/iframe&gt;

  &lt;iframe src=&quot;https://metabase-public.metabaseapp.com/public/question/d5c341a3-8000-47f9-91dc-7b933a4f7f9b&quot; frameborder=&quot;0&quot; width=&quot;300&quot; height=&quot;400&quot; allowtransparency=&quot;&quot;&gt;
  &lt;/iframe&gt;

  &lt;p&gt;Maps are just one way to tell a story with your data. Choosing the right map (or deciding if you need a map at all) helps to make your visuals clear, actionable, and aligned with your goals. By focusing on how people naturally interpret geographic data, you can help drive better decisions.&lt;/p&gt;

  &lt;p&gt;Start simple, experiment, and remember: the best visualizations make it easier for your audience to see the bigger picture.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id=&quot;more-data-visualization-resources&quot;&gt;More data visualization resources&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://metaba.se/maps-webinar&quot;&gt;Maps data visualization cheat sheet&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/learn/metabase-basics/querying-and-dashboards/visualization/maps&quot;&gt;Guide to maps&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/events/maps-in-metabase-tips-and-tricks&quot;&gt;Visualizing maps in Metabase | Webinar recording&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/blog/how-to-visualize-time-series-data&quot;&gt;How to visualize time-series data: best practices&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/blog/how-to-build-better-line-and-bar-charts&quot;&gt;How to build better line and bar charts&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Thu, 19 Dec 2024 00:05:05 +0000</pubDate>
        <link>https://www.metabase.com/blog/maps-data-visualization</link>
        <guid isPermaLink="true">https://www.metabase.com/blog/maps-data-visualization</guid>
        
        
        <category>Analytics</category>
        
        <category>&amp;</category>
        
        <category>BI</category>
        
      </item>
    
      <item>
        <title>How to visualize time-series data: best practices</title>
        <description>&lt;p&gt;Here’s a guide to best practices in time-series visualization, covering chart selection, data structure, and advanced techniques. We’ll skip the mechanics of creating charts, and focus on the principles behind building clear and impactful time-based visualizations,&lt;/p&gt;

&lt;p&gt;This article includes stuff we covered in our &lt;a href=&quot;/events/visualizing-time-series-data-in-metabase&quot;&gt;webinar on visualizing time-series data&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;We also made a &lt;a href=&quot;https://metaba.se/time-series-dashboard&quot;&gt;time-series cheat sheet&lt;/a&gt; dashboard with everything we’ve discussed about time-series visualizations, from selecting the right chart type to structuring your data for comparison across time periods. Bookmark it and use it as a reference for your next time-series visualization.&lt;/p&gt;

&lt;h2 id=&quot;what-is-time-series-data&quot;&gt;What is time-series data?&lt;/h2&gt;

&lt;p&gt;Time-series data refers to a sequence of data points that include datetimes. Unlike other types of data, time series data is ordered chronologically, where each data point represents a specific moment in time, such as hourly, daily, or monthly measurements.&lt;/p&gt;

&lt;p&gt;Examples of time-series data include stock prices, weather temperatures, sales figures, or economic indicators like GDP. These data points are typically grouped by a particular time granularity, like daily sales or weekly temperature readings.&lt;/p&gt;

&lt;h2 id=&quot;types-of-time-series-visualizations&quot;&gt;Types of time-series visualizations&lt;/h2&gt;

&lt;p&gt;Charts for visualizing time-series data include:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Line Charts&lt;/strong&gt; track trends or data progression over time.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Bar Charts&lt;/strong&gt; compare values across time intervals, especially for discrete data points.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Area Charts&lt;/strong&gt; illustrate cumulative totals over time.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Trend Charts&lt;/strong&gt; analyze performance changes by comparing values to previous periods.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Waterfall Charts&lt;/strong&gt; display sequential changes, though they’re more niche in application.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/types-time-series-visualizations.png&quot; alt=&quot;Types of time series visualizations&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/revenue-by-category.png&quot; alt=&quot;Revenue by category&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;best-practices-for-time-series-charts&quot;&gt;Best practices for time-series charts&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Focus on a single message&lt;/strong&gt;: Each chart should communicate one key insight. For multiple insights, use separate visualizations. Different charts highlight different parts of your data, so start by structuring the results table to match your goal.&lt;/p&gt;

&lt;p&gt;Consider:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;“How should the results look for this chart?” For comparisons, include values for current, last week, and last month in your table.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;“How do I control which month shows in a trend?” Make sure the target month is at the top of the table.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/same-table-different-presentations.png&quot; alt=&quot;Same table, different presentations&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Consider data shape&lt;/strong&gt;: Data structure informs the best chart type.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;One metric over time&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/time-series-visualizations.png&quot; alt=&quot;One metric over time&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Multiple metrics over time&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/time-series-visualizations-multiple-metrics-over-time.png&quot; alt=&quot;Multiple metrics over time&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;One metric with a breakout&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/time-series-visualizations-02.png&quot; alt=&quot;One metric with a breakout&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Different charts emphasize different aspects of data, so pick the right chart for the aspect that you want to communicate.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Current state&lt;/strong&gt;&lt;/p&gt;

&lt;iframe src=&quot;https://metabase-public.metabaseapp.com/public/question/25d441da-c757-43cc-b409-4bafbff35b0f&quot; frameborder=&quot;0&quot; width=&quot;400&quot; height=&quot;300&quot; allowtransparency=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;&lt;strong&gt;Evolution&lt;/strong&gt;&lt;/p&gt;

&lt;iframe src=&quot;https://metabase-public.metabaseapp.com/public/question/681991fa-7140-4f54-8184-7d504a64785f&quot; frameborder=&quot;0&quot; width=&quot;800&quot; height=&quot;600&quot; allowtransparency=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;&lt;strong&gt;Magnitude&lt;/strong&gt;&lt;/p&gt;

&lt;iframe src=&quot;https://metabase-public.metabaseapp.com/public/question/620b74ba-c21f-410c-b283-a9c36aec9a2a&quot; frameborder=&quot;0&quot; width=&quot;800&quot; height=&quot;600&quot; allowtransparency=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;&lt;strong&gt;Proportion&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Area charts (and bar charts) work better for showing &lt;em&gt;size&lt;/em&gt; instead of trend.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Stacked area charts can be used to show how the shares of a metric’s breakouts change over time.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Don’t make conclusions about change in the &lt;em&gt;metric&lt;/em&gt; itself from stacked area charts - they can be misleading! Stacked bar charts are only meant to show the change in proportions of the metric’s breakouts.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;iframe src=&quot;https://metabase-public.metabaseapp.com/public/question/67624f20-136c-44c6-99e2-b47c6279093a&quot; frameborder=&quot;0&quot; width=&quot;800&quot; height=&quot;600&quot; allowtransparency=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;&lt;strong&gt;Accumulation&lt;/strong&gt;&lt;/p&gt;

&lt;iframe src=&quot;https://metabase-public.metabaseapp.com/public/question/8494fccd-61c1-4d2c-b4eb-7ded07e19213&quot; frameborder=&quot;0&quot; width=&quot;800&quot; height=&quot;600&quot; allowtransparency=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;&lt;strong&gt;Use &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Offset&lt;/code&gt; for comparisons&lt;/strong&gt;: The &lt;a href=&quot;/docs/latest/questions/query-builder/expressions/offset&quot;&gt;offset function&lt;/a&gt; in Metabase allows you to compare a metric’s value in the current row to its value in a previous row. For example, if you’re grouping by month, setting the offset to -12 will show the metric’s value from 12 months prior.  You can use &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Offset&lt;/code&gt; to add columns to a row that include values from previous rows, which makes it easier to compare metrics like year-over-year changes in a single chart.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/using-offset-metabase.png&quot; alt=&quot;Offset function in Metabase&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Now that you’ve got the basics down, it’s time to get hands-on and start building your own time-series charts with &lt;a href=&quot;/cloud/login&quot;&gt;Metabase&lt;/a&gt;. Go ahead, create something awesome, and share it with the community!&lt;/p&gt;

&lt;h2 id=&quot;more-data-visualization-resources&quot;&gt;More data visualization resources&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://metaba.se/time-series-dashboard&quot;&gt;Time-series visualizations cheat sheet&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/events/visualizing-time-series-data-in-metabase&quot;&gt;Video - Visualizing time-series data in Metabase&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/blog/visualization-mistakes&quot;&gt;Data visualization tips for the non-analyst&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/blog/how-to-build-better-line-and-bar-charts&quot;&gt;How to build better line and bar charts&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/blog/maps-data-visualization&quot;&gt;Maps data visualizations: best practices&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/blog/the-right-visualization&quot;&gt;The perfect chart: choosing the right visualization for every scenario&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Wed, 20 Nov 2024 00:05:05 +0000</pubDate>
        <link>https://www.metabase.com/blog/how-to-visualize-time-series-data</link>
        <guid isPermaLink="true">https://www.metabase.com/blog/how-to-visualize-time-series-data</guid>
        
        
        <category>Analytics</category>
        
        <category>&amp;</category>
        
        <category>BI</category>
        
      </item>
    
      <item>
        <title>How to build better line and bar charts</title>
        <description>&lt;p&gt;Bar and line charts make up about 80% of what you’ll see in data visualizations. While building these charts in &lt;a href=&quot;/product/business-analytics&quot;&gt;Metabase&lt;/a&gt; is straightforward and takes just 30 seconds, in this article, we’ll focus on the thought process behind building effective charts rather than how to create them.&lt;/p&gt;

&lt;p&gt;We’ll go beyond the basics and explore how to improve your charts, the best practices for using different types of visualizations.&lt;/p&gt;

&lt;p&gt;We’ve also had an entire webinar on this - check out the &lt;a href=&quot;/events/line-and-bar-charts-in-metabase-tips-and-tricks&quot;&gt;recording here&lt;/a&gt; (no registration required!).&lt;/p&gt;

&lt;p&gt;To start with, we’ve put together this handy &lt;a href=&quot;https://metabase-public.metabaseapp.com/public/dashboard/06c5cf93-92f8-4afe-9e41-5ca1dba984ca?tab=169-charts-tl%3Bdr&quot;&gt;cheat sheet&lt;/a&gt; which could refer to when visualizing your next thing. It covers 5 commonly used charts: line chart, bar chart, area chart, combo chart, and row chart.&lt;/p&gt;

&lt;h2 id=&quot;how-to-choose-the-right-chart-type&quot;&gt;How to choose the right chart type?&lt;/h2&gt;

&lt;p&gt;Choosing the right chart type is key to telling the right story with your data. These guidelines will help you choose between line, bar, and area charts.&lt;/p&gt;

&lt;h3 id=&quot;use-line-and-area-charts-for-continuous-data&quot;&gt;Use line and area charts for continuous data&lt;/h3&gt;

&lt;p&gt;Line and area charts work best when there’s a clear, continuous flow between data points—like tracking data over time. If your data points are just categories with no inherent connection between them, opt for something like a bar chart instead.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/line-bar-charts/line-bar-charts-blog-image9.png&quot; alt=&quot;Use line and area charts for continuous data&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;leave-trends-for-line-charts-totals-for-bars&quot;&gt;Leave trends for line charts, totals for bars&lt;/h3&gt;

&lt;p&gt;Line charts are perfect for showing how a metric changes over time, focusing on the trends. On the other hand, bar and area charts are better for emphasizing the size or total value of a metric at specific points. Use bars when you want to compare totals clearly.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/line-bar-charts/line-bar-charts-blog-image5.png&quot; alt=&quot;Leave trends for line charts, totals for bars&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;use-line-charts-for-small-changes&quot;&gt;Use line charts for small changes&lt;/h3&gt;

&lt;p&gt;Bar and area charts suggest accumulation and work best when your metric relates to zero. But if your data shows only small fluctuations — like bouncing between 31 and 33 — using bars can be misleading. A line chart is more accurate for highlighting minor changes without overstating them.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/line-bar-charts/line-bar-charts-blog-image10.png&quot; alt=&quot;Use line charts for small changes&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;how-to-improve-your-bar-charts&quot;&gt;How to improve your bar charts&lt;/h2&gt;

&lt;p&gt;Let’s take a bar chart as an example and try to improve it step by step.&lt;/p&gt;

&lt;h3 id=&quot;order-your-data&quot;&gt;Order your data&lt;/h3&gt;

&lt;p&gt;For bar charts, there’s often no natural order to the data. Sorting your bars from largest to smallest makes it easier to spot trends and understand the story your data is telling. Organized charts let people quickly see what’s important.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/line-bar-charts/line-bar-charts-blog-image8.png&quot; alt=&quot;Order you data&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;show-information-where-its-needed&quot;&gt;Show information where it’s needed&lt;/h3&gt;

&lt;p&gt;When reading bar or line charts, it’s frustrating to constantly check the Y-axis to figure out values. Instead, put the information directly on the chart — like displaying the value on top of each bar. This way, people can interpret your chart at a glance without unnecessary back-and-forth.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/line-bar-charts/line-bar-charts-blog-image13.png&quot; alt=&quot;Show information where it&apos;s needed&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;keep-bar-charts-simple&quot;&gt;Keep bar charts simple&lt;/h3&gt;

&lt;p&gt;Focus on what’s necessary. Do viewers need to know there were exactly 1,494 homework assignments, or is it enough to show there were roughly twice as many assignments as quizzes? If exact numbers aren’t critical, simplify your chart. Reduce clutter by leaving out unnecessary labels or gridlines so your main message stands out.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/line-bar-charts/line-bar-charts-blog-image2.png&quot; alt=&quot;Keep it simple&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;use-natural-reading-patterns&quot;&gt;Use natural reading patterns&lt;/h3&gt;

&lt;p&gt;People read charts the same way they read text—left to right, top to bottom. For English readers, a “Z” pattern is natural. A row chart might work better than a bar chart in some cases, as it aligns with this flow and makes your data easier to absorb.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/line-bar-charts/line-bar-charts-blog-image12.png&quot; alt=&quot;Use natural reading patterns&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;highlight-what-matters&quot;&gt;Highlight what matters&lt;/h3&gt;

&lt;p&gt;What’s the goal of your chart? Should people focus on a specific number or trend? Use visual emphasis—like bolding key data points or changing color—to direct attention to the insights that matter most.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/line-bar-charts/line-bar-charts-blog-image7.png&quot; alt=&quot;Highlight what matters&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;use-meaningful-colors&quot;&gt;Use meaningful colors&lt;/h3&gt;

&lt;p&gt;Colors like green, red, and orange often come with implied meanings—green for positive, red for negative. If your chart reflects positive or negative outcomes, use these colors to help communicate those sentiments. But if your chart isn’t about sentiment, it’s best to avoid these colors to prevent unintended associations. You can also use color saturation to highlight important areas of your chart without overwhelming viewers.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/line-bar-charts/line-bar-charts-blog-image11.png&quot; alt=&quot;Use meaningful colors&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;best-practices-for-stacked-charts&quot;&gt;Best practices for stacked charts&lt;/h2&gt;

&lt;p&gt;Stacked charts can add complexity to your data visualization, so it’s important to know when to use them and when to avoid them. Let’s break down the key considerations for using stacked charts effectively.&lt;/p&gt;

&lt;h3 id=&quot;stacking-charts-increases-cognitive-load&quot;&gt;Stacking charts increases cognitive load&lt;/h3&gt;

&lt;p&gt;When you stack data, you’re adding an extra layer of complexity for viewers to process. Before choosing a stacked chart, ask yourself: are you trying to compare data within categories or across categories? Often, creating separate charts provides a clearer view of your data.&lt;/p&gt;

&lt;h3 id=&quot;stacking-implies-accumulation&quot;&gt;Stacking implies accumulation&lt;/h3&gt;

&lt;p&gt;Only stack metrics that make sense together—like totals or counts. Don’t stack metrics like averages or maximums that don’t naturally add up. For example, you can’t have an “average rating” of 12 out of 5. Use stacking only when the data logically accumulates.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/line-bar-charts/line-bar-charts-blog-image6.png&quot; alt=&quot;Use meaningful colors&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;use-line-charts-to-show-trends-over-time&quot;&gt;Use line charts to show trends over time&lt;/h3&gt;

&lt;p&gt;Line charts are ideal for showing how metrics evolve over time, especially when tracking small changes. If you’re visualizing something like average ratings, a line chart will provide a clearer picture than a bar chart. To zoom in on small variations, you can unpin the Y-axis from zero—but never do this with bar or area charts, as it can distort the scale.&lt;/p&gt;

&lt;p&gt;To make your line charts even clearer, reduce visual clutter by removing unnecessary data points. Use line thickness and color to emphasize the most important data series.&lt;/p&gt;

&lt;iframe src=&quot;https://metabase-public.metabaseapp.com/public/question/07649914-dc7c-4200-a43e-b12b9d088d2e&quot; frameborder=&quot;0&quot; width=&quot;800&quot; height=&quot;600&quot; allowtransparency=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;h3 id=&quot;dealing-with-categories-of-different-sizes&quot;&gt;Dealing with categories of different sizes&lt;/h3&gt;

&lt;p&gt;When categories in a chart have vastly different sizes, it’s tough to compare them. If your goal is to compare the proportion of categories within a bar, use a 100% stacked chart. But if you’re more interested in comparing raw sizes, rearrange the order of breakouts or use an unstacked chart.&lt;/p&gt;

&lt;p&gt;Consider using row charts for a more natural reading order, especially if a custom order aligns better with the business context. You can also use color saturation and visual emphasis to highlight key benchmarks.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/line-bar-charts/line-bar-charts-blog-image1.png&quot; alt=&quot;Use meaningful colors&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Even better:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Row chart instead of a bar chart for natural reading order&lt;/li&gt;
  &lt;li&gt;Custom order of bars that makes more business sense&lt;/li&gt;
  &lt;li&gt;Visual emphasis on an important benchmark&lt;/li&gt;
  &lt;li&gt;Color shade and saturation that communicate context&lt;/li&gt;
&lt;/ul&gt;

&lt;iframe src=&quot;https://metabase-public.metabaseapp.com/public/question/eabec2d9-1f9d-4b87-a1ba-1d06640dc77e&quot; frameborder=&quot;0&quot; width=&quot;800&quot; height=&quot;600&quot; allowtransparency=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;h3 id=&quot;challenges-of-comparing-breakouts-in-stacked-charts&quot;&gt;Challenges of comparing breakouts in stacked charts&lt;/h3&gt;

&lt;p&gt;Comparing breakouts in stacked charts can be difficult because comparing heights is easier than comparing areas. In a stacked chart, only the first (bottom) segment is easy to compare by height—anything above has to be judged by area, which is less precise.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solutions:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Use unstacked charts, but be mindful that they can get visually overwhelming.&lt;/li&gt;
  &lt;li&gt;Consider stacked area charts, but keep in mind they can mislead depending on the data and context. Choose the right visualization based on the insight you’re trying to convey.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;be-cautious-with-stacked-area-charts&quot;&gt;Be cautious with stacked area charts&lt;/h3&gt;

&lt;p&gt;Stacked area charts can easily distort the data because the order of the areas impacts how changes are perceived. It’s easy to overestimate or underestimate changes when the layers overlap. Remember, area charts are best for showing size, not changes or trends.&lt;/p&gt;

&lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h2&gt;

&lt;p&gt;Now that you’ve got the basics down, head over to your &lt;a href=&quot;/cloud/login&quot;&gt;Metabase account&lt;/a&gt; and try out these techniques to improve your data visualizations. See how they can make your charts more clear and useful. Happy charting!&lt;/p&gt;

&lt;h2 id=&quot;more-data-visualization-resources&quot;&gt;More data visualization resources&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/events/line-and-bar-charts-in-metabase-tips-and-tricks&quot;&gt;Webinar of bar &amp;amp; line charts visualization in Metabase&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/learn/metabase-basics/querying-and-dashboards/visualization/line-charts&quot;&gt;Metabase guide to line charts&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/learn/metabase-basics/querying-and-dashboards/visualization/bar-charts&quot;&gt;Master the bar chart&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/blog/visualization-mistakes&quot;&gt;Data visualization tips for the non-analyst&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/blog/how-to-visualize-time-series-data&quot;&gt;How to visualize time-series data: best practices&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/blog/maps-data-visualization&quot;&gt;Maps data visualizations: best practices&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/blog/the-right-visualization&quot;&gt;The perfect chart: choosing the right visualization for every scenario&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Fri, 18 Oct 2024 00:05:05 +0000</pubDate>
        <link>https://www.metabase.com/blog/how-to-build-better-line-and-bar-charts</link>
        <guid isPermaLink="true">https://www.metabase.com/blog/how-to-build-better-line-and-bar-charts</guid>
        
        
        <category>Analytics</category>
        
        <category>&amp;</category>
        
        <category>BI</category>
        
      </item>
    
      <item>
        <title>Communicate Data Effectively</title>
        <description>&lt;p&gt;This post was originally published in the &lt;a href=&quot;https://dataanalysis.substack.com/p/how-to-communicate-data-effectively&quot; target=&quot;_blank&quot;&gt;Data Analysis Journal&lt;/a&gt; and written by our analytics engineer, Thomas Schmidt.&lt;/p&gt;

&lt;h2 id=&quot;tldr-bridge-the-gap-between-data-and-decision-making-with-clear-actionable-communication&quot;&gt;TL;DR: Bridge the gap between data and decision-making with clear, actionable communication&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Understand the core problem&lt;/strong&gt; and tailor your message to your audience’s needs.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Start with a TL;DR:&lt;/strong&gt; Summarize key insights upfront to respect executives’ time.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Keep it concise.&lt;/strong&gt; Remove unnecessary details and clutter from presentations.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Use colors intentionally.&lt;/strong&gt; Highlight key points and create visual connections.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Make bold statements.&lt;/strong&gt; Provide confident recommendations, using appendices for details.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;→ Implement these strategies in your next presentation to ensure your data insights drive informed decisions.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Have you ever tried getting directions in a foreign country from someone who doesn’t speak your language? That’s how I felt the first time I presented a complex data analysis to an executive team. While the data made sense to me, it felt like I was speaking a foreign language to them. Just like a translator bridges gaps, we need to translate our analyses into something executives can act on. Effective communication isn’t just about sharing insights—it’s about ensuring those insights are understood and drive decisions. In this post, I’ll share lessons I’ve learned on turning data into clear, actionable messages for executives.&lt;/p&gt;

&lt;h3 id=&quot;identify-the-real-problem-and-tailor-your-message-to-the-audiences-needs&quot;&gt;Identify the real problem and tailor your message to the audience’s needs&lt;/h3&gt;

&lt;p&gt;In our data jobs, we are often driven by curiosity and the joy of solving problems using data. However, it’s crucial to understand two key aspects before diving into analytics projects: the core problem and the audience.&lt;/p&gt;

&lt;h4 id=&quot;understand-the-core-problem&quot;&gt;Understand the Core Problem&lt;/h4&gt;

&lt;p&gt;Stakeholders often approach us with a proposed solution in mind (“I need data X”). By digging into the ‘why’ and understanding the core problem behind the request, we can choose a better approach that serves their needs, leading to better project outcomes. Knowing the problem you are trying to solve will inform your decisions and influence what next steps you recommend.&lt;/p&gt;

&lt;h4 id=&quot;know-your-audience&quot;&gt;Know your audience&lt;/h4&gt;

&lt;p&gt;We don’t want to find ourselves in a situation where our audience feels like we are speaking a foreign language to them. Executives haven’t been along for the entire analytical journey that we went through. Thus, we need to translate our findings for them. Before crafting a communication, consider the following&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Identify what’s important to them and their current priorities.&lt;/strong&gt; Usually, this means strategic insights and actionable recommendations are preferred over details of the fancy machine learning algorithm you used for the project.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;What do we need to explain and what do they already know?&lt;/strong&gt; Executives usually operate on a more abstract level and don’t necessarily know (and care) about each tiny detail of a process. Speak your audiences’ (domain) language! Explain acronyms or don’t use them at all. Not everyone knows what an “ICP” (Ideal Customer Profile) is and depending on the domain it might even mean different things.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;How to start our narrative to get folks excited.&lt;/strong&gt; Talking to the head of sales? If you start by telling them that this will give them insights on how to beat the competitor, you will have their attention.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;What is the best presentation format.&lt;/strong&gt; Each format has its pros and cons: A written document might be good for async communication but folks will be “alone” while reading it. You cannot clarify things with your words compared to a live presentation where they can directly ask questions (but it might be hard to find an overlapping time slot with the executives). Be sure to be thoughtful about that.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Assess your relationship and level of trust.&lt;/strong&gt; At Shopify we used the concept of a trust battery. Make sure you know “how charged it is” - this will influence how folks perceive and hear you, and how you need to adjust your communication.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Don’t try to communicate to too many people at once: In case your audience is too broad, try to narrow it down to the decision-maker and tailor your communication to their needs.&lt;/p&gt;

&lt;h4 id=&quot;provide-a-concise-summary-tldr-upfront-and-keep-messages-clear-and-direct&quot;&gt;Provide a concise summary (TL;DR) upfront and keep messages clear and direct&lt;/h4&gt;

&lt;p&gt;Executives need quick access to essential insights to make informed decisions promptly. In the fast-paced world of business, they juggle multiple priorities and have limited time for detailed reports. This is where the concept of TL;DR (Too Long; Didn’t Read) becomes invaluable. I first learned about this concept while working at Shopify where we used a similar approach for our communication (be it for presentations, reports or even longer Slack messages). Let’s give it a try:&lt;/p&gt;

&lt;p&gt;Executives will love you when you start using TL;DRs:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Quick insights for busy executives.&lt;/strong&gt; TL;DR provides essential information upfront for prompt decision-making.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Effective crafting tips.&lt;/strong&gt; Summarize core findings and recommendations, avoiding jargon and using clear language.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Position for impact.&lt;/strong&gt; Place TL;DR at the beginning of presentations or reports to immediately capture attention.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;End with a recommendation.&lt;/strong&gt; Always have a call to action in the form of a recommendation or provocative question.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;→ Adopt the TL;DR approach to enhance clarity and efficiency in executive communications.&lt;/p&gt;

&lt;p&gt;When crafting a powerful TL;DR, the focus should be on what is most relevant and important to the audience:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Summarize core findings and recommendations in a few sentences.&lt;/li&gt;
  &lt;li&gt;Use clear, straightforward language, avoiding jargon.&lt;/li&gt;
  &lt;li&gt;Use formatting to highlight key points with bullet points and bold text.&lt;/li&gt;
  &lt;li&gt;End with an actionable recommendation or provocative question.&lt;/li&gt;
  &lt;li&gt;Always position the TL;DR at the very beginning to capture the audience’s attention immediately.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Pro Tip:&lt;/strong&gt; Add links to specific slides or sections with detailed data for those who want to dive deeper.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example of a Well-Crafted TL;DR:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Example: Improving Customer Service Response Times&lt;/p&gt;

&lt;p&gt;TL;DR: Faster response times lead to higher customer satisfaction.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Implementing the new ticketing system reduced average response time by 50%.&lt;/li&gt;
  &lt;li&gt;Customer satisfaction scores increased by 20% after the change.
→ Recommendation: Expand the system to all customer service teams.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A side note: We also want to make sure to use KPI precision that makes sense for executives. They are usually not interested in the decimal precision number. Thus, rounding is mostly fine (except you know your audience will care about it).
If you want to read more about TL;DRs, find some additional instructions in &lt;a href=&quot;https://medium.com/meta-research/writing-a-memorable-tl-dr-ea751cba88f2&quot; target=&quot;_blank&quot;&gt;this article&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;time-is-everything-and-less-is-more&quot;&gt;Time is Everything and Less is More&lt;/h3&gt;

&lt;p&gt;As we learned in the TL;DR section, attention is a limited resource in our day to day world and we need to fight for it. Here are some tips that have worked well for me in the past, along with good and bad examples.&lt;/p&gt;

&lt;h4 id=&quot;respect-your-colleagues-time&quot;&gt;Respect your Colleagues’ Time&lt;/h4&gt;

&lt;p&gt;Apart from using TL;DRs, make sure to use concise and direct communication. Avoid “bullshit” and unnecessary information (here is a good &lt;a href=&quot;https://bernoff.com/books&quot; target=&quot;_blank&quot;&gt;book&lt;/a&gt; on that topic) and aim for placing your main message in the headline of your messages, slides or report sections.&lt;/p&gt;

&lt;p&gt;Use concise and direct communication. Avoid unnecessary information and place your main message in the headline.&lt;/p&gt;

&lt;p&gt;This message could use some work:
&lt;img src=&quot;/images/posts/long-slack-message.png&quot; alt=&quot;Long Slack message&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Better version:
&lt;img src=&quot;/images/posts/short-slack-message.png&quot; alt=&quot;Short Slack message&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The 2nd message lets you parse the information quicker and decide whether it is relevant and you want to dig deeper (i.e. continue reading in the thread). There are a lot of great additional examples in the book “&lt;a href=&quot;https://bernoff.com/books&quot; target=&quot;_blank&quot;&gt;writing without bullshit&lt;/a&gt;” in case you want to read further.&lt;/p&gt;

&lt;h4 id=&quot;simplify-slides-and-reports-by-reducing-text-and-eliminating-non-essential-elements&quot;&gt;Simplify slides and reports by reducing text and eliminating non-essential elements&lt;/h4&gt;

&lt;p&gt;The above tips connect well with the next topic we are going to cover: Clutter.&lt;/p&gt;

&lt;p&gt;In the Slack message example above you saw a lot of additional information that did not support the message e.g.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;“I listened […] on my Podcast Addict app […] I made 40km that day” → Your target audience will not care! Make a post in the #biking channel or tell your friends instead if you need to.&lt;/li&gt;
  &lt;li&gt;“It is like an hour long but I can totally recommend it to you” → If someone decides to check out the link, they will figure that out.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These are extreme examples but we tend to add such “clutter” to our presentations or reports as well. When was the last time you listened to a presentation and started thinking about something else since you could not follow all the information on that single slide? In those cases, the presenter lost your attention because of cognitive overload. Decluttering can help to reduce the cognitive load for your audience and make it less effort to parse your presentation or report.&lt;/p&gt;

&lt;p&gt;Things you can start doing today:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;Reduce the amount of text.&lt;/strong&gt; When you give a presentation, your slides don’t necessarily need a lot of text. You will talk the audience through anyways. Note, this can be different for slides folks consume on their own - here it can be helpful to give them context with few annotations.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Challenge each element in your chart.&lt;/strong&gt; Look at each of your axes, labels, data points, grid lines, and ask yourself: Would eliminating this element change anything? If the answer is no, get rid of it.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Avoid gifs or animations.&lt;/strong&gt; If not helpful for your message, avoid them. Our brains get distracted by such content very quickly. Only use if there is a very good reason.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you are using a BI tool, you will usually also find options to reduce clutter there.
Here is an example that uses Metabase, an open source BI tool (which, as you know, is behind the blog you’re reading right now.). It mostly comes with reasonable defaults but we can still tweak it a bit:&lt;/p&gt;

&lt;p&gt;This chart could use some work:
&lt;img src=&quot;/images/posts/metabase-chart-example-1.png&quot; alt=&quot;Metabase chart example 1&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Better version:
&lt;img src=&quot;/images/posts/metabase-chart-example-2.png&quot; alt=&quot;Metabase chart example 2&quot; /&gt;&lt;/p&gt;

&lt;h4 id=&quot;apply-colors-consistently-to-create-visual-connections-and-highlight-key-points&quot;&gt;Apply colors consistently to create visual connections and highlight key points&lt;/h4&gt;

&lt;p&gt;Colors are a very powerful tool in our communication tool box - if used wisely and consistent.
Make sure to be intentional about your use of color. One of my favorite examples is to use it for visual connections between slide titles and my charts where I try to color a category I mention in the same way as it would appear in the chart. Additionally, you can use black vs. gray color and bold vs. normal text to create a visual hierarchy. This helps guide the consumer through the content. Here is an example:&lt;/p&gt;

&lt;p&gt;This chart could use some work:
&lt;img src=&quot;/images/posts/Metabase-color-example-1.png&quot; alt=&quot;Metabase color example 1&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Better version:
&lt;img src=&quot;/images/posts/Metabase-color-example-2.png&quot; alt=&quot;Metabase color example 2&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Adding a clear indication of when the Shop redesign happened that led to the increased AOV can help us make our story stand out. This helps to reduce the cognitive load and allows your colleagues to process the content in a shorter time while increasing the chance that they perceive your message. This can also help across slides: If you stay with your color palette, your audience will quickly realize and it can be powerful to connect the dots with your previous story.&lt;/p&gt;

&lt;h4 id=&quot;give-clear-confident-recommendations-and-use-appendices-for-details&quot;&gt;Give clear, confident recommendations and use appendices for details&lt;/h4&gt;

&lt;p&gt;“Don’t caveat everything”&lt;/p&gt;

&lt;p&gt;Once, an executive at Shopify told me that Data Scientists tend to caveat everything and he often wished that folks were bolder about their recommendations. While it is natural as data professionals to want to highlight the nuances and limitations of our analysis, it is important to remember that executives are looking for clear, actionable insights. They prefer confident recommendations to make strategic decisions quickly over being walked through the details of your analysis.&lt;/p&gt;

&lt;p&gt;Some examples:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Caveated Statement: &lt;em&gt;“If the proposed customer retention strategy is implemented and the market response is favorable, we might see a potential decrease in customer churn by up to 5%.”&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;Bold Statement: &lt;em&gt;“Implementing the proposed customer retention strategy will decrease customer churn by 5%.”&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;Caveated Statement: &lt;em&gt;“While there are multiple factors to consider, and it’s possible that some variables might change, we believe that the new feature could potentially improve user engagement.”&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;Bold Statement: &lt;em&gt;“The new feature will improve user engagement.”&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You might argue that there are cases where it is important to add caveats. A good approach in those cases is to have an appendix and refer to it. This might give you more confidence and executives have the chance to dig deeper if needed. However, they mostly will ask you directly if questions arise.&lt;/p&gt;

&lt;p&gt;In conclusion, effective communication with executives requires thoughtful consideration of their time and needs. By understanding the problem and your audience, starting with a TL;DR, removing clutter, using colors wisely, and making bold statements, you can ensure your insights are understood and lead to actionable decisions. Implement these strategies in your next presentation or report to enhance clarity and effectiveness in executive communications.&lt;/p&gt;
</description>
        <pubDate>Tue, 08 Oct 2024 00:05:05 +0000</pubDate>
        <link>https://www.metabase.com/blog/communicate-data-effectively</link>
        <guid isPermaLink="true">https://www.metabase.com/blog/communicate-data-effectively</guid>
        
        
        <category>Analytics</category>
        
        <category>&amp;</category>
        
        <category>BI</category>
        
      </item>
    
      <item>
        <title>How we enriched customer contact and organization data</title>
        <description>&lt;p&gt;We wanted to get more context for the data we collect, so we shopped around for data enrichment services. These companies can contextualize your data with more details. For example, given a domain name, a third-party enrichment service can give you the domain’s associated company name, its size, industry, and so on.&lt;/p&gt;

&lt;p&gt;Data enrichment is a typical practice for growing companies, and certainly for large companies. But before you go shopping for enrichment services, you should have a known set of problems to solve (or goals to achieve), that enrichment can help with. For Metabase, we wanted to enrich our customer contacts for two reasons:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;To keep in touch with our customers.&lt;/strong&gt; Enrichment can alert us to job changes for contacts that may impact our relationship. For example, if a contact transitions to another job within or outside the company, we may want to reach out to congratulate them and make sure we’re in touch with whomever is taking over the relationship so that important product comms don’t get lost.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;To gain a better understanding of organization size and industry,&lt;/strong&gt; which can help us tailor our marketing and product efforts to make sure we’re building Metabase to solve the kinds of problems these segments face.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id=&quot;evaluation-of-service-providers&quot;&gt;Evaluation of service providers&lt;/h2&gt;

&lt;p&gt;There are surprisingly many service providers for data enrichment, each with its own pros and cons. While we considered various LinkedIn data dump providers, we decided against using them, as we shouldn’t store that kind of data in our data warehouse. We also didn’t evaluate Clearbit, since it’s no longer available as a standalone service.&lt;/p&gt;

&lt;p&gt;TL;DR: &lt;a href=&quot;https://www.apollo.io/&quot; target=&quot;\_blank&quot;&gt;Apollo.io&lt;/a&gt; offered the best coverage, pricing, and features for our use cases.&lt;/p&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Criteria / Provider&lt;/th&gt;
      &lt;th&gt;LinkedIn Sales Navigator&lt;/th&gt;
      &lt;th&gt;Crunchbase&lt;/th&gt;
      &lt;th&gt;Lusha&lt;/th&gt;
      &lt;th&gt;Apollo&lt;/th&gt;
      &lt;th&gt;CommonRoom&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Job History / LinkedIn Profile&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Best available, but UI access only; &lt;a href=&quot;https://learn.microsoft.com/en-us/linkedin/shared/integrations/people/profile-api?context=linkedin%2Fconsumer%2Fcontext&quot; target=&quot;\_blank&quot;&gt;API access is limited&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;Not available&lt;/td&gt;
      &lt;td&gt;Not available&lt;/td&gt;
      &lt;td&gt;Good / Looks recent&lt;/td&gt;
      &lt;td&gt;Mostly good, but some missing recent job changes&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Firmographic, such as industry size, industry, etc&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Good. Search is UI only; &lt;a href=&quot;https://learn.microsoft.com/en-us/linkedin/shared/integrations/people/profile-api?context=linkedin%2Fconsumer%2Fcontext&quot; target=&quot;\_blank&quot;&gt;API access is limited&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;Good, but about 70% (high/med) to 80% (low confidence) coverage for 100 recent contacts&lt;/td&gt;
      &lt;td&gt;Ok. Coverage is about 26% for 100 recent contacts&lt;/td&gt;
      &lt;td&gt;Great at 80% coverage using domain match for 100 recent contacts&lt;/td&gt;
      &lt;td&gt;Seems to be available mostly for company size, but industry is spotty and coverage is about ~60% for recent 100 contacts&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Demographic, such as job title, etc&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Great / Everything on LinkedIn Profile. Search is UI only; &lt;a href=&quot;https://learn.microsoft.com/en-us/linkedin/shared/integrations/people/profile-api?context=linkedin%2Fconsumer%2Fcontext&quot; target=&quot;\_blank&quot;&gt;API access is limited&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;Limited to select key people, like execs&lt;/td&gt;
      &lt;td&gt;Ok. Coverage is about 26% for recent 100 contacts&lt;/td&gt;
      &lt;td&gt;Good at 60% coverage for name, 50% for title / history for 100 recent contacts&lt;/td&gt;
      &lt;td&gt;Yes, but: 1. Coverage is limited to ~60% for org and ~30% for job title based on 100 recent contacts&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Export to data warehouse&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Only integration with CRM, such as &lt;a href=&quot;https://business.linkedin.com/sales-solutions/partners/find-a-partner?selectedFilter=crm#&quot; target=&quot;\_blank&quot;&gt;Salesforce or HubSpot&lt;/a&gt; with limited capabilities (differs per CRM)&lt;/td&gt;
      &lt;td&gt;Enterprise plan supports dataset download. API can do exact domain/name and fuzzy search. 200 calls per minute, 1000 limit&lt;/td&gt;
      &lt;td&gt;CSV upload / download via UI or API&lt;/td&gt;
      &lt;td&gt;API or CSV (UI) Contact enrichment is slow at 0.5 secs per call — that’s 1.4 hours per 10k records. API offers bulk download, 10 at a time&lt;/td&gt;
      &lt;td&gt;Recurring/custom export for Enterprise plan only, otherwise manually via UI. Any field visible on the filter/browse screen can be exported via UI&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Cost&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Core: $960 per person/year Advanced with CRM integration: $1600 per person/year&lt;/td&gt;
      &lt;td&gt;API: $10k per year with 30% buy-now discount. CSV Export of all 3m+ companies: $50k with 50% buy-now discount&lt;/td&gt;
      &lt;td&gt;About $20k to $25k per year for 100k contacts&lt;/td&gt;
      &lt;td&gt;$400 per month for 10k enrichments via API. 4¢ per record. $3k per month for 100k enrichments. 3¢ per record. More plan options&lt;/td&gt;
      &lt;td&gt;Many &lt;a href=&quot;https://www.commonroom.io/pricing/&quot; target=&quot;\_blank&quot;&gt;plans from free to Enterprise&lt;/a&gt; based on # of contacts and features: 1. Free up to 500 contacts / 50 orgs 2. Starter at $625/mo up to 35k contacts. 3. Team at $1250/mo up to 100k contacts 4. Enterprise at custom pricing with export to data warehouse feature. $50k+ per year&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;h2 id=&quot;continuous-enrichment&quot;&gt;Continuous enrichment&lt;/h2&gt;

&lt;p&gt;With the service provider selected, we used &lt;a href=&quot;https://dlthub.com/&quot; target=&quot;\_blank&quot;&gt;dlt&lt;/a&gt; and &lt;a href=&quot;https://www.apollo.io/product/api&quot; target=&quot;\_blank&quot;&gt;Apollo.io’s API&lt;/a&gt; to enrich new contacts hourly based on priority—prioritizing new contacts before updating existing ones, and so on.&lt;/p&gt;

&lt;p&gt;Here’s a code snippet in Python that:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Gets a list of emails from a prioritized list of contacts from our data warehouse&lt;/li&gt;
  &lt;li&gt;Calls Apollo’s API to enrich those contacts.&lt;/li&gt;
  &lt;li&gt;Then saves the enriched information back in another table in our data warehouse.&lt;/li&gt;
&lt;/ol&gt;

&lt;pre&gt;&lt;code class=&quot;language-Python&quot;&gt;def enrich_contact(self, postgres_connect_string, to_schema):
    pipeline = dlt.pipeline(pipeline_name=&apos;enrich_contact&apos;, destination=&apos;postgres&apos;, dataset_name=to_schema,
                            credentials=postgres_connect_string)

    @dlt.resource(write_disposition=&apos;merge&apos;, primary_key=&apos;email&apos;)
    def enriched_contact():
        with pipeline.sql_client() as psql:
            with psql.execute_query(&quot;select email from prioritized_contact&quot;) as cursor:
                emails = cursor.fetchall()

        for (email,) in emails:
            enriched = self.people_match(email)  # Call Apollo&apos;s &quot;people/match&quot; API
            yield enriched[&apos;person&apos;]

    print(pipeline.run(enriched_contact))
&lt;/code&gt;&lt;/pre&gt;

&lt;h2 id=&quot;modeling-for-self-service-analytics&quot;&gt;Modeling for self-service analytics&lt;/h2&gt;

&lt;p&gt;We added the enriched data, such as organization size and industry, to our customer and contact models. For organization size, we grouped the data into a few categories to simplify analysis for our teams.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&quot;language-SQL&quot;&gt;, case
    when estimated_employees &amp;lt;= 50 then &apos;Micro&apos;
    when estimated_employees &amp;lt;= 200 then &apos;Small&apos;
    when estimated_employees &amp;lt;= 1000 then &apos;Medium&apos;
    when estimated_employees &amp;lt;= 10000 then &apos;Enterprise&apos;
    when estimated_employees &amp;gt; 10000 then &apos;Mega Enterprise&apos;
  end as organization_size
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;In our contact model, we also added &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;left_company_at&lt;/code&gt; to indicate when a contact left the customer organization. This field makes it easy to find out which organizations we should reach out to so that they can stay up to date on important product communications.&lt;/p&gt;

&lt;h2 id=&quot;final-thoughts-on-data-enrichment&quot;&gt;Final thoughts on data enrichment&lt;/h2&gt;

&lt;p&gt;Enriching our data has already proved valuable. One interesting insight from the enriched data is that our customers come from a mix of micro to mega organizations. Our teams have already used this data to better understand our customers and monitor job changes.&lt;/p&gt;

&lt;p&gt;We’re now discussing how to use enrichment for additional purposes, such creating ideal customer profiles to make the most of our marketing efforts.&lt;/p&gt;

&lt;p&gt;But enrichment isn’t free, so we’ll continue to evaluate the value we gain relative to the cost and iterate accordingly. And we hope this post can help you shop for an enrichment service that fits your needs.&lt;/p&gt;
</description>
        <pubDate>Wed, 25 Sep 2024 00:05:05 +0000</pubDate>
        <link>https://www.metabase.com/blog/how-we-enriched-customer-contact-and-organization-data</link>
        <guid isPermaLink="true">https://www.metabase.com/blog/how-we-enriched-customer-contact-and-organization-data</guid>
        
        
        <category>Analytics</category>
        
        <category>&amp;</category>
        
        <category>BI</category>
        
      </item>
    
      <item>
        <title>Set up a basic pipeline for log analysis</title>
        <description>&lt;p&gt;Choosing tools to clean, parse, and structure log data can be overwhelming (and expensive). But when you’re just getting started, you can get away with a simple setup for ad hoc analysis with a BI tool like Metabase. Here are a few best practices to follow for setting up a basic pipeline for analyzing logs.&lt;/p&gt;

&lt;h2 id=&quot;use-a-data-connector-tool-as-a-shortcut-for-ingestion&quot;&gt;Use a data connector tool as a shortcut for ingestion&lt;/h2&gt;

&lt;p&gt;Tools like &lt;a href=&quot;https://airbyte.com/&quot;&gt;Airbyte&lt;/a&gt; can quickly connect to your database and structure logs for you. Choose your logging source, like &lt;a href=&quot;https://aws.amazon.com/cloudtrail/&quot;&gt;AWS CloudTrail&lt;/a&gt;, and connect it to a database, like &lt;a href=&quot;https://www.snowflake.com/en/&quot;&gt;Snowflake&lt;/a&gt; (a relatively easy, scalable, reasonable cost solution), or &lt;a href=&quot;https://aws.amazon.com/rds/aurora/serverless/&quot;&gt;AWS Aurora Serverless Postgres&lt;/a&gt;(an easy, somewhat scalable, low-cost solution).&lt;/p&gt;

&lt;p&gt;Other ETL tools, like &lt;a href=&quot;https://www.fivetran.com/connectors&quot;&gt;Fivetran&lt;/a&gt; or &lt;a href=&quot;https://www.stitchdata.com/&quot;&gt;Stitch&lt;/a&gt;, work in a similar vein. They use a connector to move log data from a source, like CloudTrail, to your database. You can also &lt;a href=&quot;/learn/metabase-basics/querying-and-dashboards/data-modeling/models&quot;&gt;use an ETL tool and perform data modeling in tandem&lt;/a&gt; to do some of the heavier lifting for you.&lt;/p&gt;

&lt;h2 id=&quot;use-a-single-cloud-provider-to-keep-everything-under-one-roof&quot;&gt;Use a single cloud provider to keep everything under one roof&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://cloud.google.com/logging?hl=en&quot;&gt;Google Cloud Logging&lt;/a&gt; connects with &lt;a href=&quot;https://cloud.google.com/logging/docs/export/bigquery&quot;&gt;BigQuery&lt;/a&gt; so you can automatically ingest logs right into your data warehouse. AWS has multiple logging options, like CloudTrail or &lt;a href=&quot;https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html&quot;&gt;CloudWatch&lt;/a&gt;, that you can connect to one of their database options, like &lt;a href=&quot;https://aws.amazon.com/rds/&quot;&gt;Postgres for RDS&lt;/a&gt;. &lt;a href=&quot;https://learn.microsoft.com/en-us/azure/azure-monitor/overview&quot;&gt;Azure Monitor&lt;/a&gt; also has logging and storage capabilities.&lt;/p&gt;

&lt;h3 id=&quot;advanced-use-case-dump-logs-from-multiple-aws-services-into-an-s3-bucket-and-query-them-with-athena&quot;&gt;Advanced use case: dump logs from multiple AWS services into an S3 bucket and query them with Athena&lt;/h3&gt;

&lt;p&gt;If you have a bit of experience with cloud services, like AWS, you can use an entire suite of cloud services to take logs from several different services and push them into one central location to prepare for analysis.&lt;/p&gt;

&lt;p&gt;For example, push web server or application logs from your EC2 instances into an S3 bucket, along with your CloudTrail logs. Connect your S3 bucket to a querying tool, like &lt;a href=&quot;https://levelup.gitconnected.com/loading-data-from-s3-to-aws-athena-7c56c63efccc&quot;&gt;Athena&lt;/a&gt;, so you can &lt;a href=&quot;https://docs.aws.amazon.com/athena/latest/ug/creating-tables.html#creating-tables-how-to&quot;&gt;create a few tables&lt;/a&gt; to use for analysis. Once you have tables, you can connect to your analytics tool and create a troubleshooting dashboard, like one that maps EC2 events to CloudTrail incidents for root cause analysis.&lt;/p&gt;

&lt;p&gt;Here’s some other AWS logging options that you can use with S3 and Athena:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;CloudWatch: store application, system, or custom logs&lt;/li&gt;
  &lt;li&gt;RDS: store error, slow query, or transaction logs&lt;/li&gt;
  &lt;li&gt;Lambda: store lambda logs that contain execution details, error messages, and custom log statements&lt;/li&gt;
  &lt;li&gt;Elastic Load Balancer (ELB): store ELB logs that contain client IP address, request time, and response status code&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If want to go a step further, you can &lt;a href=&quot;https://docs.getdbt.com/docs/core/connect-data-platform/athena-setup&quot;&gt;connect Athena to dbt&lt;/a&gt; and learn how to write your own data transformations in SQL. dbt streamlines version control, deployment, and testing without having to run individual tools. However, we only recommend this setup if you’re familiar with data modeling and developer tooling.&lt;/p&gt;

&lt;h2 id=&quot;batch-load-logs-for-efficiency&quot;&gt;Batch load logs for efficiency&lt;/h2&gt;

&lt;p&gt;You should batch load your logs into your data warehouse directly, or a storage option like S3, to avoid latency and resource consumption. Most cloud services offer a &lt;a href=&quot;https://docs.aws.amazon.com/batch/latest/userguide/review-job-logs.html&quot;&gt;batch service&lt;/a&gt; where you can schedule and queue jobs. &lt;em&gt;Note if you’re paying for a database or log storage, double-check the price of batch loading first as some cloud services charge per batch upload.&lt;/em&gt;&lt;/p&gt;

&lt;h2 id=&quot;use-a-database-client-library-or-connector-for-ingestion&quot;&gt;Use a database client library or connector for ingestion&lt;/h2&gt;

&lt;p&gt;Not having access to a connector tool is not an issue, but it may take more development work. Using an existing database client library or driver can help you ingest logs directly into storage / data warehouse at log time.&lt;/p&gt;

&lt;p&gt;For example, &lt;a href=&quot;https://wiki.postgresql.org/wiki/List_of_drivers&quot;&gt;Postgres has drivers&lt;/a&gt;, and &lt;a href=&quot;https://www.mysql.com/products/connector/&quot;&gt;MySQL has connectors&lt;/a&gt;. Use one of these to hook into your database without having to reinvent the wheel.&lt;/p&gt;

&lt;h2 id=&quot;make-sure-your-logs-include-a-timestamp-source-message-and-log-level&quot;&gt;Make sure your logs include a timestamp, source, message, and log level&lt;/h2&gt;

&lt;p&gt;There are four areas we recommend to add to your log files to make log analysis smoother:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Timestamps: It’ll be easier to establish a sequence of events. Timestamps are especially important if you’re using an analytics tool to create dashboards for performance monitoring, or auditing and compliance.&lt;/li&gt;
  &lt;li&gt;Source: Like the service that created the log, but also which location/file/sub-service the logs are coming from. You can use the service field for troubleshooting, or just to gauge which resources are allocated to each service.&lt;/li&gt;
  &lt;li&gt;Log message: Keep messages clear and concise so you can understand each event. Reuse keywords so it’s easier to filter and find what you need during textual analysis.&lt;/li&gt;
  &lt;li&gt;Log level: You can filter on levels like &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ALERT&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;CRITICAL&lt;/code&gt; to get to the bottom of which log requires immediate investigation and response.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;additional-best-practices-and-ideas-for-log-analysis&quot;&gt;Additional best practices and ideas for log analysis&lt;/h2&gt;

&lt;p&gt;If you’re aiming for real-time log analysis, or advanced or frequent log analysis, log-specific tooling tends to be a better fit. If your team is already using an ELK stack, a tool like &lt;a href=&quot;https://grafana.com/&quot;&gt;Grafana&lt;/a&gt; could fit the bill.&lt;/p&gt;

&lt;p&gt;Here are a few additional resources you can use to make decisions when building out a small scale logging pipeline:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://tersesystems.com/blog/2019/09/28/applying-data-science-to-logs-for-developer-observability/&quot;&gt;Learn about applying data science principles to logging&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://aws.amazon.com/getting-started/decision-guides/databases-on-aws-how-to-choose/&quot;&gt;Guidance on which AWS database and services to use&lt;/a&gt;. &lt;a href=&quot;https://cloud.google.com/blog/topics/developers-practitioners/your-google-cloud-database-options-explained&quot;&gt;Google has docs available, too&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.kdnuggets.com/how-to-digest-15-billion-logs-per-day-and-keep-big-queries-within-1-second&quot;&gt;Learn about log storage strategies that can help you reduce cost and scale over time&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Mon, 04 Mar 2024 00:10:22 +0000</pubDate>
        <link>https://www.metabase.com/blog/set-up-a-logging-pipeline-for-analysis</link>
        <guid isPermaLink="true">https://www.metabase.com/blog/set-up-a-logging-pipeline-for-analysis</guid>
        
        
        <category>Using</category>
        
        <category>Metabase</category>
        
      </item>
    
      <item>
        <title>Embed a Metabase dashboard in Zendesk</title>
        <description>&lt;p&gt;One cool thing about Metabase is that you can embed a dashboard in the apps you use every day.&lt;/p&gt;

&lt;p&gt;We recently embedded our customer dashboard right into Zendesk. Having this dashboard side-by-side with support tickets allows us to see customer information without having to switch between Metabase and Zendesk. We even passed a few filter parameters to automatically filter on the customer and organization in the dashboard, significantly speeding up how quickly we can troubleshoot issues.&lt;/p&gt;

&lt;p&gt;The dashboard includes:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Account information&lt;/strong&gt;: Customer name, when their account was created, if it was cancelled and when, subscription status, plan name&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Support tier information&lt;/strong&gt;: Support tier, whether their account is active&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Deployment and Metabase version information&lt;/strong&gt;: Deployment type, cloud provider, Metabase version number and last time they updated&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Account details&lt;/strong&gt;: Annual value, LTV, number of users, country&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Cloud details&lt;/strong&gt;: How many questions and dashboards the customer has, and link to their instance log&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Contact information&lt;/strong&gt;: Email, name, level of technical knowledge&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Customer happiness or sentiment&lt;/strong&gt;: Survey responses, CSAT responses, etc.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;List of associated GitHub issues and tickets&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Technically, you can embed a Metabase dashboard into any app that allows iframe embedding or allows third-party apps that support the use of embedding URLs. A few other platforms that you can test this out with are &lt;a href=&quot;https://appexchange.salesforce.com/&quot;&gt;Salesforce&lt;/a&gt;, &lt;a href=&quot;https://marketplace.atlassian.com/&quot;&gt;Jira&lt;/a&gt;, &lt;a href=&quot;https://stripe.com/apps&quot;&gt;Stripe&lt;/a&gt;, and &lt;a href=&quot;https://apps.shopify.com/&quot;&gt;Shopify&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Here’s a quick walkthrough of how we embedded our customer dashboard in Zendesk.&lt;/p&gt;

&lt;h2 id=&quot;our-setup-an-interactive-dashboard-embedded-in-an-iframe-using-a-third-party-app&quot;&gt;Our setup: an interactive dashboard embedded in an iframe using a third-party app&lt;/h2&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;We used &lt;a href=&quot;/docs/latest/embedding/interactive-embedding&quot;&gt;interactive embedding&lt;/a&gt; in this example. You &lt;em&gt;can&lt;/em&gt; use &lt;a href=&quot;/docs/latest/questions/sharing/public-links&quot;&gt;public embedding&lt;/a&gt; to embed a dashboard, but for this instance, we needed to protect customer data as public embedding enables public links. It’s best to stick with interactive embedding if you’re in a similar position.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;We decided to use an iFrame app rather than build our own app. By going with a third-party app, we saved engineering resources and got to a working implementation faster. One downside: the logo for the app we went with, Customer360, is always visible. Not ideal, but not really an issue for our internal-facing use.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id=&quot;the-iframe-apps-we-considered&quot;&gt;The iframe apps we considered&lt;/h2&gt;

&lt;p&gt;To get started, we narrowed down apps and made a list of their pros and cons:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.zendesk.com/marketplace/apps/support/149904/iframe-plus/?queryID=aae992ecfc8aafcb2af785124981ac34&quot;&gt;Iframe Plus&lt;/a&gt;: $7 per instance, so it’s low price, but the con is there isn’t any support.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.zendesk.com/marketplace/apps/support/1/iframe/?queryID=0585c97cb38c4b1ec6b166679feb59ea&quot;&gt;Zendesk Iframe&lt;/a&gt;: Free, but there was no ticket sidebar option, which is where we wanted the dashboard to live. E.g., the dashboard will only show up in organization view, not ticket view.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.zendesk.com/marketplace/apps/chat/213783/customer-360/&quot;&gt;Customer360&lt;/a&gt;: $4 per agent, so it’s low price and the UI is easy-to-use. &lt;strong&gt;This is the app we went with&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;enable-interactive-embedding&quot;&gt;Enable interactive embedding&lt;/h2&gt;

&lt;p&gt;Next, we enabled &lt;a href=&quot;/docs/latest/embedding/interactive-embedding&quot;&gt;interactive embedding&lt;/a&gt; by going to &lt;strong&gt;Settings &amp;gt; Admin settings &amp;gt; Embedding&lt;/strong&gt;. Click on &lt;strong&gt;Enable&lt;/strong&gt;, and click on &lt;strong&gt;Interactive embedding&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;We then grabbed the URL for our dashboard from Metabase and properly formatted it to use in the Customer360 app.&lt;/p&gt;

&lt;p&gt;You’ll need to set the source attribute to &lt;a href=&quot;/docs/latest/embedding/interactive-embedding#pointing-an-iframe-to-a-metabase-url&quot;&gt;your site URL&lt;/a&gt;. For example, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;http://metabase.yourcompany.com/dashboard/1&lt;/code&gt;.&lt;/p&gt;

&lt;h2 id=&quot;authorize-zendesk-and-customer-360-urls-in-metabase&quot;&gt;Authorize Zendesk and Customer 360 URLs in Metabase&lt;/h2&gt;

&lt;p&gt;We also needed to authorize the following Zendesk URLs in Metabase. To do this, we navigated to &lt;strong&gt;Admin Settings &amp;gt; Settings &amp;gt; Embedding &amp;gt; Interactive &amp;gt; Authorized Origins&lt;/strong&gt; and added the following URLs:&lt;/p&gt;

&lt;p&gt;Zendesk URLs&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;https://*.zdusercontent.com&lt;/code&gt;&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;https://*.zndsk.com&lt;/code&gt;&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;https://*.zendesk.com&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Customer 360 URL&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;https://*.myplaylist.io&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;install-the-customer-360-app-and-add-your-dashboard-url&quot;&gt;Install the Customer 360 app and add your dashboard URL&lt;/h2&gt;

&lt;p&gt;Next, we &lt;a href=&quot;https://www.zendesk.com/marketplace/apps/sell/562618/customer-360/?queryID=702f1711116f7af8c09eb4ee3484d563&quot;&gt;installed the Customer 360 app&lt;/a&gt; and input our dashboard URL (with the source attribute set to our Metabase instance).&lt;/p&gt;

&lt;h2 id=&quot;show-only-the-customer-data-you-need-by-passing-parameters-in-the-url-to-filters-in-your-dashboard&quot;&gt;Show only the customer data you need by passing parameters in the URL to filters in your dashboard&lt;/h2&gt;

&lt;p&gt;You can pass values to your dashboard’s filters via parameterized URLs. For example, we pass both Organization and Ticket requester information, so now our dashboard automatically filters to show only the information we need about the customer and their organization.&lt;/p&gt;

&lt;p&gt;The Customer 360 app lets you use the following parameters:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;{{ticket.requester.email}}&lt;/code&gt;&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;{{ticket.requester.emails}}&lt;/code&gt; (comma-separated list of requester’s emails)&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;{{ticket.requester.external_id}}&lt;/code&gt;&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;{{ticket.requester.id}}&lt;/code&gt;&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;{{ticket.requester.custom_fields.&amp;lt;field_key&amp;gt;}}&lt;/code&gt;&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;{{ticket.organization.id}}&lt;/code&gt;&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;{{ticket.organization.external_id}}&lt;/code&gt;&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;{{ticket.organization.custom_fields.&amp;lt;field_key&amp;gt;}}&lt;/code&gt;&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;{{ticket.ticket_field_&amp;lt;field ID number&amp;gt;}}&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;See the &lt;a href=&quot;/docs/latest/questions/native-editor/sql-parameters#setting-sql-variables&quot;&gt;setting a SQL variable docs&lt;/a&gt; for an example.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/embed-metabase-in-zendesk/customer-360-setup.png&quot; alt=&quot;Customer 360 app settings in Zendesk&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;a-small-caveat-about-sso&quot;&gt;A small caveat about SSO&lt;/h3&gt;

&lt;p&gt;Metabase will ask you to sign in again if you refresh the Zendesk ticket page or add a new ticket. Also, you will need an active session in your Metabase to not be kicked out every time you enter the ticket sidebar. We got around this by setting our environment’s &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;MB_SESSION_COOKIE_SAMESITE&lt;/code&gt; to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;none&lt;/code&gt;, as mentioned in the &lt;a href=&quot;/docs/latest/embedding/interactive-embedding&quot;&gt;interactive embedding setup docs&lt;/a&gt; and &lt;a href=&quot;/docs/latest/configuring-metabase/environment-variables#mb_session_cookie_samesite&quot;&gt;environment variables docs&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;tidy-up-your-dashboard-view-in-zendesk&quot;&gt;Tidy up your dashboard view in Zendesk&lt;/h2&gt;

&lt;p&gt;Now, when we click on a ticket in Zendesk and the ticket sidebar pops up, our customer dashboard appears and is filtered down to the customer and their organization!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/embed-metabase-in-zendesk/metabase-embedded-dashboard-in-zendesk.png&quot; alt=&quot;A Metabase dashboard embedded in the Zendesk ticket sidebar&quot; /&gt;&lt;/p&gt;

&lt;p&gt;We hid a few Metabase UI components, like headers or breadcrumbs, by setting &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;header&lt;/code&gt; to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;false&lt;/code&gt; in the embedding URL. We did this to clean up the way our dashboard looks in-app.&lt;/p&gt;

&lt;p&gt;There’s a list of examples of what else you can do in the &lt;a href=&quot;/docs/latest/embedding/interactive-embedding#showing-or-hiding-metabase-ui-components&quot;&gt;showing or hiding Metabase UI components docs&lt;/a&gt;. Note that some of these feature may not work for certain dashboards as it depends on the components in the dashboard.&lt;/p&gt;

&lt;h2 id=&quot;check-out-other-embedding-projects&quot;&gt;Check out other embedding projects&lt;/h2&gt;

&lt;p&gt;If you need inspiration, check out projects and feedback in our &lt;a href=&quot;https://github.com/metabase/metabase/issues?q=is%3Aopen+is%3Aissue+label%3AEmbedding%2FInteractive+&quot;&gt;Github tracker&lt;/a&gt;. If you enter the repo manually in the future, just filter by &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;label:Embedding/Interactive&lt;/code&gt; to get a full list of current embedding-related issues (click on closed to see resolved issues.)&lt;/p&gt;
</description>
        <pubDate>Mon, 26 Feb 2024 00:05:05 +0000</pubDate>
        <link>https://www.metabase.com/blog/embed-metabase-in-zendesk</link>
        <guid isPermaLink="true">https://www.metabase.com/blog/embed-metabase-in-zendesk</guid>
        
        
        <category>Using</category>
        
        <category>Metabase</category>
        
      </item>
    
      <item>
        <title>Keeping tabs on embedded analytics</title>
        <description>&lt;p&gt;Metabase offers a few different types of embedding: &lt;a href=&quot;/docs/latest/embedding/interactive-embedding&quot;&gt;interactive&lt;/a&gt;, &lt;a href=&quot;/docs/latest/embedding/static-embedding&quot;&gt;static&lt;/a&gt;, and &lt;a href=&quot;/docs/latest/questions/sharing/public-links#public-embeds&quot;&gt;public embedding&lt;/a&gt;. With &lt;a href=&quot;/docs/latest/usage-and-performance-tools/usage-analytics&quot;&gt;usage analytics&lt;/a&gt;, you can track how your customers interact with your customer-facing analytics.&lt;/p&gt;

&lt;p&gt;The level of detail available in usage analytics depends on the embedding type. For example, interactive embedding gives you an additional capability to track usage tied to a log in, whereas usage stats, like views and downloads, with static and public embedding are anonymous.&lt;/p&gt;

&lt;p&gt;However, this guide can give you a roundabout idea of how to start track usage analytics for embedded analytics.&lt;/p&gt;

&lt;h2 id=&quot;see-how-often-people-use-your-customer-facing-analytics&quot;&gt;See how often people use your customer-facing analytics&lt;/h2&gt;

&lt;p&gt;Justify your investment in embedding by keeping track of how often it’s being used. The &lt;a href=&quot;/docs/latest/usage-and-performance-tools/usage-analytics#metabase-metrics-dashboard&quot;&gt;Metabase metrics dashboard&lt;/a&gt; tracks how many active users you have, how many questions people are viewing and creating per week, and trends over time as usage changes week over week.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/embedding-usage-analytics/metabase-metrics.png&quot; alt=&quot;The Metabase metrics dashboard&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;understand-what-your-customers-are-most-interested-in&quot;&gt;Understand what your customers are most interested in&lt;/h2&gt;

&lt;p&gt;In that same Metabase metrics dashboard, you’ll find a list of who your most engaged data consumers are. See what they’re looking at so you can create more relevant content geared towards their interests. Knowing what your customers actually care about can also lead to more meaningful conversations about how you can support them.&lt;/p&gt;

&lt;p&gt;You can also learn when customers start to lose interest. For example, for interactive embedding, you can spot if a particularly active customer suddenly stops visiting your analytics. This could be a sign to reach out and see if they need your support.&lt;/p&gt;

&lt;p&gt;For static and public embedding, you can look at usage in aggregate by filtering on anonymous to find what your customers are most interested in.&lt;/p&gt;

&lt;h2 id=&quot;keep-questions-and-dashboards-quick-and-minimize-friction-so-your-customers-can-self-serve-what-they-need&quot;&gt;Keep questions and dashboards quick and minimize friction so your customers can self-serve what they need&lt;/h2&gt;

&lt;p&gt;There are two different dashboards you can use to figure out which dashboards and questions are running the slowest or consuming the most resources.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/embedding-usage-analytics/dashboard-options.png&quot; alt=&quot;The Metabase Analytics collection dashboards available in Metabase&quot; /&gt;&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;Use the &lt;a href=&quot;/docs/latest/usage-and-performance-tools/usage-analytics#performance-overview-dashboard&quot;&gt;Performance Overview dashboard&lt;/a&gt; to find out what your slowest dashboards and questions are, and refactor, &lt;a href=&quot;/docs/latest/configuring-metabase/caching&quot;&gt;cache&lt;/a&gt;, or &lt;a href=&quot;/docs/latest/exploration-and-organization/delete-and-restore&quot;&gt;archive&lt;/a&gt; them.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Look in the &lt;a href=&quot;/docs/latest/usage-and-performance-tools/usage-analytics#content-with-cobwebs-dashboard&quot;&gt;Content with Cobwebs dashboard&lt;/a&gt; to see what’s not being viewed. It might be time to archive, or if you think people are really missing out, put this content somewhere more prominent.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id=&quot;keep-your-data-secure-with-multi-tenant-embedded-analytics&quot;&gt;Keep your data secure with multi-tenant embedded analytics&lt;/h2&gt;

&lt;p&gt;Usage analytics gives you a comprehensive log for auditing and security purposes.&lt;/p&gt;

&lt;p&gt;You can monitor the people or activity logs for anomalies, like suspicious logins or changed settings, and set up subscriptions and alerts on questions created from these logs to keep a constant watch on what’s going on in your instance.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/embedding-usage-analytics/security-monitoring.png&quot; alt=&quot;The activity log filtered by changed settings&quot; /&gt;&lt;/p&gt;

&lt;p&gt;You can use these logs in combination with other security features, like &lt;a href=&quot;/docs/latest/people-and-groups/start#authentication&quot;&gt;SSO&lt;/a&gt;, &lt;a href=&quot;/docs/latest/permissions/data-sandboxes&quot;&gt;sandboxing&lt;/a&gt;, and more, for secure, multi-tenant analytics.&lt;/p&gt;

&lt;h2 id=&quot;metabase-usage-analytics-resources&quot;&gt;Metabase usage analytics resources&lt;/h2&gt;

&lt;p&gt;Usage analytics spans beyond just tracking embedded analytics. You can also use usage analytics for internal things, like cleaning up your Metabase, giving your data team an idea of how often your data is being used, and more. Check out a few of the other ways you can use the Metabase analytics collection:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/docs/latest/usage-and-performance-tools/usage-analytics&quot;&gt;Usage analytics docs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/blog/metabase-housekeeping-with-usage-analytics&quot;&gt;Metabase housekeeping with usage analytics&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/blog/how-to-use-metabase-usage-analytics&quot;&gt;Understand how your team uses Metabase&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/events/metabase-usage-analytics&quot;&gt;Video: Metabase usage analytics — what happens inside your instance&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Mon, 19 Feb 2024 00:03:50 +0000</pubDate>
        <link>https://www.metabase.com/blog/embedding-usage-analytics</link>
        <guid isPermaLink="true">https://www.metabase.com/blog/embedding-usage-analytics</guid>
        
        
        <category>Using</category>
        
        <category>Metabase</category>
        
      </item>
    
      <item>
        <title>Comparing the most popular open-source charting libraries</title>
        <description>&lt;p&gt;Here’s a breakdown of some of the most popular charting libraries to help you figure out which library could be best for your embedding project, as well as a discussion about when you should consider a more batteries-included solution.&lt;/p&gt;

&lt;h2 id=&quot;chartjs&quot;&gt;Chart.js&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://www.chartjs.org/&quot;&gt;Chart.js&lt;/a&gt; is an open-source JavaScript visualization library that started in 2013 and, over time, has ranked as the most popular charting library according to GitHub stars and npm downloads.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Chart.js might be right for you if you:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Have large data sets. Data is ingested using their internal format, so you can just set &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;parsing: true&lt;/code&gt; and it’ll parse your data for you.&lt;/li&gt;
  &lt;li&gt;Need an active dev community to lean on. Check out Chart.js’ &lt;a href=&quot;https://discord.com/invite/HxEguTK6av&quot;&gt;Discord channel&lt;/a&gt; and &lt;a href=&quot;https://github.com/chartjs/awesome&quot;&gt;resource list&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Require plugin support. There are plenty of Chart.js-related repos available to test and use. For example, Chart.js has a well-maintained, popular &lt;a href=&quot;https://github.com/reactchartjs/react-chartjs-2&quot;&gt;React components&lt;/a&gt; library available.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;visx&quot;&gt;Visx&lt;/h2&gt;

&lt;p&gt;The brainchild of Airbnb’s Engineering and Data Science team, &lt;a href=&quot;https://airbnb.io/visx&quot;&gt;visx&lt;/a&gt; is a collection of expressive, low-level visualization primitives for React.&lt;/p&gt;

&lt;p&gt;While visx isn’t technically a visualization library, it helps you build your own charting using visualization primitives. visx bundles D3 and React to give you the bare bones of charting while keeping the animations, theming, and styling you’re already using for your app.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;visx might be right for you if you need to:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Keep bundle size small. visx offers multiple packages, but you can pick and choose the packages you need.&lt;/li&gt;
  &lt;li&gt;Use your own animation library. Other visualization libraries can sometimes impose animations and style that can impede on existing design work.&lt;/li&gt;
  &lt;li&gt;Play around and get inspiration first before going all-in. Their &lt;a href=&quot;https://airbnb.io/visx/gallery&quot;&gt;gallery has plenty of cool, lightweight  examples&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;nivo&quot;&gt;Nivo&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://nivo.rocks/&quot;&gt;Nivo&lt;/a&gt; is built on top of D3 as a set of React components to offer server side rendering and fully declarative charts. &lt;a href=&quot;https://nivo.rocks/storybook/?path=/docs/bar--docs&quot;&gt;Nivo’s Storybook&lt;/a&gt; offers interactive examples, so you can get a sense of what to build, and their &lt;a href=&quot;https://nivo.rocks/area-bump/&quot;&gt;documentation&lt;/a&gt; lets you testing out individual components before implementing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Nivo might be right for you if you need:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Highly customizable, fully declarative, responsive charts.&lt;/li&gt;
  &lt;li&gt;A library fully written in React (Nivo isn’t the typical wrapper library).&lt;/li&gt;
  &lt;li&gt;An active developer community to work with. &lt;a href=&quot;https://github.com/plouc/nivo&quot;&gt;Nivo’s Github repo&lt;/a&gt; is pretty active and they have a Discourse channel you can join.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;echarts&quot;&gt;ECharts&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://echarts.apache.org/en/index.html&quot;&gt;ECharts&lt;/a&gt; is an open-source Javascript visualization library maintained by the Apache Software Foundation. Companies like Amazon, Gitlab, and Intel use ECharts to include data visualizations in their products, reports, research papers, etc.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;We’re working on incorporating ECharts for Metabase data visualizations, so you can say we’re fans of this library, too.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You may want to use ECharts if you need:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;“Smart charts”. ECharts automatically uses the appropriate animation to represent data changes.&lt;/li&gt;
  &lt;li&gt;A multi-rendering solution with cross-platform support. You can render charts in Canvas, SVG, and VML. ECharts has support for PC and mobile browsers, and a node-canvas on Node for server-side rendering.&lt;/li&gt;
  &lt;li&gt;Access to many pre-built series beyond basic line, bar, and pie charts. There are 20+ options like box plots, heat maps, funnels, and more. You can plot multiple series on a chart, too.&lt;/li&gt;
  &lt;li&gt;To render fully-customized maps. The ECharts map series type supports geoJSON.&lt;/li&gt;
  &lt;li&gt;Accessibility features. It’s one of the few visualization libraries that has automatically generated chart descriptions and decal patterns for users with disabilities.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;plotly&quot;&gt;Plotly&lt;/h2&gt;

&lt;p&gt;Looking for a bundle of open source libraries? With &lt;a href=&quot;https://plotly.com/graphing-libraries/&quot;&gt;Plotly&lt;/a&gt;, you can create interactive charts and maps for Python, R, Julia, and multiple other languages.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You may want to use Plotly if you need&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;A library for statistical programming languages. Plotly even has a &lt;a href=&quot;https://plotly.com/matlab/#fundamentals&quot;&gt;MATLAB® library&lt;/a&gt;. Plotly’s &lt;a href=&quot;https://plotly.com/r/#fundamentals&quot;&gt;fundamentals docs&lt;/a&gt; have plenty of code examples, so they’re a great place to start if you’re still learning the ropes.&lt;/li&gt;
  &lt;li&gt;To integrate with &lt;a href=&quot;https://jupyter.org/&quot;&gt;Jupyter notebooks&lt;/a&gt; or IDEs like &lt;a href=&quot;https://www.jetbrains.com/pycharm/&quot;&gt;PyCharm&lt;/a&gt;, &lt;a href=&quot;https://qtconsole.readthedocs.io/en/stable/&quot;&gt;QtConsole&lt;/a&gt;, or &lt;a href=&quot;https://www.spyder-ide.org/&quot;&gt;Spyder&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Standalone HTML files for your application. You can also use &lt;a href=&quot;https://dash.plotly.com/&quot;&gt;Dash&lt;/a&gt; to add graphs to your existing Python web applications.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;when-you-might-need-more-than-a-simple-viz-library&quot;&gt;When you might need more than a simple viz library&lt;/h2&gt;

&lt;p&gt;Visualization libraries are a good option if you’re already deep into component-driven development or have a skilled dev team on hand that can quickly implement and iterate on charts.&lt;/p&gt;

&lt;p&gt;However, as you scale, maintaining a visualization library can mean taking on a lot of overhead. For example:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;If you outgrow your visualization library in any way, you’ll either need to work with maintainers to add new features or fixes, or pivot to an entirely new visualization library.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Your dev team will need to handle ad-hoc requests for embedding and charting, or you’ll have to find a middle ground, like adding new interfaces and platforms to support teams that aren’t as familiar with a visualization library.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In these scenarios, using a Business Intelligence (BI) tool that has features to support both technical and non-technical teams can save you down the line.&lt;/p&gt;

&lt;h2 id=&quot;open-source-business-intelligence-tools&quot;&gt;Open-source Business Intelligence tools&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;/start/oss&quot;&gt;Metabase OSS&lt;/a&gt; is a free option if you need a quick solution for &lt;a href=&quot;/product/embedded-analytics&quot;&gt;embedding&lt;/a&gt;. You can create, embed, and iterate on charts at scale, in a matter of minutes. Other BI tools, like Apache Superset or Redash, are also open source and offer similar functionality.&lt;/p&gt;

&lt;p&gt;Metabase offers some additional free, out-of-the-box features that can cover the bases for most, if not all of your teams:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;A &lt;a href=&quot;/docs/latest/questions/native-editor/writing-sql&quot;&gt;SQL editor&lt;/a&gt; for your data and dev teams, so they can quickly query against your database without hassle.&lt;/li&gt;
  &lt;li&gt;A &lt;a href=&quot;/learn/metabase-basics/getting-started/data-browser&quot;&gt;data browser&lt;/a&gt; that can act as one centralized place for everyone to explore tables and fields; learn more about your data.&lt;/li&gt;
  &lt;li&gt;A &lt;a href=&quot;/docs/latest/data-modeling/models&quot;&gt;data modeling tool&lt;/a&gt;, so your Data team can view schema, edit definition and metadata, and more.&lt;/li&gt;
  &lt;li&gt;An &lt;a href=&quot;/docs/latest/questions/query-builder/introduction&quot;&gt;intuitive query builder&lt;/a&gt; and &lt;a href=&quot;/docs/latest/questions/sharing/visualizing-results#visualization-options&quot;&gt;one-click visualization options&lt;/a&gt; for teams that aren’t as familiar with dev or data tooling. Everyone can build and maintain their own charts and visualizations without Eng or Data team support.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To test it out, check out the &lt;a href=&quot;/start/oss&quot;&gt;OSS installation instructions&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;more-charts-and-embedding-resources&quot;&gt;More charts and Embedding resources&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/docs/latest/embedding/introduction&quot;&gt;Embedding docs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/docs/latest/embedding/sdk/introduction&quot;&gt;Embedded analytics React SDK&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/events/overview-of-customer-facing-analytics-with-metabase&quot;&gt;Overview of Customer-facing analytics with Metabase&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Tue, 13 Feb 2024 00:12:18 +0000</pubDate>
        <link>https://www.metabase.com/blog/best-open-source-chart-library</link>
        <guid isPermaLink="true">https://www.metabase.com/blog/best-open-source-chart-library</guid>
        
        
        <category>Analytics</category>
        
        <category>&amp;</category>
        
        <category>BI</category>
        
      </item>
    
      <item>
        <title>Understand how your team uses Metabase</title>
        <description>&lt;p&gt;&lt;a href=&quot;/features/usage-analytics&quot;&gt;Metabase usage analytics&lt;/a&gt; is the new version of auditing tools on Pro and Enterprise plans, available as a collection of interactive dashboards, questions, and models built on your usage data.&lt;/p&gt;

&lt;p&gt;With Metabase usage analytics you can see:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Which dashboards and questions are the most popular&lt;/li&gt;
  &lt;li&gt;How many weekly active Metabase users you have&lt;/li&gt;
  &lt;li&gt;Which groups are most actively using dashboards and questions&lt;/li&gt;
  &lt;li&gt;Who’s creating and viewing what content&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This guide gives a few real-world examples of how you can take advantage of these usage analytics.&lt;/p&gt;

&lt;p&gt;There are many factors that may determine how you use usage analytics, like industry standards and regulations, team and org size, structure, etc. This guide isn’t a specific set of rules, so feel free to take these ideas and build on them for your use case.&lt;/p&gt;

&lt;h2 id=&quot;track-and-monitor-model-and-data-performance-as-a-data-team&quot;&gt;Track and monitor model and data performance as a data team&lt;/h2&gt;

&lt;p&gt;Our data team uses Metabase usage analytics to track and monitor question and dashboard usage and performance to ensure things run smoothly. Usage analytics allows the team to track which questions people view the most (e.g. Seeing if their latest activation models are being used in questions).&lt;/p&gt;

&lt;p&gt;The prebuilt &lt;strong&gt;Most viewed content&lt;/strong&gt; dashboard lets you filter by group name. Once you know what people are most interested in viewing, you can structure your Metabase so that the most used stuff is more discoverable, like by putting certain metrics on your Metabase home page.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;../images/posts/how-to-use-metabase-usage-analytics/most-viewed-content.png&quot; alt=&quot;The Most viewed content dashboard, filtered by user group, in Metabase&quot; /&gt;&lt;/p&gt;

&lt;p&gt;You can also set up as a &lt;a href=&quot;../docs/latest/configuring-metabase/slack&quot;&gt;dashboard subscription&lt;/a&gt; to a Slack #general channel to send relevant data to your teammates.&lt;/p&gt;

&lt;h2 id=&quot;find-out-which-questions-and-dashboards-you-could-archive&quot;&gt;Find out which questions and dashboards you could archive&lt;/h2&gt;

&lt;p&gt;We use usage analytics to find out which dashboards or questions are no longer being used and retire them. To see this, take a look in the &lt;strong&gt;Content with cobwebs&lt;/strong&gt; prebuilt dashboard and &lt;a href=&quot;../docs/latest/exploration-and-organization/delete-and-restore&quot;&gt;archive unused content&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;We also use usage analytics to find dashboard questions that take a long time to load and refactor or &lt;a href=&quot;../docs/latest/configuring-metabase/caching&quot;&gt;cache results&lt;/a&gt;. To see this yourself, go to the &lt;strong&gt;Performance overview&lt;/strong&gt; prebuilt dashboard for a full overview of your slowest content.&lt;/p&gt;

&lt;h2 id=&quot;quickly-catch-changes-to-configurations-and-settings&quot;&gt;Quickly catch changes to configurations and settings&lt;/h2&gt;

&lt;p&gt;We track changes to configurations and settings, like that time someone changed the language of our instance from English to Brazilian Portuguese, or disabled Google single sign-on.&lt;/p&gt;

&lt;p&gt;To see changes to settings, you can go to the activity log model, and filter on &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;setting-update&lt;/code&gt;. You can continue to keep tabs on them without living in Metabase by setting up subscriptions or alerts if something changes.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;../images/posts/how-to-use-metabase-usage-analytics/setting-update-filter.png&quot; alt=&quot;Filtering on setting-update for the activity log model&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;monitor-who-has-access-to-and-is-downloading-your-data&quot;&gt;Monitor who has access to, and is downloading, your data&lt;/h2&gt;

&lt;p&gt;We use Metabase for compliance, auditing, and monitoring data security. It’s important to note that the definition of what we do can look very different compared to other organizations. How you use usage analytics in this situation can vary greatly depending on scale, industry, and the needs of your organization.&lt;/p&gt;

&lt;p&gt;For Metabase, we’re mainly focused on SOC2 Type 2 compliance. We want to know who has access to what, whether that access is really needed. If not, we change the account’s permissions, or deactivate the account entirely.&lt;/p&gt;

&lt;p&gt;For example, your IT team could use usage analytics when offboarding team members or restricting access by teams. Having an overview of data access available in Metabase helps us ensure that each person is mapped to the correct user group and has the right access levels and permissions.&lt;/p&gt;

&lt;p&gt;To view which groups a person belongs to, go to &lt;strong&gt;Person Overview&lt;/strong&gt; dashboard. You can filter on a person’s name, email, or user ID, looking specifically at date range, activity type, query source, and more. The dashboard includes details about the person, groups they belong to, how many questions and dashboard they’re viewing month over month, and what they’re looking at.&lt;/p&gt;

&lt;h3 id=&quot;audit-logs&quot;&gt;Audit logs&lt;/h3&gt;

&lt;p&gt;The Metabase analytics collection also comes with audit logs to help you understand who is downloading and accessing your data. For example, the UI only allows you to see up to 10k rows of data, but in audit logs you can see if someone downloaded 1M rows of data.&lt;/p&gt;

&lt;p&gt;Audit logs are a feature we’ve used as part of our incident recovery plan. For example, if someone sees or does something on accident, audit logs lets us know what happened so we can prevent it from happening again. We report on any kind of data breaches as they occur, so any data we have to investigate and provide context is helpful.&lt;/p&gt;

&lt;p&gt;To view audit logs, you can go to the Metabase analytics collection and click on any of the log models under Useful data. For example, you can view the Activity Log and click on any ID to see the audit log details.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;../images/posts/how-to-use-metabase-usage-analytics/audit-log.png&quot; alt=&quot;Audit logs in Metabase&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;play-around-with-metabase-usage-analytics&quot;&gt;Play around with Metabase usage analytics&lt;/h2&gt;

&lt;p&gt;You can get to Metabase usage analytics by clicking on “Metabase analytics” under your collections. Try out any of these use cases, or come up with your own workflow.&lt;/p&gt;

&lt;h2 id=&quot;more-metabase-usage-analytics-resources&quot;&gt;More Metabase usage analytics resources&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/blog/usage-analytics&quot;&gt;How data-driven is your org?&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/blog/metabase-housekeeping-with-usage-analytics&quot;&gt;Metabase housekeeping with usage analytics&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/blog/embedding-usage-analytics&quot;&gt;Keeping tabs on embedded analytics&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/events/metabase-usage-analytics&quot;&gt;Video: Metabase usage analytics — what happens inside your instance&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/docs/latest/usage-and-performance-tools/usage-analytics&quot;&gt;Usage analytics docs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Thu, 11 Jan 2024 09:10:18 +0000</pubDate>
        <link>https://www.metabase.com/blog/how-to-use-metabase-usage-analytics</link>
        <guid isPermaLink="true">https://www.metabase.com/blog/how-to-use-metabase-usage-analytics</guid>
        
        
        <category>Using</category>
        
        <category>Metabase</category>
        
      </item>
    
  </channel>
</rss>
