dbt
Saas content marketing
Daily Revenue
Daily Revenue model for saas content marketing.
inferred
Blocks
daily_revenue.sql · 25 lines
inferred
-- models/daily_revenue.sql
{{ config(materialized='view') }}
SELECT
DATE((financial_transactions.completed_at)::timestamptz AT TIME ZONE 'America/New_York') AS "completed_date",
-1.0 * (SUM(CASE WHEN financial_transactions.category IN ('entity_story_fee', 'entity_story_adjustment', 'entity_story_refund') THEN (CASE financial_transactions.type
WHEN 'Debit'
THEN financial_transactions.amount / -100
ELSE financial_transactions.amount / 100
END
) ELSE NULL END)) AS "total_net_amount"
FROM financial_transactions
LEFT JOIN profiles AS external_profiles ON financial_transactions.brand_profile_id = entities.id
WHERE entities.internal = 'No'
GROUP BY 1
# models/schema.yml
version: 2
models:
- name: daily_revenue
columns:
- name: transaction_completed
- name: total_net_amount
- name: weekday
Assumptions
- materialized='view' is the default; no persist hint found.
- schema.yml columns come from view dimensions; a primary_key dimension gets unique + not_null tests.
daily_revenue.sql · 12 lines
source-preserved
validation: parses
SELECT
DATE((financial_transactions.completed_at)::timestamptz AT TIME ZONE 'America/New_York') AS "completed_date",
-1.0 * (SUM(CASE WHEN financial_transactions.category IN ('entity_story_fee', 'entity_story_adjustment', 'entity_story_refund') THEN (CASE financial_transactions.type
WHEN 'Debit'
THEN financial_transactions.amount / -100
ELSE financial_transactions.amount / 100
END
) ELSE NULL END)) AS "total_net_amount"
FROM financial_transactions
LEFT JOIN profiles AS external_profiles ON financial_transactions.brand_profile_id = entities.id
WHERE entities.internal = 'No'
GROUP BY 1
daily_revenue.view.lkml · 38 lines
inferred
view: daily_revenue {
derived_table: {
sql: SELECT
DATE((financial_transactions.completed_at)::timestamptz AT TIME ZONE 'America/New_York') AS "completed_date",
-1.0 * (SUM(CASE WHEN financial_transactions.category IN ('entity_story_fee', 'entity_story_adjustment', 'entity_story_refund') THEN (CASE financial_transactions.type
WHEN 'Debit'
THEN financial_transactions.amount / -100
ELSE financial_transactions.amount / 100
END
) ELSE NULL END)) AS "total_net_amount"
FROM financial_transactions
LEFT JOIN profiles AS external_profiles ON financial_transactions.brand_profile_id = entities.id
WHERE entities.internal = 'No'
GROUP BY 1 ;;
}
dimension: transaction_completed {
type: time
sql: ${TABLE}.completed_date ;;
}
dimension: total_net_amount {
type: number
sql: ${TABLE}.total_net_amount ;;
}
dimension: weekday {
type: yesno
sql: date_part('dow',${transaction_completed_date}) between 1 and 5 ;;
}
measure: average_daily_revenue {
type: average
value_format: "$#,##0"
filters: [weekday: "True"]
sql: ${total_net_amount} ;;
}
}
daily_revenue.view.lookml · 30 lines
source-preserved
- view: daily_revenue
derived_table:
sql: SELECT
DATE((financial_transactions.completed_at)::timestamptz AT TIME ZONE 'America/New_York') AS "completed_date",
-1.0 * (SUM(CASE WHEN financial_transactions.category IN ('entity_story_fee', 'entity_story_adjustment', 'entity_story_refund') THEN (CASE financial_transactions.type
WHEN 'Debit'
THEN financial_transactions.amount / -100
ELSE financial_transactions.amount / 100
END
) ELSE NULL END)) AS "total_net_amount"
FROM financial_transactions
LEFT JOIN profiles AS external_profiles ON financial_transactions.brand_profile_id = entities.id
WHERE entities.internal = 'No'
GROUP BY 1
fields:
- dimension: transaction_completed
type: time
sql: ${TABLE}.completed_date
- dimension: total_net_amount
type: number
sql: ${TABLE}.total_net_amount
- dimension: weekday
type: yesno
sql: date_part('dow',${transaction_completed_date}) between 1 and 5
- measure: average_daily_revenue
type: average
value_format: '$#,##0'
filters:
- weekday: True
sql: ${total_net_amount}
Contents
- daily_revenue.sql
- daily_revenue.sql
- daily_revenue.view.lkml
- daily_revenue.view.lookml