########################################################
#
# Author: hillz@
# Updated Date: Oct 6, 2021 Def.
# Fields related to "Revenue" from the revenue table
# Meant to be extended into the revenue view
# Primary key will be in the primary (revenue) view
#
########################################################

view: revenue_from_revenue {

  extension: required

  ########## DIMENSIONS ############

  dimension: currency_code {
    view_label: "Revenue"
    description: "Three letter currency code (e.g. USD) for local billing amount."
    sql: ${TABLE}.currency_code ;;
  }

  dimension: dynamic_usage_timeframe {
    view_label: "Revenue"
    description: "Dynamic field that is returns usage date, dependent on `Usage Timeframe Selector`. If none selected, defaults to daily."
    type: date
    sql: CASE
          WHEN {% parameter usage_timeframe_selector %} = 'Date' THEN SAFE_CAST(${usage_date} AS STRING)
          WHEN {% parameter usage_timeframe_selector %} = 'Week' THEN ${usage_week}
          WHEN {% parameter usage_timeframe_selector %} = 'Month' THEN CONCAT(${usage_month},"-01")
         END ;;
  }

  dimension: gcp_revenue_source {
    view_label: "Revenue"
    label: "GCP Revenue Source"
    description: "Used by the Northam team to filter revenue.  Values can be Organic GCP (all products except for Marketplace Services), MP Standard (Marketplace Services that aren't pre-paid), or MP Prepay (Marketplace Services that are prepaid)."
    case: {
      when: {
        sql: ${product_group} != "Non-Cloud" ;;
        label: "Organic GCP"
      }
      when: {
        sql: ${product_group} = "Non-Cloud" AND NOT ${is_nonmetered} ;;
        label: "MP Standard"
      }
      when: {
        sql: ${product_group} = "Non-Cloud" AND ${is_nonmetered} ;;
        label: "MP Prepaid"
      }
      else: "Other Revenue"
    }
  }

  dimension_group: invoice_month_start {
    type: time
    timeframes: [raw, date, week, month, quarter, year]
    view_label: "Revenue"
    sql: ${TABLE}.invoice_month_start ;;
    datatype: date
    convert_tz: no
  }

  dimension: is_data_analytics {
    type: yesno
    label: "Is Data Analytics?"
    view_label: "Product"
    sql: ${revenue.product_group_l2} = 'Analytics'
          OR ${revenue.is_dataproc}
          OR ${revenue.logical_product_l3} IN ('AI Platform', 'Confluent', 'Confluent Dev',
          'Confluent Staging', 'Databricks', 'Elastic', 'Elastic - Dev', 'Fivetran',
          'Informatica', 'MongoDB Inc.', 'Palantir') ;;
    description: "Returns yes if this is Data & Analytics (DA) usage"
  }

  dimension: is_dataproc {
    type: yesno
    label: "Is Dataproc Node?"
    view_label: "Product"
    sql: ${TABLE}.is_dataproc_node ;;
    description: "Does this usage come from a Dataproc node?"
  }

  dimension: is_gcp_marketplace {
    type: yesno
    label: "Is GCP Marketplace?"
    view_label: "Product"
    sql: ${TABLE}.is_gcp_marketplace ;;
  }

  dimension: is_gke_node {
    type: yesno
    label: "Is GKE Node?"
    view_label: "Product"
    sql: ${TABLE}.is_gke_node ;;
    description: "Does this usage come from a GKE node?"
  }

  dimension: product_family_l1 {
    label: "Product Family (L1)"
    group_label: "Finance Product Hierarchy"
    view_label: "Product"
    description: "Examples: Google Workspace, GCP, Maps, PSO"
    sql: ${TABLE}.product_group ;;
    drill_fields: [product_group_l2]
  }

  dimension: product_group_l2 {
    label: "Product Group (L2)"
    group_label: "Finance Product Hierarchy"
    view_label: "Product"
    description: "Examples: Marketplace Services, Compute, Support, Databases, etc."
    sql: ${TABLE}.product_group_l2 ;;
    drill_fields: [logical_product_l3]
  }

  dimension: logical_product_l3 {
    label: "Logical Product (L3)"
    group_label: "Finance Product Hierarchy"
    view_label: "Product"
    description: "Examples: Persistent Disk, VM Image Storage, GCE"
    sql: ${TABLE}.logical_product_l3 ;;
  }


  dimension: machine_type {
    view_label: "Product"
    description: "Machine Type Classifications for Compute Engine"
    sql: IF(${product_line_raw} = "Compute Engine", CASE
        WHEN ${is_gke_node} THEN "GKE"
        WHEN ${is_dataproc} THEN "Dataproc"
        WHEN ${sku_description} LIKE '%A2 %' THEN 'A2'
        WHEN ${sku_description} LIKE '%E2 %' THEN 'E2'
        WHEN ${sku_description} LIKE '%Memory%optimized%' THEN 'M1/M2'
        WHEN ${sku_description} LIKE '%N2 %' THEN 'N2'
        WHEN ${sku_description} LIKE '%N2D%' THEN 'N2D'
        WHEN ${sku_description} LIKE '%Compute%optimized%' THEN 'C2'
        WHEN LOWER(${sku_description}) LIKE '%custom%ram%' OR ${sku_description} LIKE '%Custom%Core%' OR ${sku_description} LIKE '%N1 %' OR ${sku_description} LIKE '%v1: Cpu%' OR ${sku_description} LIKE '%v1: Ram%' OR ${sku_description} LIKE '%Instance Ram hosted on Sole Tenancy%' OR ${sku_description} LIKE '%Sole Tenancy Instance RAM%' OR ${sku_description} LIKE '%Sole Tenancy Instance Ram%' OR ${sku_description} LIKE '%Instance Core hosted on Sole Tenancy%' OR ${sku_description} LIKE '%Sole Tenancy Instance Core%' OR ${sku_description} LIKE 'Micro Instance%' OR ${sku_description} LIKE 'Preemptible Micro Instance%' OR ${sku_description} LIKE '%Small Instance%' THEN "N1"
        ELSE "Other Machine Type"
      END, NULL) ;;
    drill_fields: [sku_description]
  }

  dimension: product_group {
    group_label: "Legacy Product Hierarchy"
    view_label: "Product"
    description: "Groupings of Product Line into broader categories like \"Compute\" or \"Data Analytics\""
    sql: ${TABLE}.product_group ;;
    drill_fields: [product_line]
  }

  dimension: product_line {
    group_label: "Legacy Product Hierarchy"
    view_label: "Product"
    description: "Product Line, but with is_gke_node = True reassigned to Kubernetes Engine and is_dataproc = True reassigned to Dataproc"
    sql: IF(${product_line_raw} = "Compute Engine",
          CASE
            WHEN ${is_gke_node} THEN "Kubernetes Engine"
            WHEN ${is_dataproc} THEN "Dataproc"
            ELSE "Compute Engine"
          END,
          ${product_line_raw});;
    drill_fields: [sku_description, ]
  }

  dimension: product_line_raw {
    hidden: yes
    group_label: "Legacy Product Hierarchy"
    view_label: "Product"
    sql: {% if project_number._in_query %} ${TABLE}.product_name
         {% elsif project_name._in_query %} ${TABLE}.product_name
         {% elsif project_id._in_query %} ${TABLE}.product_name
         {% elsif sku_id._in_query %} ${TABLE}.product_name
         {% elsif sku_description._in_query %} ${TABLE}.product_name
         {% elsif machine_type._in_query %} ${TABLE}.product_name
         {% elsif resource_group._in_query %} ${TABLE}.product_name
         {% elsif storage_locality._in_query %} ${TABLE}.product_name
         {% elsif storage_class._in_query %} ${TABLE}.product_name
         {% elsif usage_location._in_query %} ${TABLE}.product_name
         {% elsif usage_unit._in_query %} ${TABLE}.product_name
         {% elsif usage_in_usage_units._in_query %} ${TABLE}.product_name
         {% else %} ${TABLE}.product_line {% endif %} ;;
    drill_fields: [sku_description]
  }

  dimension: product_specialization {
    view_label: "Product"
    sql: {% if project_number._in_query %} ${TABLE}.specialization
         {% elsif project_name._in_query %} ${TABLE}.specialization
         {% elsif project_id._in_query %} ${TABLE}.specialization
         {% elsif sku_id._in_query %} ${TABLE}.specialization
         {% elsif sku_description._in_query %} ${TABLE}.specialization
         {% elsif machine_type._in_query %} ${TABLE}.specialization
         {% elsif resource_group._in_query %} ${TABLE}.specialization
         {% elsif storage_locality._in_query %} ${TABLE}.specialization
         {% elsif storage_class._in_query %} ${TABLE}.specialization
         {% elsif usage_location._in_query %} ${TABLE}.specialization
         {% elsif usage_unit._in_query %} ${TABLE}.specialization
         {% elsif usage_in_usage_units._in_query %} ${TABLE}.specialization
         {% else %} ${TABLE}.product_specialization {% endif %} ;;
    drill_fields: [sku_description]
  }

  dimension: service_family {
    view_label: "Product"
    description: "Service family, i.e. CLOUD or GEO"
    type: string
    sql: ${TABLE}.service_family ;;
  }

  dimension: storage_class {
    view_label: "Product"
    group_label: "Cloud Storage"
    description: "Groups Cloud Storage into Archive, Coldline, Nearline, and Standard based on sku description."
    case: {
      when: {
        sql: ${product_line_raw} = "Cloud Storage" AND ${sku_description} LIKE '%Archive%' ;;
        label: "Archive"
      }
      when: {
        sql: ${product_line_raw} = "Cloud Storage" AND ${sku_description} LIKE '%Coldline%' ;;
        label: "Coldline"
      }
      when: {
        sql: ${product_line_raw} = "Cloud Storage" AND ${sku_description} LIKE '%Nearline%' ;;
        label: "Nearline"
      }
      when: {
        sql: ${product_line_raw} = "Cloud Storage" ;;
        label: "Standard"
      }
    }
  }

  dimension: storage_locality {
    view_label: "Product"
    group_label: "Cloud Storage"
    description: "Groups Cloud Storage into Multi-Region, Dual-Region, or Regional based on sku description."
    case: {
      when: {
        sql: ${product_line_raw} = "Cloud Storage" AND ${sku_description} LIKE '%Multi%' ;;
        label: "Multi-Region"
      }
      when: {
        sql: ${product_line_raw} = "Cloud Storage" AND ${sku_description} LIKE '%Dual%' ;;
        label: "Dual-Region"
      }
      when: {
        sql: ${product_line_raw} = "Cloud Storage" ;;
        label: "Regional"
      }
    }
  }


  dimension_group: usage {
    type: time
    timeframes: [raw, day_of_month, day_of_year, day_of_week, date, week, month, month_name, quarter, quarter_of_year, year]
    view_label: "Revenue"
    description: "Date on which usage was recorded"
    sql: ${TABLE}.partition_date ;;
    datatype: date
    convert_tz: no
  }

  dimension: usd_revenue_blended {
    hidden: yes
    view_label: "Revenue"
    sql: {% if filter_nonmetered._parameter_value == "true" %}
      IF(NOT ${is_nonmetered}, ${TABLE}.usd_revenue_blended, 0)
      {% else %}
      ${TABLE}.usd_revenue_blended
      {% endif %}
      ;;
  }

  dimension: usd_revenue_bmod {
    hidden: yes
    view_label: "Revenue"
    sql: ${TABLE}.usd_revenue_bmod ;;
  }

  dimension: usd_revenue_sales {
    hidden: yes
    view_label: "Revenue"
    sql: ${TABLE}.usd_revenue_metrics.sales_revenue.sales_revenue ;;
  }

  dimension: usd_revenue_invoice {
    hidden: yes
    view_label: "Revenue"
    sql: ${TABLE}.usd_revenue_metrics.invoice_revenue.invoice_revenue ;;
  }

  dimension: usd_revenue_cross_pa_credits {
    hidden: yes
    description: "Added to usd_revenue_net_cn to create GCP Actuals"
    sql: ${TABLE}.usd_revenue_cross_pa_credits ;;
  }

  dimension: usd_revenue_cud {
    hidden: yes
    view_label: "Revenue"
    description: "Committed Usage Discount credits applied against the _gross amount, reported in USD($) using a monthly Ceilometer exchange rate."
    sql: ${TABLE}.usd_revenue_cud ;;
  }

  dimension: usd_revenue_ft {
    hidden: yes
    view_label: "Revenue"
    description: "Free Trial credit applied against the _gross amount, reported in USD($) using a monthly Ceilometer exchange rate."
    sql: ${TABLE}.usd_revenue_ft ;;
  }

  dimension: usd_revenue_gross {
    hidden: yes
    view_label: "Revenue"
    description: "Monetised value for resource consumption, before application of any credits, reported in USD($) using a monthly Ceilometer exchange rate. (Generally a positive number)"
    sql: ${TABLE}.usd_revenue_gross ;;
  }

  dimension: usd_revenue_gross_cn {
    hidden: yes
    view_label: "Revenue"
    sql: ${TABLE}.usd_revenue_gross_cn ;;
  }

  dimension: usd_revenue_list {
    hidden: yes
    view_label: "Revenue"
    sql: ${TABLE}.usd_revenue_list ;;
  }

  dimension: usd_revenue_net {
    hidden: yes
    view_label: "Revenue"
    description: "Final billed amounts after application of all other credits, reported in USD($) using an annual exchange rate. (Net amounts are normally positive or round to zero, but it some cases credits can exceed gross and net will be negative)"
    sql: ${TABLE}.usd_revenue_net ;;
  }

  dimension: usd_revenue_ntg {
    hidden: yes
    view_label: "Revenue"
    description: "Net to Google Revenue"
    sql: ${TABLE}.usd_revenue_ntg ;;
  }

  dimension: usd_revenue_net_cn {
    hidden: yes
    view_label: "Revenue"
    sql: {% if filter_nonmetered._parameter_value == "true" %}
      IF(NOT ${is_nonmetered}, ${TABLE}.usd_revenue_net_cn, 0)
      {% else %}
      ${TABLE}.usd_revenue_net_cn
      {% endif %}
      ;;
  }

  dimension: usd_revenue_promo {
    hidden: yes
    view_label: "Revenue"
    description: "Other promotional credits applied against the _gross amount, reported in USD($) using a monthly Ceilometer exchange rate."
    sql: ${TABLE}.usd_revenue_promo ;;
  }

  dimension: usd_revenue_protected_credit {
    hidden: yes
    view_label: "Revenue"
    sql: ${TABLE}.usd_revenue_protected_credit ;;
  }

  dimension: usd_revenue_reseller {
    hidden: yes
    view_label: "Revenue"
    sql: ${TABLE}.usd_revenue_reseller ;;
  }

  dimension: usd_revenue_sud {
    hidden: yes
    view_label: "Revenue"
    description: " Usage Discount credits applied against the _gross amount, reported in USD($) using a monthly Ceilometer exchange rate."
    sql: ${TABLE}.usd_revenue_sud ;;
  }

  dimension: is_nonmetered {
    type: yesno
    label: "Is Nonmetered?"
    view_label: "Product"
    sql: ${TABLE}.is_nonmetered ;;
  }

  ## Metric Components

  # Invoice Revenue

  dimension: usd_invoice_revenue_components_gross {
    hidden:  yes
    view_label: "Revenue"
    group_label: "Invoice Revenue Components"
    description: "Gross Revenue component of Invoice Revenue calculation."
    sql: ${TABLE}.usd_revenue_metrics.invoice_revenue.components.revenue_gross ;;
  }

  dimension: usd_invoice_revenue_components_sud {
    hidden:  yes
    view_label: "Revenue"
    group_label: "Invoice Revenue Components"
    description: "SUD component of Invoice Revenue calculation."
    sql: ${TABLE}.usd_revenue_metrics.invoice_revenue.components.revenue_sud ;;
  }

  dimension: usd_invoice_revenue_components_cud {
    hidden:  yes
    view_label: "Revenue"
    group_label: "Invoice Revenue Components"
    description: "CUD component of Invoice Revenue calculation."
    sql: ${TABLE}.usd_revenue_metrics.invoice_revenue.components.revenue_cud ;;
  }

  dimension: usd_invoice_revenue_components_ft {
    hidden:  yes
    view_label: "Revenue"
    group_label: "Invoice Revenue Components"
    description: "FT component of Invoice Revenue calculation."
    sql: ${TABLE}.usd_revenue_metrics.invoice_revenue.components.revenue_ft ;;
  }

  dimension: usd_invoice_revenue_components_promo {
    hidden:  yes
    view_label: "Revenue"
    group_label: "Invoice Revenue Components"
    description: "Promo component of Invoice Revenue calculation."
    sql: ${TABLE}.usd_revenue_metrics.invoice_revenue.components.revenue_promo ;;
  }

  dimension: usd_invoice_revenue_components_reseller_credit {
    hidden:  yes
    view_label: "Revenue"
    group_label: "Invoice Revenue Components"
    description: "Reseller Credit component of Invoice Revenue calculation."
    sql: ${TABLE}.usd_revenue_metrics.invoice_revenue.components.revenue_reseller_credit ;;
  }

  dimension: usd_invoice_revenue_components_cross_pa_credits_addback {
    hidden:  yes
    view_label: "Revenue"
    group_label: "Invoice Revenue Components"
    description: "xPA component of Invoice Revenue calculation."
    sql: ${TABLE}.usd_revenue_metrics.invoice_revenue.components.cross_pa_credits_addback ;;
  }

## Metric Components

# Sales Revenue

  dimension: usd_sales_revenue_components_gross {
    hidden:  yes
    view_label: "Revenue"
    group_label: "Sales Revenue Components"
    description: "Gross Revenue component of Sales Revenue calculation."
    sql: ${TABLE}.usd_revenue_metrics.sales_revenue.components.revenue_gross ;;
  }

  dimension: usd_sales_revenue_components_sud {
    hidden:  yes
    view_label: "Revenue"
    group_label: "Sales Revenue Components"
    description: "SUD component of Sales Revenue calculation."
    sql: ${TABLE}.usd_revenue_metrics.sales_revenue.components.revenue_sud ;;
  }

  dimension: usd_sales_revenue_components_cud {
    hidden:  yes
    view_label: "Revenue"
    group_label: "Sales Revenue Components"
    description: "CUD component of Sales Revenue calculation."
    sql: ${TABLE}.usd_revenue_metrics.sales_revenue.components.revenue_cud ;;
  }

  dimension: usd_sales_revenue_components_ft {
    hidden:  yes
    view_label: "Revenue"
    group_label: "Sales Revenue Components"
    description: "FT component of Sales Revenue calculation."
    sql: ${TABLE}.usd_revenue_metrics.sales_revenue.components.revenue_ft ;;
  }

  dimension: usd_sales_revenue_components_promo {
    hidden:  yes
    view_label: "Revenue"
    group_label: "Sales Revenue Components"
    description: "Promo component of Sales Revenue calculation."
    sql: ${TABLE}.usd_revenue_metrics.sales_revenue.components.revenue_promo ;;
  }

  dimension: usd_sales_revenue_components_reseller_credit {
    hidden:  yes
    view_label: "Revenue"
    group_label: "Sales Revenue Components"
    description: "Reseller Credit component of Sales Revenue calculation."
    sql: ${TABLE}.usd_revenue_metrics.sales_revenue.components.revenue_reseller_credit ;;
  }

  dimension: usd_sales_revenue_components_cross_pa_credits_addback {
    hidden:  yes
    view_label: "Revenue"
    group_label: "Sales Revenue Components"
    description: "xPA component of Sales Revenue calculation."
    sql: ${TABLE}.usd_revenue_metrics.sales_revenue.components.cross_pa_credits_addback ;;
  }

  dimension: usd_sales_revenue_components_partner_margin_addback {
    hidden:  yes
    view_label: "Revenue"
    group_label: "Sales Revenue Components"
    description: "Partner Margin addback component of Sales Revenue calculation."
    sql: ${TABLE}.usd_revenue_metrics.sales_revenue.components.partner_margin_addback ;;
  }


  dimension: usd_sales_revenue_components_isv_tier {
    hidden:  no
    label: "ISV Tier"
    view_label: "Revenue"
    group_label: "Sales Revenue Components"
    description: "ISV tier used to calculate marketplace tier adjustment in Sales Revenue calculation."
    sql: ${TABLE}.usd_revenue_metrics.sales_revenue.components.isv_tier ;;
  }

  dimension: usd_sales_revenue_components_isv_deduction {
    hidden:  yes
    view_label: "Revenue"
    group_label: "Sales Revenue Components"
    description: "Marketplace ISV deduction in Sales Revenue calculation."
    sql: ${TABLE}.usd_revenue_metrics.sales_revenue.components.isv_deduction ;;
  }


  #### MEASURES ####
  measure: revenue_invoice {
    alias: [revenue_actuals]
    label: "Revenue (Invoice)"
    view_label: "Revenue"
    description: "Invoice Revenue, aligned with go/revenue-walk."
    type: sum
    sql: ${usd_revenue_invoice};;
    value_format_name: usd_0
    drill_fields: [reporting_account_name, billing_account_id, revenue_invoice, revenue_net_cn]
    link: {
      url: "{{ link | replace: \"revenue.reporting_account_name,revenue.billing_account_id\", \"revenue.product_line\" }}&limit=10"
      label: "Top 10 Product Lines"
      icon_url: "https://g3doc.corp.google.com/company/teams/concord/portal/images/logo-concord-no-text.png"
    }
    link: {
      url: "
      {% assign column_name = \"\" | append: _view._name | append: \".billing_account_id\" %}
      {{ link | replace: column_name, \"=\" }}&limit=10&sorts={{ _field._name }}+desc
      "
      label: "Top 10 Accounts"
      icon_url: "https://g3doc.corp.google.com/company/teams/concord/portal/images/logo-concord-no-text.png"
    }
    link: {
      url: "
      {% assign column_name = \"=\" | append: _view._name | append: \".reporting_account_name,\" | append: _view._name | append: \".billing_account_id\" %}
      {{ link | replace: column_name, \"=revenue.segment\" }}&limit=10&sorts={{ _field._name }}+desc
      "
      label: "Drill by Segment"
      icon_url: "https://g3doc.corp.google.com/company/teams/concord/portal/images/logo-concord-no-text.png"
    }
    link: {
      url: "
      {% assign column_name = \"=\" | append: _view._name | append: \".reporting_account_name,\" | append: _view._name | append: \".billing_account_id\" %}
      {{ link | replace: column_name, \"=vector_customers.is_digital_native\" }}&limit=10&sorts={{ _field._name }}+desc
      "
      label: "Drill by Account Category"
      icon_url: "https://g3doc.corp.google.com/company/teams/concord/portal/images/logo-concord-no-text.png"
    }
    link: {
      url: "
      {% assign column_name = \"=\" | append: _view._name | append: \".reporting_account_name,\" | append: _view._name | append: \".billing_account_id\" %}
      {{ link | replace: column_name, \"=revenue.region\" }}&limit=10&sorts={{ _field._name }}+desc
      "
      label: "Drill by Region"
      icon_url: "https://g3doc.corp.google.com/company/teams/concord/portal/images/logo-concord-no-text.png"
    }
    link: {
      url: "
      {% assign column_name = \"=\" | append: _view._name | append: \".reporting_account_name,\" | append: _view._name | append: \".billing_account_id\" %}
      {{ link | replace: column_name, \"=revenue.region,revenue.sub_region,revenue.micro_region,revenue.nal_cluster,revenue.nal_name,revenue.nal_id\" }}&sorts={{ _field._name }}+desc
      "
      label: "Drill by NAL"
      icon_url: "https://g3doc.corp.google.com/company/teams/concord/portal/images/logo-concord-no-text.png"
    }
    link: {
      url: "{{ link | replace: \"revenue.reporting_account_name,revenue.billing_account_id\", \"revenue.product_group\" }}"
      label: "Drill by Product Group"
      icon_url: "https://g3doc.corp.google.com/company/teams/concord/portal/images/logo-concord-no-text.png"
    }
    # Reference: https://community.looker.com/lookml-5/conditional-formatting-using-value-format-926
    # html: @{custom_dollar_formatting} ;;
  }

  measure: revenue_bmod {
    group_label: "Discounts, Credits & BMODS"
    label: "Revenue (Billing Modifications)"
    view_label: "Revenue"
    description: "The subset of revenue that is due to a billing modification. Billing Modifications (BMods) are requested when an adjustment affecting the regular invoicing process needs to be made."
    type: sum
    sql: ${usd_revenue_bmod};;
    value_format_name: usd_0
    drill_fields: [billing_account_id, usd_revenue_bmod, revenue_gross, revenue_net_cn]
    # Reference: https://community.looker.com/lookml-5/conditional-formatting-using-value-format-926
    # html: @{custom_dollar_formatting} ;;
  }

  measure: revenue_cross_pa_credits {
    group_label: "Discounts, Credits & BMODS"
    label: "Revenue (xPA Credits)"
    view_label: "Revenue"
    description: "Cross PA Credits."
    type: sum
    sql: ${usd_revenue_cross_pa_credits};;
    value_format_name: usd_0
    drill_fields: [billing_account_id, revenue_cross_pa_credits, revenue_gross, revenue_net_cn]
    # Reference: https://community.looker.com/lookml-5/conditional-formatting-using-value-format-926
    # html: @{custom_dollar_formatting} ;;
  }

  measure: revenue_cud {
    group_label: "Discounts, Credits & BMODS"
    label: "Revenue (Committed Usage Discount)"
    view_label: "Revenue"
    description: "Committed Usage Discount credits applied against the Gross amount."
    type: sum
    sql: ${usd_revenue_cud};;
    value_format_name: usd_0
    drill_fields: [billing_account_id, revenue_cud, revenue_gross, revenue_net_cn]
    # Reference: https://community.looker.com/lookml-5/conditional-formatting-using-value-format-926
    # html: @{custom_dollar_formatting} ;;
  }

  measure: revenue_discounts_other {
    group_label: "Discounts, Credits & BMODS"
    label: "Revenue (Other Discounts)"
    view_label: "Revenue"
    description: "Differences between Gross and Revenue (Sales) not due to BMods, CUD, SUD, Free Trial, or Promo, Cross PA Credits."
    type: sum
    sql: -1 * (${usd_revenue_gross} - ${usd_revenue_blended} + ${usd_revenue_cud} + ${usd_revenue_ft} + ${usd_revenue_promo} + ${usd_revenue_sud} +${usd_revenue_reseller}) ;;
    value_format_name: usd_0
    drill_fields: [reporting_account_name
      , billing_account_id
      , revenue_discounts_other
      , revenue_gross
      , revenue_net_cn
    ]
    # Reference: https://community.looker.com/lookml-5/conditional-formatting-using-value-format-926
    #html: @{custom_dollar_formatting} ;;
  }

  measure: revenue_ft {
    group_label: "Discounts, Credits & BMODS"
    label: "Revenue (Free Trial)"
    view_label: "Revenue"
    description: "Free Trial credit applied against the Gross amount."
    type: sum
    sql: ${usd_revenue_ft};;
    value_format_name: usd_0
    drill_fields: [billing_account_id, revenue_ft, revenue_gross, revenue_net_cn]
    # Reference: https://community.looker.com/lookml-5/conditional-formatting-using-value-format-926
    # html: @{custom_dollar_formatting} ;;
  }

  measure: revenue_gross {
    label: "Revenue (Gross)"
    view_label: "Revenue"
    description: "Monetised values for resource consumption, before application of credits (adjustments). Gross values are generally positive."
    type: sum
    sql: ${usd_revenue_gross};;
    value_format_name: usd_0
    drill_fields: [billing_account_id, revenue_gross, revenue_net_cn]
    # Reference: https://community.looker.com/lookml-5/conditional-formatting-using-value-format-926
    # html: @{custom_dollar_formatting} ;;
    link: {
      url: "{{ link | replace: \"billing_account_id\", \"product_line\" }}&limit=10"
      label: "Top 10 Product Lines"
      icon_url: "https://g3doc.corp.google.com/company/teams/concord/portal/images/logo-concord-no-text.png"
    }
    link: {
      url: "
      {% assign column_name = \"=\" | append: _view._name | append: \".billing_account_id\" %}
      {{ link | replace: column_name, \"=revenue.nal_name,revenue.reporting_account_name\" }}&limit=10&sorts={{ _field._name }}+desc
      "
      label: "Top 10 Accounts"
      icon_url: "https://g3doc.corp.google.com/company/teams/concord/portal/images/logo-concord-no-text.png"
    }
    link: {
      url: "
      {% assign column_name = \"=\" | append: _view._name | append: \".billing_account_id\" %}
      {{ link | replace: column_name, \"=revenue.segment\" }}&limit=10&sorts={{ _field._name }}+desc
      "
      label: "Drill by Segment"
      icon_url: "https://g3doc.corp.google.com/company/teams/concord/portal/images/logo-concord-no-text.png"
    }
    link: {
      url: "
      {% assign column_name = \"=\" | append: _view._name | append: \".billing_account_id\" %}
      {{ link | replace: column_name, \"=revenue.account_category\" }}&limit=10&sorts={{ _field._name }}+desc
      "
      label: "Drill by Account Category"
      icon_url: "https://g3doc.corp.google.com/company/teams/concord/portal/images/logo-concord-no-text.png"
    }
    link: {
      url: "
      {% assign column_name = \"=\" | append: _view._name | append: \".billing_account_id\" %}
      {{ link | replace: column_name, \"=revenue.region\" }}&limit=10&sorts={{ _field._name }}+desc
      "
      label: "Drill by Region"
      icon_url: "https://g3doc.corp.google.com/company/teams/concord/portal/images/logo-concord-no-text.png"
    }
    link: {
      url: "
      {% assign column_name = \"=\" | append: _view._name | append: \".billing_account_id\" %}
      {{ link | replace: column_name, \"=revenue.region,revenue.sub_region,revenue.micro_region,revenue.nal_cluster,revenue.nal_name,revenue.nal_id\" }}&sorts={{ _field._name }}+desc
      "
      label: "Drill by NAL"
      icon_url: "https://g3doc.corp.google.com/company/teams/concord/portal/images/logo-concord-no-text.png"
    }
    link: {
      url: "{{ link | replace: \"billing_account_id\", \"product_group\" }}"
      label: "Drill by Product Group"
      icon_url: "https://g3doc.corp.google.com/company/teams/concord/portal/images/logo-concord-no-text.png"
    }
  }

  measure: revenue_list {
    label: "[go/listrev] Revenue (List)"
    view_label: "Revenue"
    description: "Learn more at go/listrev. Amount of monetized usage calculared based on the list price of each SKU (with no discounts applied)."
    type: sum
    sql: ${usd_revenue_list} ;;
    value_format_name: usd_0
    drill_fields: [billing_account_id, revenue_list, revenue_gross, revenue_net_cn]
    # Reference: https://community.looker.com/lookml-5/conditional-formatting-using-value-format-926
    # html: @{custom_dollar_formatting} ;;
    link: {
      url: "http://go/listrev"
      label: "Learn more about List Revenue Metric"
    }
    link: {
      url: "{{ link | replace: \"billing_account_id\", \"product_line\" }}&limit=10"
      label: "Top 10 Product Lines"
      icon_url: "https://g3doc.corp.google.com/company/teams/concord/portal/images/logo-concord-no-text.png"
    }
    link: {
      url: "
      {% assign column_name = \"=\" | append: _view._name | append: \".billing_account_id\" %}
      {{ link | replace: column_name, \"=revenue.nal_name,revenue.reporting_account_name\" }}&limit=10&sorts={{ _field._name }}+desc
      "
      label: "Top 10 Accounts"
      icon_url: "https://g3doc.corp.google.com/company/teams/concord/portal/images/logo-concord-no-text.png"
    }
    link: {
      url: "
      {% assign column_name = \"=\" | append: _view._name | append: \".billing_account_id\" %}
      {{ link | replace: column_name, \"=revenue.segment\" }}&limit=10&sorts={{ _field._name }}+desc
      "
      label: "Drill by Segment"
      icon_url: "https://g3doc.corp.google.com/company/teams/concord/portal/images/logo-concord-no-text.png"
    }
    link: {
      url: "
      {% assign column_name = \"=\" | append: _view._name | append: \".billing_account_id\" %}
      {{ link | replace: column_name, \"=revenue.account_category\" }}&limit=10&sorts={{ _field._name }}+desc
      "
      label: "Drill by Account Category"
      icon_url: "https://g3doc.corp.google.com/company/teams/concord/portal/images/logo-concord-no-text.png"
    }
    link: {
      url: "
      {% assign column_name = \"=\" | append: _view._name | append: \".billing_account_id\" %}
      {{ link | replace: column_name, \"=revenue.region\" }}&limit=10&sorts={{ _field._name }}+desc
      "
      label: "Drill by Region"
      icon_url: "https://g3doc.corp.google.com/company/teams/concord/portal/images/logo-concord-no-text.png"
    }
    link: {
      url: "
      {% assign column_name = \"=\" | append: _view._name | append: \".billing_account_id\" %}
      {{ link | replace: column_name, \"=revenue.region,revenue.sub_region,revenue.micro_region,revenue.nal_cluster,revenue.nal_name,revenue.nal_id\" }}&sorts={{ _field._name }}+desc
      "
      label: "Drill by NAL"
      icon_url: "https://g3doc.corp.google.com/company/teams/concord/portal/images/logo-concord-no-text.png"
    }
    link: {
      url: "{{ link | replace: \"billing_account_id\", \"product_group\" }}"
      label: "Drill by Product Group"
      icon_url: "https://g3doc.corp.google.com/company/teams/concord/portal/images/logo-concord-no-text.png"
    }
  }

  # TODO: delete this measure during a scheduled maintenance window, and replace with a measure pointing to `usd_revenue_net_cn` directly

  measure: revenue_net_cn {
    label: "Revenue (Sales)"
    view_label: "Revenue"
    description: "Channel-neutral revenue (usd_revenue_net_cn) for accounts which are SMB, Corp, or GPS. Net-to-google revenue for commercial Select/Enterprise accounts."
    type: sum
    sql: ${usd_revenue_blended};;
    value_format_name: usd_0
    drill_fields: [billing_account_id, revenue_net_cn]
    link: {
      url: "{{ link | replace: \"billing_account_id\", \"product_line\" }}&limit=10"
      label: "Top 10 Product Lines"
      icon_url: "https://g3doc.corp.google.com/company/teams/concord/portal/images/logo-concord-no-text.png"
    }
    link: {
      url: "
      {% assign column_name = \"=\" | append: _view._name | append: \".billing_account_id\" %}
      {{ link | replace: column_name, \"=revenue.nal_name,revenue.reporting_account_name\" }}&limit=10&sorts={{ _field._name }}+desc
      "
      label: "Top 10 Accounts"
      icon_url: "https://g3doc.corp.google.com/company/teams/concord/portal/images/logo-concord-no-text.png"
    }
    link: {
      url: "
      {% assign column_name = \"=\" | append: _view._name | append: \".billing_account_id\" %}
      {{ link | replace: column_name, \"=revenue.product_group,revenue.sku_id,revenue.sku_description\" }}&limit=10&sorts={{ _field._name }}+desc
      "
      label: "Top 10 SKUs"
      icon_url: "https://g3doc.corp.google.com/company/teams/concord/portal/images/logo-concord-no-text.png"
    }
    link: {
      url: "
      {% assign column_name = \"=\" | append: _view._name | append: \".billing_account_id\" %}
      {{ link | replace: column_name, \"=revenue.segment\" }}&limit=10&sorts={{ _field._name }}+desc
      "
      label: "Drill by Segment"
      icon_url: "https://g3doc.corp.google.com/company/teams/concord/portal/images/logo-concord-no-text.png"
    }
    link: {
      url: "
      {% assign column_name = \"=\" | append: _view._name | append: \".billing_account_id\" %}
      {{ link | replace: column_name, \"=revenue.account_category\" }}&limit=10&sorts={{ _field._name }}+desc
      "
      label: "Drill by Account Category"
      icon_url: "https://g3doc.corp.google.com/company/teams/concord/portal/images/logo-concord-no-text.png"
    }
    link: {
      url: "
      {% assign column_name = \"=\" | append: _view._name | append: \".billing_account_id\" %}
      {{ link | replace: column_name, \"=revenue.region\" }}&limit=10&sorts={{ _field._name }}+desc
      "
      label: "Drill by Region"
      icon_url: "https://g3doc.corp.google.com/company/teams/concord/portal/images/logo-concord-no-text.png"
    }
    link: {
      url: "
      {% assign column_name = \"=\" | append: _view._name | append: \".billing_account_id\" %}
      {{ link | replace: column_name, \"=revenue.region,revenue.sub_region,revenue.micro_region,revenue.nal_cluster,revenue.nal_name,revenue.nal_id\" }}&sorts={{ _field._name }}+desc
      "
      label: "Drill by NAL"
      icon_url: "https://g3doc.corp.google.com/company/teams/concord/portal/images/logo-concord-no-text.png"
    }
    link: {
      url: "{{ link | replace: \"billing_account_id\", \"product_group\" }}"
      label: "Drill by Product Group"
      icon_url: "https://g3doc.corp.google.com/company/teams/concord/portal/images/logo-concord-no-text.png"
    }
    # Reference: https://community.looker.com/lookml-5/conditional-formatting-using-value-format-926
    # html: @{custom_dollar_formatting} ;;
  }


  # TODO: unhide this measure once we have re-pointed usd_revenue_net_cn

  measure: revenue_sales {
    label: "Revenue (Sales)"
    hidden:  no
    view_label: "Revenue"
    description: "Sales Revenue, aligned with go/revenue-walk."
    type: sum
    sql: ${usd_revenue_sales};;
    value_format_name: usd_0
    drill_fields: [reporting_account_name, billing_account_id, revenue_sales]
    link: {
      url: "{{ link | replace: \"revenue.reporting_account_name,revenue.billing_account_id\", \"revenue.product_line\" }}&limit=10"
      label: "Top 10 Product Lines"
      icon_url: "https://g3doc.corp.google.com/company/teams/concord/portal/images/logo-concord-no-text.png"
    }
    link: {
      url: "
      {% assign column_name = \"\" | append: _view._name | append: \".billing_account_id\" %}
      {{ link | replace: column_name, \"=\" }}&limit=10&sorts={{ _field._name }}+desc
      "
      label: "Top 10 Accounts"
      icon_url: "https://g3doc.corp.google.com/company/teams/concord/portal/images/logo-concord-no-text.png"
    }
    link: {
      url: "
      {% assign column_name = \"=\" | append: _view._name | append: \".reporting_account_name,\" | append: _view._name | append: \".billing_account_id\" %}
      {{ link | replace: column_name, \"=revenue.product_group,revenue.sku_id,revenue.sku_description\" }}&limit=10&sorts={{ _field._name }}+desc
      "
      label: "Top 10 SKUs"
      icon_url: "https://g3doc.corp.google.com/company/teams/concord/portal/images/logo-concord-no-text.png"
    }
    link: {
      url: "
      {% assign column_name = \"=\" | append: _view._name | append: \".reporting_account_name,\" | append: _view._name | append: \".billing_account_id\" %}
      {{ link | replace: column_name, \"=revenue.segment\" }}&limit=10&sorts={{ _field._name }}+desc
      "
      label: "Drill by Segment"
      icon_url: "https://g3doc.corp.google.com/company/teams/concord/portal/images/logo-concord-no-text.png"
    }
    link: {
      url: "
      {% assign column_name = \"=\" | append: _view._name | append: \".reporting_account_name,\" | append: _view._name | append: \".billing_account_id\" %}
      {{ link | replace: column_name, \"=vector_customers.is_digital_native\" }}&limit=10&sorts={{ _field._name }}+desc
      "
      label: "Drill by Account Category"
      icon_url: "https://g3doc.corp.google.com/company/teams/concord/portal/images/logo-concord-no-text.png"
    }
    link: {
      url: "
      {% assign column_name = \"=\" | append: _view._name | append: \".reporting_account_name,\" | append: _view._name | append: \".billing_account_id\" %}
      {{ link | replace: column_name, \"=revenue.region\" }}&limit=10&sorts={{ _field._name }}+desc
      "
      label: "Drill by Region"
      icon_url: "https://g3doc.corp.google.com/company/teams/concord/portal/images/logo-concord-no-text.png"
    }
    link: {
      url: "
      {% assign column_name = \"=\" | append: _view._name | append: \".reporting_account_name,\" | append: _view._name | append: \".billing_account_id\" %}
      {{ link | replace: column_name, \"=revenue.region,revenue.sub_region,revenue.micro_region,revenue.nal_cluster,revenue.nal_name,revenue.nal_id\" }}&sorts={{ _field._name }}+desc
      "
      label: "Drill by NAL"
      icon_url: "https://g3doc.corp.google.com/company/teams/concord/portal/images/logo-concord-no-text.png"
    }
    link: {
      url: "{{ link | replace: \"revenue.reporting_account_name,revenue.billing_account_id\", \"revenue.product_group\" }}"
      label: "Drill by Product Group"
      icon_url: "https://g3doc.corp.google.com/company/teams/concord/portal/images/logo-concord-no-text.png"
    }
    # Reference: https://community.looker.com/lookml-5/conditional-formatting-using-value-format-926
    #html: @{custom_dollar_formatting} ;;
  }

  measure: revenue_promo {
    group_label: "Discounts, Credits & BMODS"
    label: "Revenue (Promo)"
    view_label: "Revenue"
    description: "Other promotional credits applied against the Gross amount"
    type: sum
    sql: ${usd_revenue_promo};;
    value_format_name: usd_0
    drill_fields: [billing_account_id, revenue_promo, revenue_gross, revenue_net_cn]
    # Reference: https://community.looker.com/lookml-5/conditional-formatting-using-value-format-926
    # html: @{custom_dollar_formatting} ;;
  }

  measure: revenue_reseller {
    group_label: "Discounts, Credits & BMODS"
    label: "Revenue (Reseller)"
    view_label: "Revenue"
    description: "Reseller Discount credits applied against the Gross amount."
    type: sum
    sql: ${usd_revenue_reseller};;
    value_format_name: usd_0
    drill_fields: [billing_account_id, revenue_reseller, revenue_gross, revenue_net_cn]
    # Reference: https://community.looker.com/lookml-5/conditional-formatting-using-value-format-926
    # html: @{custom_dollar_formatting} ;;
  }

  measure: revenue_sud {
    group_label: "Discounts, Credits & BMODS"
    label: "Revenue (Sustained Usage Discount)"
    view_label: "Revenue"
    description: "Sustained Usage Discount credits applied against the Gross amount."
    type: sum
    sql: ${usd_revenue_sud};;
    value_format_name: usd_0
    drill_fields: [reporting_account_name, billing_account_id, revenue_sud, revenue_gross, revenue_net_cn]
    # Reference: https://community.looker.com/lookml-5/conditional-formatting-using-value-format-926
   # html: @{custom_dollar_formatting} ;;
  }

  measure: revenue_toggle {
    group_label: "Other Revenue"
    label: "Revenue (Toggle-able)"
    label_from_parameter: metric_selector
    view_label: "Revenue"
    description: "This parameter is for dashboard building only!  This allows users to select a metric type
    from a dashboard filter.  For example, the dashboard might default to using Gross Revenue, but the user
    can use this parameter to change to using 2021 Def. Sales Revenue instead.  Must be used with the
    Metric Selector parameter to select what this metric will display"
    type: sum
    sql:  {% if metric_selector._parameter_value == 'invoice' %} ${usd_revenue_net}
          {% elsif metric_selector._parameter_value == 'ntg' %} ${usd_revenue_ntg}
          {% elsif metric_selector._parameter_value == 'net_channel_neutral' %} ${usd_revenue_net_cn}
          {% elsif metric_selector._parameter_value == 'gross' %} ${usd_revenue_gross}
          {% elsif metric_selector._parameter_value == 'blended' %} ${usd_revenue_blended}
          {% endif %} ;;
    drill_fields: [reporting_account_name, billing_account_id, revenue_toggle]
    value_format_name: usd_0
    link: {
      url: "{{ link | replace: \"revenue.reporting_account_name,revenue.billing_account_id\", \"revenue.product_line\" }}&limit=10"
      label: "Top 10 Product Lines"
      icon_url: "https://g3doc.corp.google.com/company/teams/concord/portal/images/logo-concord-no-text.png"
    }
    link: {
      url: "
      {% assign column_name = \"\" | append: _view._name | append: \".billing_account_id\" %}
      {{ link | replace: column_name, \"=\" }}&limit=10&sorts={{ _field._name }}+desc
      "
      label: "Top 10 Accounts"
      icon_url: "https://g3doc.corp.google.com/company/teams/concord/portal/images/logo-concord-no-text.png"
    }
    link: {
      url: "
      {% assign column_name = \"=\" | append: _view._name | append: \".reporting_account_name,\" | append: _view._name | append: \".billing_account_id\" %}
      {{ link | replace: column_name, \"=revenue.segment\" }}&limit=10&sorts={{ _field._name }}+desc
      "
      label: "Drill by Segment"
      icon_url: "https://g3doc.corp.google.com/company/teams/concord/portal/images/logo-concord-no-text.png"
    }
    link: {
      url: "
      {% assign column_name = \"=\" | append: _view._name | append: \".reporting_account_name,\" | append: _view._name | append: \".billing_account_id\" %}
      {{ link | replace: column_name, \"=vector_customers.is_digital_native\" }}&limit=10&sorts={{ _field._name }}+desc
      "
      label: "Drill by Account Category"
      icon_url: "https://g3doc.corp.google.com/company/teams/concord/portal/images/logo-concord-no-text.png"
    }
    link: {
      url: "
      {% assign column_name = \"=\" | append: _view._name | append: \".reporting_account_name,\" | append: _view._name | append: \".billing_account_id\" %}
      {{ link | replace: column_name, \"=revenue.region\" }}&limit=10&sorts={{ _field._name }}+desc
      "
      label: "Drill by Region"
      icon_url: "https://g3doc.corp.google.com/company/teams/concord/portal/images/logo-concord-no-text.png"
    }
    link: {
      url: "
      {% assign column_name = \"=\" | append: _view._name | append: \".reporting_account_name,\" | append: _view._name | append: \".billing_account_id\" %}
      {{ link | replace: column_name, \"=revenue.region,revenue.sub_region,revenue.micro_region,revenue.nal_cluster,revenue.nal_name,revenue.nal_id\" }}&sorts={{ _field._name }}+desc
      "
      label: "Drill by NAL"
      icon_url: "https://g3doc.corp.google.com/company/teams/concord/portal/images/logo-concord-no-text.png"
    }
    link: {
      url: "{{ link | replace: \"revenue.reporting_account_name,revenue.billing_account_id\", \"revenue.product_group\" }}"
      label: "Drill by Product Group"
      icon_url: "https://g3doc.corp.google.com/company/teams/concord/portal/images/logo-concord-no-text.png"
    }
    # Reference: https://community.looker.com/lookml-5/conditional-formatting-using-value-format-926
    #html: @{custom_dollar_formatting} ;;
  }

  ## Metric Components

  # Invoice Revenue

  measure: invoice_revenue_components_gross {
    label: "Gross Revenue (Invoice Component)"
    view_label: "Revenue"
    group_label: "Invoice Revenue Components"
    type: sum
    value_format_name: usd_0
    drill_fields: [reporting_account_name, billing_account_id, usd_invoice_revenue_components_gross, revenue_invoice]
    #html: @{custom_dollar_formatting} ;;
    description: "Gross Revenue component of Invoice Revenue calculation."
    sql: ${usd_invoice_revenue_components_gross} ;;
  }

  measure: invoice_revenue_components_sud {
    label: "SUDs (Invoice Component)"
    view_label: "Revenue"
    group_label: "Invoice Revenue Components"
    type: sum
    value_format_name: usd_0
    drill_fields: [reporting_account_name, billing_account_id, usd_invoice_revenue_components_sud, revenue_invoice]
    #html: @{custom_dollar_formatting} ;;
    description: "SUD component of Invoice Revenue calculation."
    sql: ${usd_invoice_revenue_components_sud} ;;
  }

  measure: invoice_revenue_components_cud {
    label: "CUDs (Invoice Component)"
    view_label: "Revenue"
    group_label: "Invoice Revenue Components"
    type: sum
    value_format_name: usd_0
    drill_fields: [reporting_account_name, billing_account_id, usd_invoice_revenue_components_cud, revenue_invoice]
    #html: @{custom_dollar_formatting} ;;
    description: "CUD component of Invoice Revenue calculation."
    sql: ${usd_invoice_revenue_components_cud} ;;
  }

  measure: invoice_revenue_components_ft {
    label: "Free Trial Credits (Invoice Component)"
    view_label: "Revenue"
    group_label: "Invoice Revenue Components"
    type: sum
    value_format_name: usd_0
    drill_fields: [reporting_account_name, billing_account_id, usd_invoice_revenue_components_ft, revenue_invoice]
    #html: @{custom_dollar_formatting} ;;
    description: "FT component of Invoice Revenue calculation."
    sql: ${usd_invoice_revenue_components_ft} ;;
  }

  measure: invoice_revenue_components_promo {
    label: "Promo Credits (Invoice Component)"
    view_label: "Revenue"
    group_label: "Invoice Revenue Components"
    type: sum
    value_format_name: usd_0
    drill_fields: [reporting_account_name, billing_account_id, usd_invoice_revenue_components_promo, revenue_invoice]
    #html: @{custom_dollar_formatting} ;;
    description: "Promo component of Invoice Revenue calculation."
    sql: ${usd_invoice_revenue_components_promo} ;;
  }

  measure: invoice_revenue_components_reseller_credit {
    label: "Reseller Margin (Invoice Component)"
    view_label: "Revenue"
    group_label: "Invoice Revenue Components"
    type: sum
    value_format_name: usd_0
    drill_fields: [reporting_account_name, billing_account_id, usd_invoice_revenue_components_reseller_credit, revenue_invoice]
    #html: @{custom_dollar_formatting} ;;
    description: "Reseller Credit component of Invoice Revenue calculation."
    sql: ${usd_invoice_revenue_components_reseller_credit} ;;
  }

  measure: invoice_revenue_components_cross_pa_credits_addback {
    label: "xPA Credit Addback (Invoice Component)"
    view_label: "Revenue"
    group_label: "Invoice Revenue Components"
    type: sum
    value_format_name: usd_0
    drill_fields: [reporting_account_name, billing_account_id, usd_invoice_revenue_components_cross_pa_credits_addback, revenue_invoice]
    #html: @{custom_dollar_formatting} ;;
    description: "xPA component of Invoice Revenue calculation."
    sql: ${usd_invoice_revenue_components_cross_pa_credits_addback} ;;
  }

# Sales Revenue

  measure: sales_revenue_components_gross {
    label: "Gross Revenue (Sales Component)"
    view_label: "Revenue"
    group_label: "Sales Revenue Components"
    type: sum
    value_format_name: usd_0
    drill_fields: [reporting_account_name, billing_account_id, usd_sales_revenue_components_gross, revenue_sales]
    #html: @{custom_dollar_formatting} ;;
    description: "Gross Revenue component of Sales Revenue calculation."
    sql: ${usd_sales_revenue_components_gross} ;;
  }

  measure: sales_revenue_components_sud {
    label: "SUDs (Sales Component)"
    view_label: "Revenue"
    group_label: "Sales Revenue Components"
    type: sum
    value_format_name: usd_0
    drill_fields: [reporting_account_name, billing_account_id, usd_sales_revenue_components_sud, revenue_sales]
    #html: @{custom_dollar_formatting} ;;
    description: "SUD component of Sales Revenue calculation."
    sql: ${usd_sales_revenue_components_sud} ;;
  }

  measure: sales_revenue_components_cud {
    label: "CUDs (Sales Component)"
    view_label: "Revenue"
    group_label: "Sales Revenue Components"
    type: sum
    value_format_name: usd_0
    drill_fields: [reporting_account_name, billing_account_id, usd_sales_revenue_components_cud, revenue_sales]
    #html: @{custom_dollar_formatting} ;;
    description: "CUD component of Sales Revenue calculation."
    sql: ${usd_sales_revenue_components_cud} ;;
  }

  measure: sales_revenue_components_ft {
    label: "Free Trial Credits (Sales Component)"
    view_label: "Revenue"
    group_label: "Sales Revenue Components"
    type: sum
    value_format_name: usd_0
    drill_fields: [reporting_account_name, billing_account_id, usd_sales_revenue_components_ft, revenue_sales]
    #html: @{custom_dollar_formatting} ;;
    description: "FT component of Sales Revenue calculation."
    sql: ${usd_sales_revenue_components_ft} ;;
  }

  measure: sales_revenue_components_promo {
    label: "Promo Credits (Sales Component)"
    view_label: "Revenue"
    group_label: "Sales Revenue Components"
    type: sum
    value_format_name: usd_0
    drill_fields: [reporting_account_name, billing_account_id, usd_sales_revenue_components_promo, revenue_sales]
    #html: @{custom_dollar_formatting} ;;
    description: "Promo component of Sales Revenue calculation."
    sql: ${usd_sales_revenue_components_promo} ;;
  }

  measure: sales_revenue_components_reseller_credit {
    label: "Reseller Margin (Sales Component)"
    view_label: "Revenue"
    group_label: "Sales Revenue Components"
    type: sum
    value_format_name: usd_0
    drill_fields: [reporting_account_name, billing_account_id, usd_sales_revenue_components_reseller_credit, revenue_sales]
    #html: @{custom_dollar_formatting} ;;
    description: "Reseller Credit component of Sales Revenue calculation."
    sql: ${usd_sales_revenue_components_reseller_credit} ;;
  }

  measure: sales_revenue_components_cross_pa_credits_addback {
    label: "xPA Credit Addback (Sales Component)"
    view_label: "Revenue"
    group_label: "Sales Revenue Components"
    type: sum
    value_format_name: usd_0
    drill_fields: [reporting_account_name, billing_account_id, usd_sales_revenue_components_cross_pa_credits_addback, revenue_sales]
    #html: @{custom_dollar_formatting} ;;
    description: "xPA component of Sales Revenue calculation."
    sql: ${usd_sales_revenue_components_cross_pa_credits_addback} ;;
  }

  measure: sales_revenue_components_partner_margin_addback {
    label: "Partner Margin Addback (Sales Component)"
    view_label: "Revenue"
    group_label: "Sales Revenue Components"
    type: sum
    value_format_name: usd_0
    drill_fields: [reporting_account_name, billing_account_id, usd_sales_revenue_components_partner_margin_addback, revenue_sales]
    #html: @{custom_dollar_formatting} ;;
    description: "Partner Margin addback component of Sales Revenue calculation."
    sql: ${usd_sales_revenue_components_partner_margin_addback} ;;
  }

  measure: sales_revenue_components_isv_deduction {
    label: "ISV Deduction (Sales Component)"
    view_label: "Revenue"
    group_label: "Sales Revenue Components"
    type: sum
    value_format_name: usd_0
    drill_fields: [reporting_account_name, billing_account_id, usd_sales_revenue_components_isv_deduction, revenue_sales]
    #html: @{custom_dollar_formatting} ;;
    description: "Marketplace ISV deduction in Sales Revenue calculation."
    sql: ${usd_sales_revenue_components_isv_deduction} ;;
  }

  #### PARAMETERS ####

  parameter: metric_selector {
    view_label: "Revenue"
    description: "This parameter is for dashboard building only.  This allows users to select a metric type
    from a dashboard filter.  For example, the dashboard might default to using Gross Revenue, but the user
    can use this parameter to change to using 2021 Def. Sales Revenue instead.  Must be used with the
    Toggleable Revenue Metric, and not the normal metrics."
    default_value: "blended"
    type: unquoted
    allowed_value: {
      label: "Revenue (Sales)"
      value: "blended"
    }
    allowed_value: {
      label: "Revenue (2021 Def.)"
      value: "net_channel_neutral"
    }
    allowed_value: {
      label: "Revenue (Invoice)"
      value: "invoice"
    }
    allowed_value: {
      label: "Revenue (Gross)"
      value: "gross"
    }
    allowed_value: {
      label: "Revenue (Net-to-Google)"
      value: "ntg"
    }
  }

  parameter: filter_nonmetered {
    view_label: "Revenue"
    label: "Remove Prepaid Purchases?"
    description: "Filters out Marketplace Prepaid Purchases, which can erroneously inflate forecasts.  Default is to filter these out."
    default_value: "false"
    type: unquoted
    allowed_value: {
      label: "Remove"
      value: "true"
    }
    allowed_value: {
      label: "Include"
      value: "false"
    }
  }

  parameter: usage_timeframe_selector {
    view_label: "Revenue"
    description: "Updates the `Dynamic Usage Timeframe` field based on selection of granularity."
    type: string
    default_value: "Date"
    allowed_value: {
      value: "Date"
    }
    allowed_value: {
      value: "Week"
    }
    allowed_value: {
      value: "Month"
    }
  }

}
