SQL
Insurance brokerage
Member Claim Risk Facts
Member Claim Risk Facts model for insurance brokerage.
source-preserved
Blocks
member_claim_risk_facts.sql · 34 lines
inferred
-- models/member_claim_risk_facts.sql
{{ config(materialized='view') }}
SELECT ClaimLine.memberid AS 'claimant'
, ERGriskOutput.RetroRiskCategory AS 'retro_risk_category'
, ERGriskOutput.ActuarialRiskCategory AS 'actuarial_risk_category'
, SUM(claimline.companypaid) AS 'plan_paid'
, COUNT(DISTINCT analytica.dbo.ETG_to_Chronic_Condition."Chronic Condition") AS 'comorbidities'
FROM ClaimLine
LEFT JOIN ETGClaimsOutput
ON ETGClaimsOutput.UniqueRecordID = ClaimLine.ID
LEFT JOIN ETGLookup
ON ETGClaimsOutput.ETGNumber = ETGLookup.FullETG
LEFT JOIN Analytica.dbo.ETG_to_Chronic_Condition
ON ETGLookup.BaseETG = Analytica.dbo.ETG_to_Chronic_Condition."ETG Code"
LEFT JOIN ETGMemberTx
ON ClaimLine.MemberId = ETGMemberTx.MemberId
LEFT JOIN ERGriskOutput
ON ETGMemberTx.EtgMemberId = ERGriskOutput.FamilyID
WHERE ClaimLine.IncludeForSymmetry = 1
GROUP BY ClaimLine.MemberId, ERGriskOutput.RetroRiskCategory, ERGriskOutput.ActuarialRiskCategory
# models/schema.yml
version: 2
models:
- name: member_claim_risk_facts
columns:
- name: claimant
- name: retro_risk_category
- name: actuarial_risk_category
- name: plan_paid
- name: comorbidities
- name: comorbidities_group
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.
member_claim_risk_facts.sql · 18 lines
source-preserved
validation: parses
SELECT ClaimLine.memberid AS 'claimant'
, ERGriskOutput.RetroRiskCategory AS 'retro_risk_category'
, ERGriskOutput.ActuarialRiskCategory AS 'actuarial_risk_category'
, SUM(claimline.companypaid) AS 'plan_paid'
, COUNT(DISTINCT analytica.dbo.ETG_to_Chronic_Condition."Chronic Condition") AS 'comorbidities'
FROM ClaimLine
LEFT JOIN ETGClaimsOutput
ON ETGClaimsOutput.UniqueRecordID = ClaimLine.ID
LEFT JOIN ETGLookup
ON ETGClaimsOutput.ETGNumber = ETGLookup.FullETG
LEFT JOIN Analytica.dbo.ETG_to_Chronic_Condition
ON ETGLookup.BaseETG = Analytica.dbo.ETG_to_Chronic_Condition."ETG Code"
LEFT JOIN ETGMemberTx
ON ClaimLine.MemberId = ETGMemberTx.MemberId
LEFT JOIN ERGriskOutput
ON ETGMemberTx.EtgMemberId = ERGriskOutput.FamilyID
WHERE ClaimLine.IncludeForSymmetry = 1
GROUP BY ClaimLine.MemberId, ERGriskOutput.RetroRiskCategory, ERGriskOutput.ActuarialRiskCategory
member_claim_risk_facts.view.lkml · 79 lines
inferred
view: member_claim_risk_facts {
derived_table: {
sql: SELECT ClaimLine.memberid AS 'claimant'
, ERGriskOutput.RetroRiskCategory AS 'retro_risk_category'
, ERGriskOutput.ActuarialRiskCategory AS 'actuarial_risk_category'
, SUM(claimline.companypaid) AS 'plan_paid'
, COUNT(DISTINCT analytica.dbo.ETG_to_Chronic_Condition."Chronic Condition") AS 'comorbidities'
FROM ClaimLine
LEFT JOIN ETGClaimsOutput
ON ETGClaimsOutput.UniqueRecordID = ClaimLine.ID
LEFT JOIN ETGLookup
ON ETGClaimsOutput.ETGNumber = ETGLookup.FullETG
LEFT JOIN Analytica.dbo.ETG_to_Chronic_Condition
ON ETGLookup.BaseETG = Analytica.dbo.ETG_to_Chronic_Condition."ETG Code"
LEFT JOIN ETGMemberTx
ON ClaimLine.MemberId = ETGMemberTx.MemberId
LEFT JOIN ERGriskOutput
ON ETGMemberTx.EtgMemberId = ERGriskOutput.FamilyID
WHERE ClaimLine.IncludeForSymmetry = 1
GROUP BY ClaimLine.MemberId, ERGriskOutput.RetroRiskCategory, ERGriskOutput.ActuarialRiskCategory ;;
}
dimension: claimant {
sql: ${TABLE}.claimant ;;
}
dimension: retro_risk_category {
type: number
sql: ${TABLE}.retro_risk_category ;;
}
dimension: actuarial_risk_category {
type: number
sql: ${TABLE}.actuarial_risk_category ;;
}
dimension: plan_paid {
type: number
sql: ${TABLE}.plan_paid ;;
}
dimension: comorbidities {
type: number
sql: ${TABLE}.comorbidities ;;
}
dimension: comorbidities_group {
sql: CASE
WHEN ${comorbidities} BETWEEN 0 AND 3
THEN CONVERT(VARCHAR(2), ${comorbidities})
ELSE '4+'
END ;;
}
measure: count_of_claimants {
type: count
sql: ${claimant} ;;
}
measure: total_claimants {
type: count_distinct
sql: ${claimant} ;;
}
measure: total_plan_paid {
type: sum
sql: ${plan_paid} ;;
}
measure: average_risk_index {
type: average
sql: ${retro_risk_category} ;;
}
measure: plan_paid_per_claimant {
type: number
sql: ${total_plan_paid} / ${total_claimants} ;;
}
}
member_claim_risk_facts.view.lookml · 56 lines
source-preserved
- view: member_claim_risk_facts
derived_table:
sql: SELECT ClaimLine.memberid AS 'claimant'
, ERGriskOutput.RetroRiskCategory AS 'retro_risk_category'
, ERGriskOutput.ActuarialRiskCategory AS 'actuarial_risk_category'
, SUM(claimline.companypaid) AS 'plan_paid'
, COUNT(DISTINCT analytica.dbo.ETG_to_Chronic_Condition."Chronic Condition") AS 'comorbidities'
FROM ClaimLine
LEFT JOIN ETGClaimsOutput
ON ETGClaimsOutput.UniqueRecordID = ClaimLine.ID
LEFT JOIN ETGLookup
ON ETGClaimsOutput.ETGNumber = ETGLookup.FullETG
LEFT JOIN Analytica.dbo.ETG_to_Chronic_Condition
ON ETGLookup.BaseETG = Analytica.dbo.ETG_to_Chronic_Condition."ETG Code"
LEFT JOIN ETGMemberTx
ON ClaimLine.MemberId = ETGMemberTx.MemberId
LEFT JOIN ERGriskOutput
ON ETGMemberTx.EtgMemberId = ERGriskOutput.FamilyID
WHERE ClaimLine.IncludeForSymmetry = 1
GROUP BY ClaimLine.MemberId, ERGriskOutput.RetroRiskCategory, ERGriskOutput.ActuarialRiskCategory
fields:
- dimension: claimant
sql: ${TABLE}.claimant
- dimension: retro_risk_category
type: number
sql: ${TABLE}.retro_risk_category
- dimension: actuarial_risk_category
type: number
sql: ${TABLE}.actuarial_risk_category
- dimension: plan_paid
type: number
sql: ${TABLE}.plan_paid
- dimension: comorbidities
type: number
sql: ${TABLE}.comorbidities
- dimension: comorbidities_group
sql: CASE
WHEN ${comorbidities} BETWEEN 0 AND 3
THEN CONVERT(VARCHAR(2), ${comorbidities})
ELSE '4+'
END
- measure: count_of_claimants
type: count
sql: ${claimant}
- measure: total_claimants
type: count_distinct
sql: ${claimant}
- measure: total_plan_paid
type: sum
sql: ${plan_paid}
- measure: average_risk_index
type: average
sql: ${retro_risk_category}
- measure: plan_paid_per_claimant
type: number
sql: ${total_plan_paid} / ${total_claimants}
Contents
- member_claim_risk_facts.sql
- member_claim_risk_facts.sql
- member_claim_risk_facts.view.lkml
- member_claim_risk_facts.view.lookml