Custom Breakdowns

Custom breakdowns lets you group existing properties into meaningful segments on the fly. This is focused on enabling every person to answer common segmentation questions easily, quickly and in a low friction way.

Example use-cases include:

  • Compare how the core markets are performing between US vs UK vs China vs all others
  • Compare how many sign-ups are brought in by organic search vs google ads vs social media channels together (facebook, twitter, linkedin)
  • Compare # videos watched for users between ages 18-30 vs 30-40 or 40+
  • Compare # users based on duration of video watched: < 30, 30-60, 60-90 mins


Creating a Custom Breakdown

Add a property in Breakdown, then select the Custom Breakdown option from the overflow menu


Depending on your added property data type - string vs numeric, you will see a different custom breakdown modal, designed based on the data-type use-cases (more detail below)

Once you define your segments, click Apply. Only then will the custom breakdown reflect in the visualization. You will also see the custom breakdown as an under-item on the property


To modify the breakdown, click on the under-item and the custom breakdown model will open. Once you’ve made the changes, click Apply

To remove all grouping and revert to the default, open the custom breakdown modal and click Reset


String property Use Cases

Use Case: You want to compare # videos watched between core markets - North America, Europe & China

Current: You have a property “Country”

Goal: You want to group the countries into meaningful segments

  • Segment 1: North America: US & Canada
  • Segment 2: Europe: UK, Germany, France, Netherlands, Italy
  • Segment 3: China
  • Segment 4: Rest of the World (everything but those above)


  1. Add a breakdown - Country. Below is the default you’ll see

  2. Choose to customize breakdown, by opening the custom breakdown model and click Apply
    • For each segment, choose the operator “is” and select one or more values
    • “Rest of the World” is auto generated as remaining values
    • To note — if two segments have the same value, the first segment will consider the value. Custom breakdowns are non-overlapping and sum up to 100% by definition



You can also re-name these segments to make them meaningful to you

  1. On the same line of the segment, choose to rename it using the pencil icon
  2. Click Apply after creating and naming your segments as desired



Numeric property Use Cases

Use Case: You want to compare #users based on duration of video watched

Current: You have a property “watch time (mins)”

Goal: You want to distribute this in various ways

  • Use Case A: Evenly in 10 min groups for the range 50-100 mins
  • Use Case B: Specific groups <10, 10-20, 20-50, 50-100, ≥100
  • Use Case C: Want to see all the durations as-is (No grouping)


Deep Dive: Use Case A: Evenly in 10 min groups for the range 50-100 mins

  1. Add a breakdown - “watch time (mins)”
    • To note — every numeric property is auto-bucketed into even groups as the default

    • Here the default seems to be even buckets of 10 mins across the range

  2. Go to the overflow and open the custom breakdown modal
  3. Since looking for even buckets of “30 mins”, choose Even Grouping
  4. Modify the min and max values of the desired range, and the group size, and click apply
    • To note — both a lower end and upper end group will be auto-generated to ensure your breakdown always adds up to a 100%
    • Here these groups are <50 mins and ≥ 100 mins


Deep Dive: Use Case B: Specific groups <10, 10-20, 20-50, 50-100, ≥100

  1. Open the custom breakdown modal
  2. Since looking for specific groups with varied group sizes, choose Varied Grouping
  3. Enter the ‘group’ break point values in each row and click apply. You can preview the groups as you enter values in the line-item below
    • To note — both a lower end and upper end group will be auto-generated to ensure your breakdown always adds up to a 100%



Deep Dive: Use Case C: Want to see all the durations as-is (No grouping)

  1. Open the custom breakdown modal
  2. Since looking for “No grouping”, choose None — This lays out all the numeric property values as-is



Typecasting property Use Cases

Use Case: You want to identify #users of age 18 and age 60 since these are user ages where they change subscription plans (upgrade and downgrade respectively)

Current: You have a property age (years)

Goal: You want to group this in a meaningful way

  • Segment 1: Age 18 (potential to upgrade)
  • Segment 2: Age 60 (potential to downgrade)
  • Segment 3: Every other age


  1. Add a breakdown age(years). By default this will add as a numeric property
  2. Since you are looking for pin-pointed years and not creating number-ranges, this is a question more common to string property data type
  3. Change Data Type of age(years) to String. Once changed you will see the type-casted property type as an under-item
    • To note - only type-casted data types show as an under-item. If the data-type was the same as ingested, no under-item for data type will be seen
  4. Post changing data-type, open the custom modal breakdown. This will now open a modal meant for string property data type
  5. Follow steps as elaborated for String property use-case above, and achieve the goal


Frequently Asked Questions

  • Which all reports does Custom Breakdowns work on?

    This feature is available in the Insights, Funnels and Retention reports.

  • Which all property types does this support?

    Custom Breakdowns work on String and Numeric data type

  • Can I save a Custom Breakdown?

    No, you can’t save a custom breakdown. If your custom breakdown is something you or your team would like to re-use, we encourage you to instead create a custom property.

  • How is custom breakdown different from custom property?

    Custom breakdowns only supports the most common custom-property use-case of if else to create meaningful segments in a more simplistic UI, and a low lift way to enable quick ad-hoc exploration. You could get this same answer using custom property too, it would just be more effort and not as intuitive

  • Can I create over-lapping segments like (US & UK) vs (US & Australia)?

    No, breakdowns are fundamentally designed to sum up to 100%. To ensure your analysis is accurate, please create non-overlapping segments.

    If you really need to answer a question like this, the right way here is to create these as two metrics leveraging inline filters and NOT use breakdowns.


  • What happens if I change data-type, can I still use custom breakdowns?

    Yes you can as long as the data-type you’ve changed the property to is supported.

  • Understanding the details:

    • In Numeric: Can I change the operators on the upper and lower bound?

      No, the operators have been fixed. The lower bound is always strictly greater than (≥) and the upper bound is just lesser than(<)

      If you are looking for more control on the operators, please create a custom property.
    • In String: Is (not set) included in (remaining values)?

      No, (not set) is not included in remaining values

      • (remaining values): refers to ‘set’ values that just don’t fall into any of your defined segments
      • (not set) refers to the events where a property value has not been set at tracking/ ingestion. For example a new video (MixFun) is has been added. But during tracking, you forget to send the name of this video. So the count of this video is being tracked, but it’s being associated to a property value (not set) vs (MixFun)

      More details can be found in this help doc

    • In Numeric: What is the difference between (not set) and (non-numeric values)?

      • (not set) as explained above for string refers to property values that have not been associated to any specific property value
      • (non numeric values) refers to set values that have just been sent in as non-numeric data type. For example, you’re looking to track time spent and have coded that as a numeric property, but for some reason some values are tracked as “a”, or “b” which are not-numeric.
  • Some Common How-do-I(s)

    • How do i know is set, (not set)?

      (not set) is automatically computed and will always show up in the UI. You don’t have to select (not set) as a segment to know how many events fall in there. So only figure how would you like to segment your (set) values.


    • How do I get not contains or not equal to?

      These will auto-generate under (remaining values). So just select what should be included

      For example — In the below (remaining values) is not equal to US or India


    • In number — how do i get a bucket of just 0?

      If you’re purely looking for just how many people have value “0”, we would encourage you to typecast this to a string property and get that.

      If you’re looking to get the count of 0, in reference to the other numeric buckets, go ahead and create a Varied Grouping custom breakdown modal

      • If the numeric values are integers:
        • Choose Varied group values 0, 1, 2…
        • This would generate segments: <0, ≥0 & <1, ≥1 & <2, ≥2.
        • ≥0 & <1 would be equal to bucket 0
      • If the numeric values are decimals:
        • Choose Varied group values 0, 0.0001, 1, …
        • This would generate segments: <0, ≥0 & <0.0001, ≥0.0001 & <1, ≥1.
        • ≥0 & <0.0001 would approximate to bucket 0
Did this answer your question?



Article is closed for comments.