mozilla_vpn/dashboards/vpn_saasboard_revenue.dashboard.lookml (683 lines of code) (raw):

- dashboard: vpn_saasboard__revenue title: VPN SaaSboard - Revenue layout: newspaper preferred_viewer: dashboards-next crossfilter_enabled: true description: '' preferred_slug: PvDUYmlVKFey6B01C3uKZu elements: - title: Month Over Month Growth Rate name: Month Over Month Growth Rate model: mozilla_vpn explore: active_subscriptions type: looker_line fields: [active_subscriptions.active_month, active_subscriptions.count_sum, active_subscriptions.annual_recurring_revenue, active_subscriptions.monthly_recurring_revenue] fill_fields: [active_subscriptions.active_month] filters: active_subscriptions.is_end_of_month: 'Yes' sorts: [active_subscriptions.active_month] limit: 500 dynamic_fields: - category: table_calculation expression: "${active_subscriptions.count_sum} / offset(${active_subscriptions.count_sum},\ \ -1) -1" label: Active Subscriptions value_format: value_format_name: percent_1 _kind_hint: measure table_calculation: active_subscriptions _type_hint: number - category: table_calculation expression: "${active_subscriptions.annual_recurring_revenue} / offset(${active_subscriptions.annual_recurring_revenue},\ \ -1) -1" label: Annual Recurring Revenue value_format: value_format_name: percent_1 _kind_hint: measure table_calculation: annual_recurring_revenue_1 _type_hint: number - category: table_calculation expression: "${active_subscriptions.monthly_recurring_revenue} / offset(${active_subscriptions.monthly_recurring_revenue},\ \ -1) -1" label: Monthly Recurring Revenue value_format: value_format_name: percent_1 _kind_hint: measure table_calculation: monthly_recurring_revenue _type_hint: number x_axis_gridlines: false y_axis_gridlines: true show_view_names: false show_y_axis_labels: true show_y_axis_ticks: true y_axis_tick_density: default y_axis_tick_density_custom: 5 show_x_axis_label: true show_x_axis_ticks: true y_axis_scale_mode: linear x_axis_reversed: false y_axis_reversed: false plot_size_by_field: false trellis: '' stacking: '' limit_displayed_rows: false legend_position: center point_style: none show_value_labels: true label_density: 25 x_axis_scale: auto y_axis_combined: true show_null_points: false interpolation: linear y_axes: [{label: '', orientation: left, series: [{axisId: active_subscribers, id: active_subscribers, name: Active Subscribers}, {axisId: arr, id: arr, name: ARR}], showLabels: true, showValues: true, maxValue: 0.45, unpinAxis: false, tickDensity: default, tickDensityCustom: 5, type: linear}] x_axis_label: Month font_size: '' label_value_format: 0.0% series_colors: new_calculation: "#0060E0" active_subscribers: "#0060E0" arr: "#FF505F" active_subscriptions: "#0060E0" annual_recurring_revenue_1: "#ff3825" annual_recurring_revenue_chg: "#FF505F" active_subscriptions_chg: "#0060E0" x_axis_datetime_label: '' ordering: none show_null_labels: false show_totals_labels: false show_silhouette: false totals_color: "#808080" defaults_version: 1 hidden_fields: [active_subscriptions.count_sum, active_subscriptions.annual_recurring_revenue, active_subscriptions.monthly_recurring_revenue] listen: Provider: active_subscriptions.provider Pricing Plan: active_subscriptions.pricing_plan Country: active_subscriptions.country_name Active Date: active_subscriptions.active_date Plan Interval Type: active_subscriptions.plan_interval_type Plan ID: active_subscriptions.plan_id row: 33 col: 12 width: 12 height: 9 - name: '' type: text title_text: '' body_text: <img src="https://www.mozilla.org/media/img/logos/vpn/logo-with-wordmark.c1659f9e6dd6.svg" style="width:160px;height:50px;"> row: 2 col: 0 width: 3 height: 4 - name: " (2)" type: text title_text: '' body_text: "<p style='background-color: #ffffdd; padding: 5px 10px; border: solid\ \ 3px #ededed; border-radius: 5px; height:150px'>\n\nThis dashboard captures\ \ <strong>revenue</strong> for each active subscription. Note that revenue\ \ calculations in this dashboard do not follow the recognized revenue accounting\ \ method (eg. recognizing revenue for 6 month plans over 7 months.)\n<br>\n\ <br>\nRevenue from Apple Store is inflated because VAT rates and exchange rates\ \ were not considered.\n<br>\n<br>\n<br>\n<br>\nPlease submit any questions\ \ in <b><a href=\"https://mozilla.slack.com/messages/mozilla-vpn-data/\">mozilla-vpn-data</a></b>\ \ channel on Slack. \n\n</p>" row: 2 col: 3 width: 15 height: 4 - title: Annual Recurring Revenue (By Country) name: Annual Recurring Revenue (By Country) model: mozilla_vpn explore: active_subscriptions type: looker_column fields: [active_subscriptions.active_month, active_subscriptions.country_name, active_subscriptions.annual_recurring_revenue] pivots: [active_subscriptions.country_name] fill_fields: [active_subscriptions.active_month] filters: active_subscriptions.is_end_of_month: 'Yes' sorts: [active_subscriptions.active_month desc, active_subscriptions.country_name desc] limit: 500 x_axis_gridlines: false y_axis_gridlines: true show_view_names: false show_y_axis_labels: true show_y_axis_ticks: true y_axis_tick_density: default y_axis_tick_density_custom: 5 show_x_axis_label: true show_x_axis_ticks: true y_axis_scale_mode: linear x_axis_reversed: false y_axis_reversed: false plot_size_by_field: false trellis: '' stacking: normal limit_displayed_rows: false legend_position: center point_style: none show_value_labels: false label_density: 25 x_axis_scale: auto y_axis_combined: true ordering: desc show_null_labels: false show_totals_labels: true show_silhouette: false totals_color: "#808080" color_application: collection_id: legacy palette_id: looker_classic options: steps: 5 reverse: false y_axes: [{label: "$ in millions", orientation: left, series: [{axisId: sum_of_revenue, id: sum_of_revenue, name: Sum of Revenue}], showLabels: true, showValues: true, valueFormat: "$0.00,,", unpinAxis: false, tickDensity: default, tickDensityCustom: 5, type: linear}] x_axis_label: Month font_size: 13px label_value_format: "$0.00,," series_colors: USA - active_subscriptions.annual_recurring_revenue: "#347be3" x_axis_datetime_label: '' trend_lines: [] show_null_points: true interpolation: linear defaults_version: 1 note_state: collapsed note_display: hover note_text: Country is based on customer billing address. listen: Provider: active_subscriptions.provider Pricing Plan: active_subscriptions.pricing_plan Country: active_subscriptions.country_name Active Date: active_subscriptions.active_date Plan Interval Type: active_subscriptions.plan_interval_type Plan ID: active_subscriptions.plan_id row: 24 col: 0 width: 12 height: 9 - title: Annual Recurring Revenue (By Plan) name: Annual Recurring Revenue (By Plan) model: mozilla_vpn explore: active_subscriptions type: looker_column fields: [active_subscriptions.active_month, active_subscriptions.pricing_plan, active_subscriptions.annual_recurring_revenue] pivots: [active_subscriptions.pricing_plan] fill_fields: [active_subscriptions.active_month] filters: active_subscriptions.is_end_of_month: 'Yes' sorts: [active_subscriptions.active_month desc, active_subscriptions.pricing_plan] limit: 500 x_axis_gridlines: false y_axis_gridlines: true show_view_names: false show_y_axis_labels: true show_y_axis_ticks: true y_axis_tick_density: default y_axis_tick_density_custom: 5 show_x_axis_label: true show_x_axis_ticks: true y_axis_scale_mode: linear x_axis_reversed: false y_axis_reversed: false plot_size_by_field: false trellis: '' stacking: normal limit_displayed_rows: false legend_position: center point_style: none show_value_labels: false label_density: 25 x_axis_scale: auto y_axis_combined: true ordering: desc show_null_labels: false show_totals_labels: true show_silhouette: false totals_color: "#808080" color_application: collection_id: 80e60a97-c02b-4a41-aa05-83522ee2144b palette_id: 8b146fdb-43c2-42c2-a572-277b13e9ae5c options: steps: 5 y_axes: [{label: "$ in millions", orientation: left, series: [{axisId: sum_of_revenue, id: sum_of_revenue, name: Sum of Revenue}], showLabels: true, showValues: true, valueFormat: "$0.00,,", unpinAxis: false, tickDensity: default, tickDensityCustom: 5, type: linear}] x_axis_label: Month font_size: 13px label_value_format: "$0.00,," series_colors: 6-month-chf-47.94 - active_subscriptions.annual_recurring_revenue: "#82a6a8" 1-month-usd-4.99 - active_subscriptions.annual_recurring_revenue: "#7363A9" x_axis_datetime_label: '' trend_lines: [] show_null_points: true interpolation: linear defaults_version: 1 listen: Provider: active_subscriptions.provider Pricing Plan: active_subscriptions.pricing_plan Country: active_subscriptions.country_name Active Date: active_subscriptions.active_date Plan Interval Type: active_subscriptions.plan_interval_type Plan ID: active_subscriptions.plan_id row: 24 col: 12 width: 12 height: 9 - name: " (3)" type: text title_text: '' body_text: | <div style="border-radius: 5px; padding: 5px 10px; background: #412399; height: 60px; color: red;"> <nav style="font-size: 20px;"> <img style="color: #efefef; padding: 5px 25px; float: left; height: 40px;" src="https://wwwstatic.lookercdn.com/logos/looker_all_white.svg"/> <a style="color: #efefef; padding: 5px 25px; float: left; line-height: 40px;" href="https://mozilla.cloud.looker.com/dashboards/412"> Active Subs</a> <a style="color: #efefef; padding: 5px 25px; float: left; line-height: 40px;" href="https://mozilla.cloud.looker.com/dashboards/416"> Subs Growth</a> <a style="color: #efefef; padding: 5px 25px; float: left; line-height: 40px;" href="https://mozilla.cloud.looker.com/dashboards/414">Retention</a> <a style="color: #efefef; padding: 5px 25px; float: left; line-height: 40px;" href="https://mozilla.cloud.looker.com/dashboards/413">Churn</a> <a style="color: #efefef; border: 1px solid white; padding: 5px 25px; float: left; line-height: 40px; font-weight: bold; text-decoration: underline" href="https://mozilla.cloud.looker.com/dashboards/433">Revenue</a> <a style="color: #efefef; padding: 5px 25px; float: left; line-height: 40px;" href="https://docs.google.com/document/d/1VtrTwm8Eqt9cPLZLaH1kjnM413gKtdaZArS29xcxXpA/edit?usp=sharing">Docs</a> </nav> </div> row: 0 col: 0 width: 24 height: 2 - title: New Tile name: New Tile model: mozilla_vpn explore: active_subscriptions type: single_value fields: [metadata.last_modified_date] fill_fields: [metadata.last_modified_date] sorts: [metadata.last_modified_date desc] limit: 3 column_limit: 50 dynamic_fields: - category: table_calculation expression: add_days(-1, ${metadata.last_modified_date}) label: New Calculation value_format: value_format_name: _kind_hint: dimension table_calculation: new_calculation _type_hint: date custom_color_enabled: true show_single_value_title: true show_comparison: false comparison_type: value comparison_reverse_colors: false show_comparison_label: true enable_conditional_formatting: true conditional_formatting_include_totals: false conditional_formatting_include_nulls: false single_value_title: Data Last Updated conditional_formatting: [{type: not equal to, value: 0, background_color: "#cdbfff", font_color: !!null '', color_application: {collection_id: mozilla, palette_id: mozilla-sequential-0}, bold: false, italic: false, strikethrough: false, fields: !!null ''}] x_axis_gridlines: false y_axis_gridlines: true show_view_names: false show_y_axis_labels: true show_y_axis_ticks: true y_axis_tick_density: default y_axis_tick_density_custom: 5 show_x_axis_label: true show_x_axis_ticks: true y_axis_scale_mode: linear x_axis_reversed: false y_axis_reversed: false plot_size_by_field: false trellis: '' stacking: '' limit_displayed_rows: false legend_position: center point_style: none show_value_labels: false label_density: 25 x_axis_scale: auto y_axis_combined: true show_null_points: true interpolation: linear defaults_version: 1 note_state: collapsed note_display: below hidden_fields: [metadata.last_modified_date] listen: Plan ID: active_subscriptions.plan_id row: 2 col: 18 width: 6 height: 4 - title: Monthly Recurring Revenue (By Country) name: Monthly Recurring Revenue (By Country) model: mozilla_vpn explore: active_subscriptions type: looker_column fields: [active_subscriptions.active_month, active_subscriptions.country_name, active_subscriptions.monthly_recurring_revenue] pivots: [active_subscriptions.country_name] fill_fields: [active_subscriptions.active_month] filters: active_subscriptions.is_end_of_month: 'Yes' sorts: [active_subscriptions.active_month desc, active_subscriptions.country_name desc] limit: 500 x_axis_gridlines: false y_axis_gridlines: true show_view_names: false show_y_axis_labels: true show_y_axis_ticks: true y_axis_tick_density: default y_axis_tick_density_custom: 5 show_x_axis_label: true show_x_axis_ticks: true y_axis_scale_mode: linear x_axis_reversed: false y_axis_reversed: false plot_size_by_field: false trellis: '' stacking: normal limit_displayed_rows: false legend_position: center point_style: none show_value_labels: false label_density: 25 x_axis_scale: auto y_axis_combined: true ordering: desc show_null_labels: false show_totals_labels: true show_silhouette: false totals_color: "#808080" color_application: collection_id: legacy palette_id: looker_classic options: steps: 5 reverse: false y_axes: [{label: "$ in millions", orientation: left, series: [{axisId: sum_of_revenue, id: sum_of_revenue, name: Sum of Revenue}], showLabels: true, showValues: true, valueFormat: "$0.00,,", unpinAxis: false, tickDensity: default, tickDensityCustom: 5, type: linear}] x_axis_label: Month font_size: 13px label_value_format: "$0.00,," series_colors: USA - active_subscriptions.annual_recurring_revenue: "#347be3" x_axis_datetime_label: '' trend_lines: [] show_null_points: true interpolation: linear defaults_version: 1 note_state: collapsed note_display: hover note_text: Country is based on customer billing address. listen: Provider: active_subscriptions.provider Pricing Plan: active_subscriptions.pricing_plan Country: active_subscriptions.country_name Active Date: active_subscriptions.active_date Plan Interval Type: active_subscriptions.plan_interval_type Plan ID: active_subscriptions.plan_id row: 15 col: 0 width: 12 height: 9 - title: Monthly Recurring Revenue (By Plan) name: Monthly Recurring Revenue (By Plan) model: mozilla_vpn explore: active_subscriptions type: looker_column fields: [active_subscriptions.active_month, active_subscriptions.pricing_plan, active_subscriptions.monthly_recurring_revenue] pivots: [active_subscriptions.pricing_plan] fill_fields: [active_subscriptions.active_month] filters: active_subscriptions.is_end_of_month: 'Yes' sorts: [active_subscriptions.active_month desc, active_subscriptions.pricing_plan] limit: 500 x_axis_gridlines: false y_axis_gridlines: true show_view_names: false show_y_axis_labels: true show_y_axis_ticks: true y_axis_tick_density: default y_axis_tick_density_custom: 5 show_x_axis_label: true show_x_axis_ticks: true y_axis_scale_mode: linear x_axis_reversed: false y_axis_reversed: false plot_size_by_field: false trellis: '' stacking: normal limit_displayed_rows: false legend_position: center point_style: none show_value_labels: false label_density: 25 x_axis_scale: auto y_axis_combined: true ordering: desc show_null_labels: false show_totals_labels: true show_silhouette: false totals_color: "#808080" color_application: collection_id: 80e60a97-c02b-4a41-aa05-83522ee2144b palette_id: 8b146fdb-43c2-42c2-a572-277b13e9ae5c options: steps: 5 y_axes: [{label: "$ in millions", orientation: left, series: [{axisId: sum_of_revenue, id: sum_of_revenue, name: Sum of Revenue}], showLabels: true, showValues: true, valueFormat: "$0.00,,", unpinAxis: false, tickDensity: default, tickDensityCustom: 5, type: linear}] x_axis_label: Month font_size: 13px label_value_format: "$0.00,," series_colors: 6-month-chf-47.94 - active_subscriptions.annual_recurring_revenue: "#82a6a8" 1-month-usd-4.99 - active_subscriptions.annual_recurring_revenue: "#7363A9" x_axis_datetime_label: '' trend_lines: [] show_null_points: true interpolation: linear defaults_version: 1 listen: Provider: active_subscriptions.provider Pricing Plan: active_subscriptions.pricing_plan Country: active_subscriptions.country_name Active Date: active_subscriptions.active_date Plan Interval Type: active_subscriptions.plan_interval_type Plan ID: active_subscriptions.plan_id row: 15 col: 12 width: 12 height: 9 - title: Monthly Recurring Revenue and Average Revenue Per Unit name: Monthly Recurring Revenue and Average Revenue Per Unit model: mozilla_vpn explore: active_subscriptions type: looker_column fields: [active_subscriptions.active_month, active_subscriptions.monthly_recurring_revenue, active_subscriptions.count_sum] fill_fields: [active_subscriptions.active_month] filters: active_subscriptions.is_end_of_month: 'Yes' sorts: [active_subscriptions.active_month desc] limit: 500 column_limit: 50 dynamic_fields: - category: table_calculation expression: "${active_subscriptions.monthly_recurring_revenue}/${active_subscriptions.count_sum}" label: ARPU(MRR/EoM Active subs) value_format: value_format_name: decimal_1 _kind_hint: measure table_calculation: arpumrreom_active_subs _type_hint: number x_axis_gridlines: false y_axis_gridlines: true show_view_names: false show_y_axis_labels: true show_y_axis_ticks: true y_axis_tick_density: default y_axis_tick_density_custom: 5 show_x_axis_label: true show_x_axis_ticks: true y_axis_scale_mode: linear x_axis_reversed: false y_axis_reversed: false plot_size_by_field: false trellis: '' stacking: normal limit_displayed_rows: false legend_position: center point_style: circle show_value_labels: false label_density: 25 x_axis_scale: auto y_axis_combined: true ordering: desc show_null_labels: false show_totals_labels: true show_silhouette: false totals_color: "#808080" color_application: collection_id: legacy palette_id: looker_classic options: steps: 5 reverse: false y_axes: [{label: "$ in thousands", orientation: left, series: [{axisId: active_subscriptions.monthly_recurring_revenue, id: active_subscriptions.monthly_recurring_revenue, name: Monthly Recurring Revenue}], showLabels: true, showValues: true, valueFormat: '$#, "K"', unpinAxis: false, tickDensity: default, tickDensityCustom: 5, type: linear}, {label: ARPU in$, orientation: right, series: [{axisId: arpumrreom_active_subs, id: arpumrreom_active_subs, name: ARPU(MRR/EoM Active subs)}], showLabels: true, showValues: true, valueFormat: "$0.0", unpinAxis: false, tickDensity: default, tickDensityCustom: 5, type: linear}] x_axis_label: Month x_axis_zoom: true y_axis_zoom: true font_size: 13px label_value_format: $#, "K" series_types: arpumrreom_active_subs: line series_colors: USA - active_subscriptions.annual_recurring_revenue: "#347be3" x_axis_datetime_label: '' trend_lines: [] show_null_points: true interpolation: linear defaults_version: 1 note_state: collapsed note_display: hover note_text: Country is based on customer billing address. hidden_fields: [active_subscriptions.count_sum] listen: Provider: active_subscriptions.provider Pricing Plan: active_subscriptions.pricing_plan Country: active_subscriptions.country_name Active Date: active_subscriptions.active_date Plan Interval Type: active_subscriptions.plan_interval_type Plan ID: active_subscriptions.plan_id row: 6 col: 0 width: 24 height: 9 filters: - name: Provider title: Provider type: field_filter default_value: "-NULL" allow_multiple_values: true required: false ui_config: type: advanced display: popover model: mozilla_vpn explore: active_subscriptions listens_to_filters: [Plan Interval Type, Active Date, Country, Pricing Plan] field: active_subscriptions.provider - name: Pricing Plan title: Pricing Plan type: field_filter default_value: '' allow_multiple_values: true required: false ui_config: type: checkboxes display: popover model: mozilla_vpn explore: active_subscriptions listens_to_filters: [Plan Interval Type, Active Date, Country, Provider] field: active_subscriptions.pricing_plan - name: Country title: Country type: field_filter default_value: '' allow_multiple_values: true required: false ui_config: type: checkboxes display: popover model: mozilla_vpn explore: active_subscriptions listens_to_filters: [Plan Interval Type, Active Date, Pricing Plan, Provider] field: active_subscriptions.country_name - name: Active Date title: Active Date type: field_filter default_value: 6 month allow_multiple_values: true required: false ui_config: type: advanced display: popover options: [] model: mozilla_vpn explore: active_subscriptions listens_to_filters: [] field: active_subscriptions.active_date - name: Plan Interval Type title: Plan Interval Type type: field_filter default_value: '' allow_multiple_values: true required: false ui_config: type: checkboxes display: popover model: mozilla_vpn explore: active_subscriptions listens_to_filters: [Active Date, Country, Pricing Plan, Provider] field: active_subscriptions.plan_interval_type - name: Plan ID title: Plan ID type: field_filter default_value: -"price_1MzNRCJNcmPzuWtRMCwUWADu" allow_multiple_values: true required: false ui_config: type: advanced display: overflow model: mozilla_vpn explore: active_subscriptions listens_to_filters: [] field: active_subscriptions.plan_id