MERGE `payroll-bi-gauntlet.payroll_analytics.dim_rule_definitions` AS target
USING (
SELECT * FROM UNNEST([
STRUCT(
'creative_benefit_strategies' AS tenant_id,
'TPA_PEPM_RATE' AS rule_id,
'TPA PEPM Rate Calculation' AS rule_name,
'TPA Producing Agent commission calculated using PEPM rate' AS rule_description,
'(pepm_rate * 12 / pay_periods) * employee_count' AS calculation_formula,
'TPA' AS rule_type,
CAST(NULL AS STRING) AS plan_version_id,
DATE('2024-01-01') AS effective_start_date,
CAST(NULL AS DATE) AS effective_end_date,
TRUE AS is_active,
CURRENT_TIMESTAMP() AS created_at,
CURRENT_TIMESTAMP() AS updated_at
),
STRUCT(
'creative_benefit_strategies' AS tenant_id,
'OWNER_RESIDUAL' AS rule_id,
'Owner Commission Residual' AS rule_name,
'Owner commission = Stage 1 Gross - Sum(PEPM Agent Payouts)' AS rule_description,
'gross_payout - sum(agent_payouts)' AS calculation_formula,
'OWNER' AS rule_type,
CAST(NULL AS STRING) AS plan_version_id,
DATE('2024-01-01') AS effective_start_date,
CAST(NULL AS DATE) AS effective_end_date,
TRUE AS is_active,
CURRENT_TIMESTAMP() AS created_at,
CURRENT_TIMESTAMP() AS updated_at
),
STRUCT(
'creative_benefit_strategies' AS tenant_id,
'MIXED_OWNER_RESIDUAL' AS rule_id,
'MIXED_OWNER Per-Employee Residual' AS rule_name,
'Per-employee residual when business has both TPA and owner commissions' AS rule_description,
'(credit_per_employee - total_tpa_pepm_per_employee) * employee_count' AS calculation_formula,
'MIXED_OWNER' AS rule_type,
CAST(NULL AS STRING) AS plan_version_id,
DATE('2024-01-01') AS effective_start_date,
CAST(NULL AS DATE) AS effective_end_date,
TRUE AS is_active,
CURRENT_TIMESTAMP() AS created_at,
CURRENT_TIMESTAMP() AS updated_at
)
])
) AS source
ON target.tenant_id = source.tenant_id
AND target.rule_id = source.rule_id
WHEN MATCHED THEN
UPDATE SET
rule_name = source.rule_name,
rule_description = source.rule_description,
calculation_formula = source.calculation_formula,
rule_type = source.rule_type,
plan_version_id = source.plan_version_id,
effective_start_date = source.effective_start_date,
effective_end_date = source.effective_end_date,
is_active = source.is_active,
updated_at = source.updated_at
WHEN NOT MATCHED THEN
INSERT (tenant_id, rule_id, rule_name, rule_description, calculation_formula, rule_type, plan_version_id, effective_start_date, effective_end_date, is_active, created_at, updated_at)
VALUES (source.tenant_id, source.rule_id, source.rule_name, source.rule_description, source.calculation_formula, source.rule_type, source.plan_version_id, source.effective_start_date, source.effective_end_date, source.is_active, source.created_at, source.updated_at);