SELECT
SUB.*,
CASE
WHEN ROUND(SERVICE_FEE, 2) = ROUND(CALC_FEE_WITH_BONUSREVENUE, 2)
AND ROUND(ESTIMATED_SERVICE_FEE, 2) = ROUND(CALC_ESTIMATED_FEE_WITH_BONUSREVENUE, 2)
AND ABS(APPLIED_RATE - MARKUP_RATE) <= 0.000001
THEN 'PASS'
ELSE 'FAIL'
END AS RESULTS,
COUNT(
CASE
WHEN ROUND(SERVICE_FEE, 2) <> ROUND(CALC_FEE_WITH_BONUSREVENUE, 2)
OR ROUND(ESTIMATED_SERVICE_FEE, 2) <> ROUND(CALC_ESTIMATED_FEE_WITH_BONUSREVENUE, 2)
OR ABS(APPLIED_RATE - MARKUP_RATE) > 0.000001
THEN 1
END
) OVER() AS TOTAL_FAIL_CNT,
COUNT(CASE
WHEN BONUS_REVENUE_CHECK = '+ Bonus Revenue' THEN 1
ELSE NULL
END) OVER() AS TOTAL_BONUS_CNT
FROM (
SELECT
TO_VARCHAR(S.CREATED_AT, 'YYYY-MM-DD HH24:MI') AS DATE_TIME,
S.SEQ,
S.USER_SESSION_ID,
S.BRAND_ID,
S.SITE_ID,
S.BUSINESS_SERVICE,
M.SERVICE_CATEGORY,
S.SERVICE_TYPE,
CAST(M.RATE AS NUMBER(18, 8)) AS MARKUP_RATE,
CASE
WHEN S.REVENUE = 0 AND S.ESTIMATED_REVENUE = 0 THEN
CAST(M.RATE AS NUMBER(18, 8))
WHEN ABS(S.SERVICE_FEE) > 0 THEN
CAST(
ROUND(
CAST(S.SERVICE_FEE AS NUMBER(18, 10))
/ NULLIF(CAST(S.REVENUE + (CASE
WHEN M.RATE IS NULL OR M.RATE = 0 THEN 0
ELSE (S.SERVICE_FEE / M.RATE) - S.REVENUE END)
AS NUMBER(18, 10)), 0), 8) AS NUMBER(18, 8))
ELSE
ROUND(
CAST(S.ESTIMATED_SERVICE_FEE AS NUMBER(18, 10))
/ NULLIF(CAST(S.ESTIMATED_REVENUE + (CASE
WHEN M.RATE IS NULL OR M.RATE = 0 THEN 0
ELSE (S.ESTIMATED_SERVICE_FEE / M.RATE) - S.ESTIMATED_REVENUE END)
AS NUMBER(18, 10)), 0), 8)
END AS APPLIED_RATE,
CASE
WHEN M.RATE IS NULL OR M.RATE = 0 THEN 'Error'
WHEN ABS(S.SERVICE_FEE - (S.REVENUE * M.RATE)) > 0.015 THEN '+ Bonus Revenue'
ELSE '-'
END AS BONUS_REVENUE_CHECK,
CASE
WHEN M.RATE IS NULL OR M.RATE = 0 THEN 0
WHEN ABS(S.SERVICE_FEE) > 0 THEN (S.SERVICE_FEE / M.RATE) - S.REVENUE
ELSE (S.ESTIMATED_SERVICE_FEE / M.RATE) - S.ESTIMATED_REVENUE
END AS EXPECTED_BONUS_REVENUE,
S.REVENUE,
S.SERVICE_FEE,
ROUND(
(
S.REVENUE +
(CASE
WHEN APPLIED_RATE IS NULL OR APPLIED_RATE = 0 THEN 0
ELSE (S.SERVICE_FEE / APPLIED_RATE) - S.REVENUE
END)
) * APPLIED_RATE
, 8) AS CALC_FEE_WITH_BONUSREVENUE,
S.ESTIMATED_REVENUE,
S.ESTIMATED_SERVICE_FEE,
ROUND(
(
S.ESTIMATED_REVENUE +
(CASE
WHEN APPLIED_RATE IS NULL OR APPLIED_RATE = 0 THEN 0
ELSE (S.ESTIMATED_SERVICE_FEE / APPLIED_RATE) - S.ESTIMATED_REVENUE
END)
) * APPLIED_RATE
, 8) AS CALC_ESTIMATED_FEE_WITH_BONUSREVENUE
FROM DW_ANALYTICS.AGGREGATED.BS_STATISTICS_SERVICE_PER_SESSION S
INNER JOIN (
SELECT DISTINCT
TRIM(UPPER(BRAND_ID)) AS BRAND_ID,
TRIM(UPPER(SITE_ID)) AS SITE_ID,
TRIM(UPPER(BUSINESS_SERVICE)) AS BUSINESS_SERVICE,
SERVICE_CATEGORY,
RATE
FROM DW_ANALYTICS.AGGREGATED.BS_SERVICE_MARKUP
WHERE (BRAND_ID <> 'SYSTEM_EXCLUDE' OR BRAND_ID IS NULL)
) M
ON TRIM(UPPER(S.BRAND_ID)) = M.BRAND_ID
AND TRIM(UPPER(S.SITE_ID)) = M.SITE_ID
AND M.BUSINESS_SERVICE = (
CASE
WHEN TRIM(UPPER(S.BUSINESS_SERVICE)) IN ('SUB_A', 'SUB_B') THEN 'CORE_NETWORK'
ELSE TRIM(UPPER(S.BUSINESS_SERVICE))
END
)
WHERE
S.CREATED_AT >= DATEADD(HOUR, 9, DATEADD(DAY, -1, DATE_TRUNC('DAY', CURRENT_TIMESTAMP())))
AND S.CREATED_AT < DATEADD(HOUR, 9, DATE_TRUNC('DAY', CURRENT_TIMESTAMP()))
AND S.BUSINESS_SERVICE IS NOT NULL
AND (TRIM(UPPER(S.BRAND_ID)) <> 'SYSTEM_EXCLUDE' OR S.BRAND_ID IS NULL)
AND (TRIM(UPPER(S.SITE_ID)) <> 'SYSTEM_EXCLUDE_SYS' OR S.SITE_ID IS NULL)
) SUB
WHERE
( '{{ status_select }}' = 'ALL' OR RESULTS = '{{ status_select }}' )
AND
( '{{ bonus_select }}' = 'ALL' OR BONUS_REVENUE_CHECK = '{{ bonus_select }}' )
ORDER BY DATE_TIME DESC;