Added metrics

This commit is contained in:
CIEF ACC1
2024-04-03 06:10:11 +00:00
parent cca60ea20f
commit 75910a77fe
@@ -179,13 +179,15 @@ union_expanded_tables AS (
), ),
rate_comparison AS ( exchange_amount_compute AS (
SELECT SELECT
*, *,
-- CIEF exchanged CNY after deducting service charge
( (comparison_base_value_myr / 1.02) * myr_to_cny_currency_exchange_rate ) AS cief_amount_cny, ( (comparison_base_value_myr / 1.02) * myr_to_cny_currency_exchange_rate ) AS cief_amount_cny,
-- Competitor exchanged CNY after deducting service charge
CASE CASE
WHEN competitor_name = 'WORLD RATE' WHEN competitor_name = 'WORLD RATE'
THEN comparison_base_value_myr * competitor_myr_to_cny_currency_exchange_rate THEN comparison_base_value_myr * competitor_myr_to_cny_currency_exchange_rate
@@ -197,6 +199,25 @@ rate_comparison AS (
THEN ( comparison_base_value_myr * competitor_myr_to_cny_currency_exchange_rate ) - handling_fee_cny THEN ( comparison_base_value_myr * competitor_myr_to_cny_currency_exchange_rate ) - handling_fee_cny
END AS competitor_amount_cny, END AS competitor_amount_cny,
-- Median and Average difference in CNY amount exchanged comparing CIEF to competitor
MEDIAN(1 - DIV0(competitor_amount_cny, cief_amount_cny)) OVER (
PARTITION BY service_type, exchange_rate_date, competitor_name, competitor_service_type, competitor_payment_method
) AS median_amount_percent_difference,
median_amount_percent_difference - 0.5 * median_amount_percent_difference AS upper_bound_median_amount_percent_difference,
median_amount_percent_difference + 0.5 * median_amount_percent_difference AS lower_bound_median_amount_percent_difference,
AVG(1 - DIV0(competitor_amount_cny, cief_amount_cny)) OVER (
PARTITION BY service_type, exchange_rate_date, competitor_name, competitor_service_type, competitor_payment_method
) AS average_amount_percent_difference,
average_amount_percent_difference - 0.5 * average_amount_percent_difference AS upper_bound_average_amount_percent_difference,
average_amount_percent_difference + 0.5 * average_amount_percent_difference AS lower_bound_average_amount_percent_difference,
AVG(1 - DIV0(COMPETITOR_AMOUNT_CNY, CIEF_AMOUNT_CNY)) OVER (
PARTITION BY service_type, exchange_rate_date, payment_method, competitor_name, competitor_service_type, competitor_payment_method
) AS comparison_average_percent_difference,
MAX(exchange_rate_date) OVER ( PARTITION BY competitor_name, payment_method, competitor_payment_method) AS latest_exchange_rate_date MAX(exchange_rate_date) OVER ( PARTITION BY competitor_name, payment_method, competitor_payment_method) AS latest_exchange_rate_date
FROM union_expanded_tables FROM union_expanded_tables
@@ -227,23 +248,31 @@ order_metrics AS (
exchange_rate_join_order_metrics AS ( exchange_rate_join_order_metrics AS (
SELECT SELECT
rate_comparison.provider, exchange_amount_compute.provider,
rate_comparison.payment_method, exchange_amount_compute.payment_method,
rate_comparison.service_type, exchange_amount_compute.service_type,
rate_comparison.myr_to_cny_currency_exchange_rate, exchange_amount_compute.myr_to_cny_currency_exchange_rate,
rate_comparison.exchange_rate_date, exchange_amount_compute.exchange_rate_date,
rate_comparison.competitor_name, exchange_amount_compute.competitor_name,
rate_comparison.start_range_myr, exchange_amount_compute.start_range_myr,
rate_comparison.end_range_myr, exchange_amount_compute.end_range_myr,
rate_comparison.competitor_payment_method, exchange_amount_compute.competitor_payment_method,
rate_comparison.competitor_service_type, exchange_amount_compute.competitor_service_type,
rate_comparison.handling_fee_myr, exchange_amount_compute.handling_fee_myr,
rate_comparison.handling_fee_cny, exchange_amount_compute.handling_fee_cny,
rate_comparison.competitor_myr_to_cny_currency_exchange_rate, exchange_amount_compute.competitor_myr_to_cny_currency_exchange_rate,
rate_comparison.comparison_base_value_myr, exchange_amount_compute.comparison_base_value_myr,
rate_comparison.cief_amount_cny, exchange_amount_compute.cief_amount_cny,
rate_comparison.competitor_amount_cny, exchange_amount_compute.competitor_amount_cny,
rate_comparison.latest_exchange_rate_date, exchange_amount_compute.latest_exchange_rate_date,
exchange_amount_compute.median_amount_percent_difference,
exchange_amount_compute.upper_bound_median_amount_percent_difference,
exchange_amount_compute.lower_bound_median_amount_percent_difference,
exchange_amount_compute.average_amount_percent_difference,
exchange_amount_compute.upper_bound_average_amount_percent_difference,
exchange_amount_compute.lower_bound_average_amount_percent_difference,
exchange_amount_compute.comparison_average_percent_difference,
order_metrics.daily_sales_cny, order_metrics.daily_sales_cny,
order_metrics.total_daily_sales_cny, order_metrics.total_daily_sales_cny,
order_metrics.daily_sales_myr, order_metrics.daily_sales_myr,
@@ -253,14 +282,14 @@ exchange_rate_join_order_metrics AS (
'{{ modules.datetime.datetime.now(modules.pytz.timezone("Asia/Kuala_Lumpur")) }}' AS _dbt_ran_datetime '{{ modules.datetime.datetime.now(modules.pytz.timezone("Asia/Kuala_Lumpur")) }}' AS _dbt_ran_datetime
FROM rate_comparison FROM exchange_amount_compute
LEFT JOIN order_metrics LEFT JOIN order_metrics
ON ON
( (
rate_comparison.exchange_rate_date = order_metrics.order_date exchange_amount_compute.exchange_rate_date = order_metrics.order_date
AND rate_comparison.service_type = order_metrics.service_type AND exchange_amount_compute.service_type = order_metrics.service_type
AND rate_comparison.payment_method = order_metrics.order_payment_method AND exchange_amount_compute.payment_method = order_metrics.order_payment_method
) )
), ),
@@ -296,6 +325,13 @@ final__rep_exchange__exchange_rate_analysis AS (
total_daily_sales_cny, total_daily_sales_cny,
daily_sales_myr, daily_sales_myr,
total_daily_sales_myr, total_daily_sales_myr,
median_amount_percent_difference,
upper_bound_median_amount_percent_difference,
lower_bound_median_amount_percent_difference,
average_amount_percent_difference,
upper_bound_average_amount_percent_difference,
lower_bound_average_amount_percent_difference,
comparison_average_percent_difference,
-- date/times -- date/times
exchange_rate_date, exchange_rate_date,