# emulates https://lookercs-internal.git.corp.google.com/cloud_sales_bi/+/refs/heads/master/views/revenue/revenue_from_revenue.view.lkml
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: ${TABLE}.product_line;;
    #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_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_rvp {
    hidden: yes
    view_label: "Revenue"
    description: "Revenue for RVPs: see go/revenue-walk for details"
    sql: ${TABLE}.usd_revenue_rvp ;;
  }
  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 ;;
  }
  #### MEASURES ####
  measure: revenue_invoice {
    alias: [revenue_actuals]
    label: "Revenue (Invoice)"
    view_label: "Revenue"
    description: "Sum of Revenue (Sales) minus hug credits. Post alignment we have agreed to keep only one source of truth for revenue and it will be gcc.revenue. Gcp_consumpiton will be deprecated but another table(with adjustments) will be established to enable the bridge from gcc.revenue to finance."
    type: sum
    sql: ${usd_revenue_net} - ${usd_revenue_cross_pa_credits};;
    value_format_name: usd_0
    drill_fields: [billing_account_id, revenue_actuals, 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.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} ;;
  }
  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: [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"
    }
  }
  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} ;;
  }
  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_rvp {
    label: "Revenue (RVP)"
    view_label: "Revenue"
    description: "Revenue definition used by Region VPs.  See go/revenue-walk"
    type: sum
    sql: ${usd_revenue_rvp};;
    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} ;;
  }
  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: [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}
          {% elsif metric_selector._parameter_value == 'rvp' %} ${usd_revenue_rvp}
          {% endif %} ;;
    drill_fields: [billing_account_id, revenue_toggle]
    value_format_name: usd_0
    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"
    }
    # Reference: https://community.looker.com/lookml-5/conditional-formatting-using-value-format-926
    # html: @{custom_dollar_formatting} ;;
  }
  #### 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 (RVP)"
      value: "rvp"
    }
    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"
    }
  }
}
