GTM Efficiency

Measures go-to-market efficiency by calculating customer acquisition cost from sales and marketing expenses.

Purpose

Provide a go-to-market efficiency view, translating sales and marketing spend into customer acquisition cost (CAC) metrics.

This model is designed as a unit-economics reporting layer, enabling:

  • Tracking sales and marketing efficiency over time
  • Comparing pure sales CAC vs blended sales & marketing CAC
  • Supporting LTV/CAC and payback analyses

It connects GTM spending with customer growth outcomes.

Business Logic

  • Start from PnL Rollup
  • Isolate GTM cost categories:
    • Sales costs gl_id = 4010
    • Marketing costs gl_id = 4020
  • Join with Customer Count View
  • Normalize costs by number of new customers acquired
  • Produce one row per date and value type

Output Contract

Definitions

ColumnDescription
dateDate of the snapshot (YYYY-MM-DD)
value_typeValue type such as actual, budget
sales_costTotal sales expense for the period
mkt_costTotal marketing expense for the period
new_customersNumber of newly acquired customers
sales_cacSales cost per new customer
sales_mkt_cacBlended sales & marketing CAC

Sample & Implementation

Sales, marketing, and blended CAC by period and value type.
datevalue_typesales_costmkt_costsales_cacsales_mkt_cac
2025-01-01budget118451.093176.01974.18333527.1167
2025-02-01budget118451.093176.01974.18333527.1167
2025-03-01budget118451.093176.01974.18333527.1167
2025-04-01budget118451.093176.01974.18333527.1167
2025-05-01budget118451.093176.01974.18333527.1167
2025-06-01budget118451.093176.01974.18333527.1167
2025-07-01budget118451.093176.01974.18333527.1167
2025-08-01budget118451.093176.01974.18333527.1167
2025-09-01budget118451.093176.01974.18333527.1167
2025-10-01budget118451.093176.01974.18333527.1167
{{config(materialized='view')}}


with pnl_rollup as (
    select * from {{ ref('pnl_rollup') }}
),

customer_count_view as (
    select * from {{ref('customer_count_view')}}
),

sales_costs as (
    select
        date,
        gl_id,
        gl_account,
        value_type,
        amount
    from pnl_rollup
    where gl_id = 4010
),

mkt_costs as (
    select
        date,
        gl_id,
        gl_account,
        value_type,
        amount
    from pnl_rollup
    where gl_id = 4020
)

select
    sc.date,
    sc.value_type,
    sc.amount as sales_cost,
    mktc.amount as mkt_cost,
    ccv.new_customers,
    sc.amount / ccv.new_customers as sales_cac,
    (sc.amount + mktc.amount) / ccv.new_customers as sales_mkt_cac
from sales_costs sc
left join mkt_costs mktc on sc.date = mktc.date and sc.value_type = mktc.value_type
left join customer_count_view ccv on sc.date = ccv.date and sc.value_type = ccv.value_type

Dependencies

On this page

Star us on GitHub

If you enjoy this content and find it useful, give us a star on GitHub to show your support and stay updated with our latest improvements.