Files
talk-to-data-case-study/marts_quotes.sql
@gabriel.pereira 52d3e870d2 docs: simplify anonymized examples
Use clean generic names instead of repeated redaction placeholders.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-09-11 11:53:37 -03:00

112 lines
3.2 KiB
SQL

{{
config(
materialized='table',
database=target.database,
schema='transform',
tags=['semantic_layer', 'chatbot']
)
}}
with source_quotes as (
select
quote_id,
line_item,
customer_id,
material_id,
quantity,
net_value,
quote_date,
sales_person_id,
source_timestamp
from source_quotes
where quote_date >= dateadd(day, -1, current_date())
),
enrich_product_portfolio as (
select
sq.quote_id,
sq.line_item,
sq.customer_id,
sq.material_id,
sq.quantity,
sq.net_value,
sq.quote_date,
sq.sales_person_id,
/* Product portfolio classification */
case
when sq.material_id like 'DI-%' then 'data-integration'
when sq.material_id like 'AU-%' then 'automation'
when sq.material_id like 'CO-%' then 'connectivity'
else 'other'
end as portfolio_code,
pm.portfolio_name,
pm.portfolio_category,
pm.material_description
from source_quotes sq
left join {{ ref('dim_product_master') }} pm
on sq.material_id = pm.material_id
),
calculate_discounts as (
select
epf.*,
/* Discount hierarchy: customer segment -> discount tier */
coalesce(cd.discount_tier_pct, 0) as discount_hierarchy_pct,
/* Customer-specific negotiated discount */
coalesce(cd.customer_discount_pct, 0) as discount_customer_pct,
/* Agreement-based discounts (volume, multi-year, etc.) */
coalesce(ca.agreement_discount_pct, 0) as discount_agreement_pct,
/* Maximum allowed discount (governance constraint) */
cd.discount_ceiling_pct,
/* Total discount calculation */
coalesce(cd.discount_tier_pct, 0) +
coalesce(cd.customer_discount_pct, 0) +
coalesce(ca.agreement_discount_pct, 0) as discount_total_pct
from enrich_product_portfolio epf
left join {{ ref('dim_customer_discount_policy') }} cd
on epf.customer_id = cd.customer_id
and epf.portfolio_code = cd.portfolio_code
left join {{ ref('fct_agreement_discounts') }} ca
on epf.customer_id = ca.customer_id
and epf.material_id = ca.material_id
),
governance_flags as (
select
cd.*,
/* Flag: discount exceeds policy maximum */
case
when cd.discount_total_pct > cd.discount_ceiling_pct
then cd.discount_total_pct - cd.discount_ceiling_pct
else 0
end as discount_above_ceiling,
/* Governance indicator: quote ready for human review */
case
when cd.discount_total_pct > cd.discount_ceiling_pct then 1
else 0
end as requires_exception_approval
from calculate_discounts cd
)
select
quote_id,
line_item,
customer_id,
material_id,
portfolio_code,
portfolio_name,
material_description,
quantity,
net_value,
discount_hierarchy_pct,
discount_customer_pct,
discount_agreement_pct,
discount_total_pct,
discount_ceiling_pct,
discount_above_ceiling,
requires_exception_approval,
quote_date,
sales_person_id,
current_timestamp() as dbt_loaded_at
from governance_flags