customeranalytics 0.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- customeranalytics/__init__.py +319 -0
- customeranalytics/configs.py +480 -0
- customeranalytics/data_storage_configurations/__init__.py +245 -0
- customeranalytics/data_storage_configurations/data_access.py +165 -0
- customeranalytics/data_storage_configurations/data_works_pipeline.py +207 -0
- customeranalytics/data_storage_configurations/es_create_index.py +544 -0
- customeranalytics/data_storage_configurations/logger.py +36 -0
- customeranalytics/data_storage_configurations/query_es.py +157 -0
- customeranalytics/data_storage_configurations/reports.py +684 -0
- customeranalytics/data_storage_configurations/schedule_data_integration.py +355 -0
- customeranalytics/docs/queries.yaml +245 -0
- customeranalytics/docs/web_configs.yaml +2 -0
- customeranalytics/exploratory_analysis/__init__.py +109 -0
- customeranalytics/exploratory_analysis/churn.py +232 -0
- customeranalytics/exploratory_analysis/cohorts.py +535 -0
- customeranalytics/exploratory_analysis/descriptive_statistics.py +470 -0
- customeranalytics/exploratory_analysis/funnels.py +407 -0
- customeranalytics/exploratory_analysis/product_analytics.py +340 -0
- customeranalytics/exploratory_analysis/promotion_analytics.py +299 -0
- customeranalytics/exploratory_analysis/rfm.py +202 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_avg_order_count_per_promo_per_cust.csv +99 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_chart_1_search.csv +2 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_chart_2_search.csv +46 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_chart_3_search.csv +2 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_chart_4_search.csv +2 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_churn.csv +2 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_churn_weekly.csv +10 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_client_feature_predicted.csv +1590 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_client_kpis.csv +7060 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_clvrfm_anomaly.csv +561 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_clvsegments_amount.csv +8 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_customer_journey.csv +18 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_daily_clv.csv +103 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_daily_cohort_downloads.csv +68 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_daily_cohort_from_1_to_2.csv +66 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_daily_cohort_from_2_to_3.csv +64 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_daily_cohort_from_3_to_4.csv +55 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_daily_dimension_values.csv +199 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_daily_funnel.csv +36 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_daily_funnel_downloads.csv +68 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_daily_inorganic_ratio.csv +6070 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_daily_orders.csv +57 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_daily_organic_orders.csv +64 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_daily_products_of_sales.csv +12574 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_daily_promotion_discount.csv +64 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_daily_promotion_revenue.csv +6070 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_dcohort_anomaly.csv +6 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_dcohort_anomaly_2.csv +118 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_deliver.csv +47 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_deliver_kpis.csv +2 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_deliver_weekday_hour.csv +25 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_dfunnel_anomaly.csv +118 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_dimension_kpis.csv +199 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_dorders_anomaly.csv +85 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_frequency_clusters.csv +6 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_frequency_recency.csv +3740 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_hourly_funnel.csv +25 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_hourly_funnel_downloads.csv +25 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_hourly_inorganic_ratio.csv +2353 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_hourly_orders.csv +25 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_hourly_organic_orders.csv +2353 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_inorganic_orders_per_promotion_per_day.csv +6070 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_kpis.csv +2 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_monetary_clusters.csv +6 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_monetary_frequency.csv +3740 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_monthly_funnel.csv +5 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_monthly_funnel_downloads.csv +5 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_monthly_orders.csv +4 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_most_combined_products.csv +11 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_most_ordered_categories.csv +11 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_most_ordered_products.csv +11 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_order_and_payment_amount_differences.csv +91 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_prepare.csv +101 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_prepare_weekday_hour.csv +25 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_product_kpis.csv +201 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_product_usage_before_after_amount_accept.csv +11 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_product_usage_before_after_amount_reject.csv +7 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_product_usage_before_after_orders_accept.csv +11 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_product_usage_before_after_orders_reject.csv +11 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_promotion_comparison.csv +91 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_promotion_kpis.csv +99 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_promotion_number_of_customer.csv +99 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_promotion_usage_before_after_amount_accept.csv +81 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_promotion_usage_before_after_amount_reject.csv +11 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_promotion_usage_before_after_orders_accept.csv +55 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_promotion_usage_before_after_orders_reject.csv +37 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_purchase_amount_distribution.csv +22 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_recency_clusters.csv +6 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_recency_monetary.csv +3740 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_rfm.csv +2001 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_ride.csv +101 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_ride_weekday_hour.csv +25 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_segmentation.csv +11 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_segments_change_daily_before_after_amount.csv +10 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_segments_change_daily_before_after_orders.csv +9 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_segments_change_monthly_before_after_amount.csv +10 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_segments_change_monthly_before_after_orders.csv +11 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_segments_change_weekly_before_after_amount.csv +10 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_segments_change_weekly_before_after_orders.csv +10 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_user_counts_per_order_seq.csv +47 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_weekly_average_order_per_user.csv +13 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_weekly_average_payment_amount.csv +13 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_weekly_average_session_per_user.csv +13 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_weekly_cohort_downloads.csv +13 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_weekly_cohort_from_1_to_2.csv +13 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_weekly_cohort_from_2_to_3.csv +13 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_weekly_cohort_from_3_to_4.csv +12 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_weekly_funnel.csv +25 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_weekly_funnel_downloads.csv +25 -0
- customeranalytics/exploratory_analysis/sample_data/sample_data_weekly_orders.csv +10 -0
- customeranalytics/ml_process/__init__.py +64 -0
- customeranalytics/ml_process/ab_test.py +615 -0
- customeranalytics/ml_process/anomaly_detection.py +456 -0
- customeranalytics/ml_process/clv_prediction.py +301 -0
- customeranalytics/ml_process/customer_segmentation.py +354 -0
- customeranalytics/ml_process/delivery_analytics.py +754 -0
- customeranalytics/utils.py +186 -0
- customeranalytics/web/app/__init__.py +37 -0
- customeranalytics/web/app/base/__init__.py +9 -0
- customeranalytics/web/app/base/forms.py +16 -0
- customeranalytics/web/app/base/models.py +43 -0
- customeranalytics/web/app/base/routes.py +126 -0
- customeranalytics/web/app/base/static/assets/css/app.css +20 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-Black.woff +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-Black.woff2 +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-BlackItalic.woff +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-BlackItalic.woff2 +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-Bold.woff +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-Bold.woff2 +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-BoldItalic.woff +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-BoldItalic.woff2 +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-ExtraBold.woff +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-ExtraBold.woff2 +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-ExtraBoldItalic.woff +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-ExtraBoldItalic.woff2 +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-ExtraLight-BETA.woff +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-ExtraLight-BETA.woff2 +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-ExtraLightItalic-BETA.woff +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-ExtraLightItalic-BETA.woff2 +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-Italic.woff +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-Italic.woff2 +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-Light-BETA.woff +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-Light-BETA.woff2 +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-LightItalic-BETA.woff +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-LightItalic-BETA.woff2 +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-Medium.woff +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-Medium.woff2 +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-MediumItalic.woff +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-MediumItalic.woff2 +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-Regular.woff +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-Regular.woff2 +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-SemiBold.woff +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-SemiBold.woff2 +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-SemiBoldItalic.woff +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-SemiBoldItalic.woff2 +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-Thin-BETA.woff +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-Thin-BETA.woff2 +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-ThinItalic-BETA.woff +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-ThinItalic-BETA.woff2 +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-italic.var.woff2 +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter-upright.var.woff2 +0 -0
- customeranalytics/web/app/base/static/assets/fonts/Inter.var.woff2 +0 -0
- customeranalytics/web/app/base/static/assets/fonts/fa-brands-400.eot +0 -0
- customeranalytics/web/app/base/static/assets/fonts/fa-brands-400.svg +3570 -0
- customeranalytics/web/app/base/static/assets/fonts/fa-brands-400.ttf +0 -0
- customeranalytics/web/app/base/static/assets/fonts/fa-brands-400.woff +0 -0
- customeranalytics/web/app/base/static/assets/fonts/fa-brands-400.woff2 +0 -0
- customeranalytics/web/app/base/static/assets/fonts/fa-regular-400.eot +0 -0
- customeranalytics/web/app/base/static/assets/fonts/fa-regular-400.svg +801 -0
- customeranalytics/web/app/base/static/assets/fonts/fa-regular-400.ttf +0 -0
- customeranalytics/web/app/base/static/assets/fonts/fa-regular-400.woff +0 -0
- customeranalytics/web/app/base/static/assets/fonts/fa-regular-400.woff2 +0 -0
- customeranalytics/web/app/base/static/assets/fonts/fa-solid-900.eot +0 -0
- customeranalytics/web/app/base/static/assets/fonts/fa-solid-900.svg +5028 -0
- customeranalytics/web/app/base/static/assets/fonts/fa-solid-900.ttf +0 -0
- customeranalytics/web/app/base/static/assets/fonts/fa-solid-900.woff +0 -0
- customeranalytics/web/app/base/static/assets/fonts/fa-solid-900.woff2 +0 -0
- customeranalytics/web/app/base/static/assets/img/avatars/avatar-1.png +0 -0
- customeranalytics/web/app/base/static/assets/img/avatars/avatar-2.png +0 -0
- customeranalytics/web/app/base/static/assets/img/avatars/avatar-3.png +0 -0
- customeranalytics/web/app/base/static/assets/img/avatars/avatar-4.png +0 -0
- customeranalytics/web/app/base/static/assets/img/avatars/avatar-5.png +0 -0
- customeranalytics/web/app/base/static/assets/img/avatars/info.jpeg +0 -0
- customeranalytics/web/app/base/static/assets/img/icons/customanality.png +0 -0
- customeranalytics/web/app/base/static/assets/img/icons/icon-48x48.png +0 -0
- customeranalytics/web/app/base/static/assets/js/app.js +2 -0
- customeranalytics/web/app/base/static/assets/js/app.js.LICENSE +566 -0
- customeranalytics/web/app/base/static/assets/js/app.js.LICENSE.txt +556 -0
- customeranalytics/web/app/base/static/assets/js/modules/bootstrap.js +15 -0
- customeranalytics/web/app/base/static/assets/js/modules/chartjs.js +4 -0
- customeranalytics/web/app/base/static/assets/js/modules/feather.js +8 -0
- customeranalytics/web/app/base/static/assets/js/modules/flatpickr.js +4 -0
- customeranalytics/web/app/base/static/assets/js/modules/moment.js +4 -0
- customeranalytics/web/app/base/static/assets/js/modules/sidebar.js +23 -0
- customeranalytics/web/app/base/static/assets/js/modules/theme.js +16 -0
- customeranalytics/web/app/base/templates/accounts/login.html +81 -0
- customeranalytics/web/app/base/templates/accounts/register.html +80 -0
- customeranalytics/web/app/base/templates/includes/footer.html +28 -0
- customeranalytics/web/app/base/templates/includes/navigation.html +51 -0
- customeranalytics/web/app/base/templates/includes/scripts.html +3 -0
- customeranalytics/web/app/base/templates/includes/sidebar.html +146 -0
- customeranalytics/web/app/base/templates/layouts/base-fullscreen.html +36 -0
- customeranalytics/web/app/base/templates/layouts/base.html +84 -0
- customeranalytics/web/app/base/util.py +30 -0
- customeranalytics/web/app/home/__init__.py +9 -0
- customeranalytics/web/app/home/forms.py +1039 -0
- customeranalytics/web/app/home/models.py +438 -0
- customeranalytics/web/app/home/profiles.py +310 -0
- customeranalytics/web/app/home/routes.py +386 -0
- customeranalytics/web/app/home/search.py +288 -0
- customeranalytics/web/app/home/static/assets/img/avatars/avatar-1.png +0 -0
- customeranalytics/web/app/home/static/assets/img/avatars/avatar-2.png +0 -0
- customeranalytics/web/app/home/static/assets/img/avatars/avatar-3.png +0 -0
- customeranalytics/web/app/home/static/assets/img/avatars/avatar-4.png +0 -0
- customeranalytics/web/app/home/static/assets/img/avatars/avatar-5.png +0 -0
- customeranalytics/web/app/home/static/assets/img/icons/customanality.png +0 -0
- customeranalytics/web/app/home/static/assets/img/icons/icon-48x48.png +0 -0
- customeranalytics/web/app/home/templates/abtest-product.html +280 -0
- customeranalytics/web/app/home/templates/abtest-promotion.html +362 -0
- customeranalytics/web/app/home/templates/abtest-segments.html +298 -0
- customeranalytics/web/app/home/templates/add-data-delivery.html +184 -0
- customeranalytics/web/app/home/templates/add-data-product.html +177 -0
- customeranalytics/web/app/home/templates/add-data-purchase.html +392 -0
- customeranalytics/web/app/home/templates/anomaly.html +261 -0
- customeranalytics/web/app/home/templates/clv.html +211 -0
- customeranalytics/web/app/home/templates/cohorts.html +308 -0
- customeranalytics/web/app/home/templates/customer-segmentation.html +308 -0
- customeranalytics/web/app/home/templates/data-es.html +152 -0
- customeranalytics/web/app/home/templates/data-execute.html +397 -0
- customeranalytics/web/app/home/templates/delivery.html +404 -0
- customeranalytics/web/app/home/templates/funnel-customer.html +240 -0
- customeranalytics/web/app/home/templates/funnel-session.html +236 -0
- customeranalytics/web/app/home/templates/index.html +524 -0
- customeranalytics/web/app/home/templates/index2.html +515 -0
- customeranalytics/web/app/home/templates/page-403.html +46 -0
- customeranalytics/web/app/home/templates/page-404.html +45 -0
- customeranalytics/web/app/home/templates/page-500.html +45 -0
- customeranalytics/web/app/home/templates/pages-blank.html +33 -0
- customeranalytics/web/app/home/templates/pages-sign-in.html +67 -0
- customeranalytics/web/app/home/templates/pages-sign-up.html +61 -0
- customeranalytics/web/app/home/templates/product.html +203 -0
- customeranalytics/web/app/home/templates/profile.html +1009 -0
- customeranalytics/web/app/home/templates/rfm.html +254 -0
- customeranalytics/web/app/home/templates/search.html +167 -0
- customeranalytics/web/app/home/templates/settings.html +205 -0
- customeranalytics/web/app/home/templates/stats-desc.html +230 -0
- customeranalytics/web/app/home/templates/stats-purchase.html +221 -0
- customeranalytics/web/config.py +30 -0
- customeranalytics/web/db.sqlite3 +0 -0
- customeranalytics/web/run.py +30 -0
- customeranalytics-0.1.dist-info/METADATA +1102 -0
- customeranalytics-0.1.dist-info/RECORD +254 -0
- customeranalytics-0.1.dist-info/WHEEL +4 -0
- customeranalytics-0.1.dist-info/licenses/LICENSE +21 -0
|
@@ -0,0 +1,404 @@
|
|
|
1
|
+
{% extends "layouts/base.html" %}
|
|
2
|
+
|
|
3
|
+
{% block title %} Delivery analytics {% endblock %}
|
|
4
|
+
|
|
5
|
+
<!-- Specific Page CSS goes HERE -->
|
|
6
|
+
{% block stylesheets %}{% endblock stylesheets %}
|
|
7
|
+
|
|
8
|
+
{% block content %}
|
|
9
|
+
|
|
10
|
+
<main class="content">
|
|
11
|
+
<div class="container-fluid p-0">
|
|
12
|
+
<h5 class="h3 mb-3">Delivery Analytics</h5>
|
|
13
|
+
<div class="col-md-12">
|
|
14
|
+
<div class="card">
|
|
15
|
+
<div class="card-body">
|
|
16
|
+
<div class="row">
|
|
17
|
+
<div class="accordion" id="accordionExample">
|
|
18
|
+
<div class="card">
|
|
19
|
+
<div class="card-header" id="headingOne">
|
|
20
|
+
<h5 class="card-title my-1">
|
|
21
|
+
<a href="#" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne" style="color:green;font-size:12px">
|
|
22
|
+
Filters
|
|
23
|
+
</a>
|
|
24
|
+
</h5>
|
|
25
|
+
</div>
|
|
26
|
+
<div id="collapseOne" class="collapse" aria-labelledby="headingOne" data-parent="#accordionExample">
|
|
27
|
+
<form method="POST">
|
|
28
|
+
<div class="row">
|
|
29
|
+
<div class="col-md-6">
|
|
30
|
+
<div class="card">
|
|
31
|
+
<div class="card-body">
|
|
32
|
+
<div class="card">
|
|
33
|
+
<div class="card-header">
|
|
34
|
+
<h5 class="card-title mb-0">Dimension selection</h5>
|
|
35
|
+
</div>
|
|
36
|
+
<div class="card-body">
|
|
37
|
+
<select name="index" id="index" class="form-control">
|
|
38
|
+
{% for d in filters['dimensions'] %}
|
|
39
|
+
{% if d == 'There is no available report. Please execute Schedule Data Process' %}
|
|
40
|
+
<option value= "main">{{ d }}</option>
|
|
41
|
+
{% endif %}
|
|
42
|
+
{% if d != 'There is no available report. Please execute Schedule Data Process' %}
|
|
43
|
+
<option value="{{ d }}">{{ d }}</option>
|
|
44
|
+
{% endif %}
|
|
45
|
+
{% endfor %}
|
|
46
|
+
</select>
|
|
47
|
+
</div>
|
|
48
|
+
</div>
|
|
49
|
+
</div>
|
|
50
|
+
</div>
|
|
51
|
+
</div>
|
|
52
|
+
|
|
53
|
+
<div class="col-md-6">
|
|
54
|
+
<div class="card flex-fil">
|
|
55
|
+
<div class="card-body col-12">
|
|
56
|
+
<div class="col-12 ">
|
|
57
|
+
<div class="align-self-center w-100">
|
|
58
|
+
<div class="chart">
|
|
59
|
+
<input name="date" id="datetimepicker-dashboard" hidden>
|
|
60
|
+
</div>
|
|
61
|
+
</div>
|
|
62
|
+
</div>
|
|
63
|
+
</div>
|
|
64
|
+
</div>
|
|
65
|
+
</div>
|
|
66
|
+
|
|
67
|
+
<div class="card-header">
|
|
68
|
+
<button type="submit" class="btn btn-pill btn-primary">Apply</button>
|
|
69
|
+
</div>
|
|
70
|
+
</div>
|
|
71
|
+
</form>
|
|
72
|
+
</div>
|
|
73
|
+
</div>
|
|
74
|
+
|
|
75
|
+
<div class="card">
|
|
76
|
+
<div class="card-header" id="headingTwo">
|
|
77
|
+
<h5 class="card-title my-1">
|
|
78
|
+
<a href="#" data-toggle="collapse" data-target="#collapseTwo" aria-expanded="true" aria-controls="collapseOne" style="color:green;font-size:12px">
|
|
79
|
+
Infos
|
|
80
|
+
</a>
|
|
81
|
+
</h5>
|
|
82
|
+
</div>
|
|
83
|
+
<div id="collapseTwo" class="collapse show" aria-labelledby="headingTwo" data-parent="#accordionExample">
|
|
84
|
+
<div class="card-body ">
|
|
85
|
+
<ul>
|
|
86
|
+
<li>
|
|
87
|
+
<strong style="color:green;">Delivery Analytics</strong> is the process related to businesses of Logistic Departments.
|
|
88
|
+
This dashboard gives the general idea of the durations from the date ordered via customers to the date that the customers are received the products.
|
|
89
|
+
This dashboard will only be filled with real data if the delivery data source is created.
|
|
90
|
+
</li>
|
|
91
|
+
<li>
|
|
92
|
+
<div class="card-header">
|
|
93
|
+
There are 3 kind of date can be applied when the delivery data source is created.
|
|
94
|
+
</div>
|
|
95
|
+
<li>
|
|
96
|
+
<div class="card-header">
|
|
97
|
+
<h5 class="card-title" style="color:green;">Delivery Date (Required)</h5>
|
|
98
|
+
It is the date when the order is arrived to the customers.
|
|
99
|
+
It is the timestamp when the delivery person is arrived to the delivery location.
|
|
100
|
+
</div>
|
|
101
|
+
</li>
|
|
102
|
+
|
|
103
|
+
<li>
|
|
104
|
+
<div class="card-header">
|
|
105
|
+
<h5 class="card-title" style="color:green;">Return Date</h5>
|
|
106
|
+
It is the date when the delivery person returns back to the first location after the order is delivered.
|
|
107
|
+
</div>
|
|
108
|
+
</li>
|
|
109
|
+
|
|
110
|
+
<li>
|
|
111
|
+
<div class="card-header">
|
|
112
|
+
<h5 class="card-title" style="color:green;">Prepare Date</h5>
|
|
113
|
+
It is the date when the orders is ready to deliver.
|
|
114
|
+
</div>
|
|
115
|
+
</li>
|
|
116
|
+
|
|
117
|
+
<li>
|
|
118
|
+
<div class="card-header">
|
|
119
|
+
<h5 class="card-title" style="color:green;">Deliver Duration</h5>
|
|
120
|
+
It is total duration between order purchased date and order of delivered date to the customer.
|
|
121
|
+
</div>
|
|
122
|
+
</li>
|
|
123
|
+
|
|
124
|
+
<li>
|
|
125
|
+
<div class="card-header">
|
|
126
|
+
<h5 class="card-title" style="color:green;">Prepare Duration</h5>
|
|
127
|
+
It is total duration between order purchased date and ordered prepared date.
|
|
128
|
+
</div>
|
|
129
|
+
</li>
|
|
130
|
+
|
|
131
|
+
<li>
|
|
132
|
+
<div class="card-header">
|
|
133
|
+
<h5 class="card-title" style="color:green;">Ride Duration</h5>
|
|
134
|
+
It is total duration between order purchased date and
|
|
135
|
+
the date which the delivery person returns to the first location after the order is delivered.
|
|
136
|
+
</div>
|
|
137
|
+
</li>
|
|
138
|
+
|
|
139
|
+
<li>
|
|
140
|
+
<div class="card-header">
|
|
141
|
+
<h5 class="card-title" style="color:green;">Return Duration</h5>
|
|
142
|
+
It is the total duration between the order delivery date and
|
|
143
|
+
the date on which the delivery person returns to the first location after the order is delivered.
|
|
144
|
+
</div>
|
|
145
|
+
</li>
|
|
146
|
+
|
|
147
|
+
<li>
|
|
148
|
+
<div class="card-header">
|
|
149
|
+
<h5 class="card-title" style="color:green;">Delivery Location (Latitude - Longitude)</h5>
|
|
150
|
+
Each delivery location can be pinned with latitudes - longitudes while the delivery data source is created.
|
|
151
|
+
Latitudes and Longitudes are not mandatory, but map charts in the dashboard needs locations.
|
|
152
|
+
</div>
|
|
153
|
+
</li>
|
|
154
|
+
|
|
155
|
+
</li>
|
|
156
|
+
<li>
|
|
157
|
+
<div class="card-header">
|
|
158
|
+
<h5 class="card-title" style="color:green;">What kind of Charts does the dashboard includes?</h5>
|
|
159
|
+
There are 2 types of charts. Both types of charts are related to abnormal durations according to delivery - ride -prepare durations.
|
|
160
|
+
These charts are abnormal durations per weekday per hour on the heatmap and abnormal durations per location on the map.
|
|
161
|
+
</div>
|
|
162
|
+
</li>
|
|
163
|
+
<li>
|
|
164
|
+
<div class="card-header">
|
|
165
|
+
<h5 class="card-title" style="color:green;">Abnormal Durations per weekday per hour</h5>
|
|
166
|
+
Usually, the durations are affected by the day of the hour and the week of the day.
|
|
167
|
+
Hours between 17:00 pm and 20:00 pm on the weekdays won`t be the similar durations Distributions as Hours in the morning during the weekdays.
|
|
168
|
+
For another comparison instance, delivery durations at the weekend won`t be similar to durations for the weekdays.
|
|
169
|
+
This type of chart allows us to see the whole picture weekly and detect which hours are highly possible to assign as abnormal.
|
|
170
|
+
Numbers are scaled between 0 and 1 on each cell at the charts which do not represent the duration values.
|
|
171
|
+
</div>
|
|
172
|
+
</li>
|
|
173
|
+
<li>
|
|
174
|
+
<div class="card-header">
|
|
175
|
+
<h5 class="card-title" style="color:green;">Average Durations per Location</h5>
|
|
176
|
+
Each location represents delivery locations. It is possible that there are orders more than once for each location.
|
|
177
|
+
The average duration per location is represented with the map which is centralized with the average of latitude and longitude.
|
|
178
|
+
</div>
|
|
179
|
+
</li>
|
|
180
|
+
<li>
|
|
181
|
+
<div class="card-header">
|
|
182
|
+
<h5 class="card-title" style="color:green;">Delivery KPIs</h5>
|
|
183
|
+
General metrics in order to follow up on how the delivery system is running at the business.
|
|
184
|
+
</div>
|
|
185
|
+
<li>
|
|
186
|
+
<div class="card-header">
|
|
187
|
+
<h5 class="card-title" style="color:green;"> Average Delivery Duration (min)</h5> Average delivery duration of all purchased transactions.
|
|
188
|
+
</div>
|
|
189
|
+
</li>
|
|
190
|
+
|
|
191
|
+
<li>
|
|
192
|
+
<div class="card-header">
|
|
193
|
+
<h5 class="card-title" style="color:green;"> Average Prepare Duration (min)</h5> Average prepare duration of all purchased transactions.
|
|
194
|
+
</div>
|
|
195
|
+
</li>
|
|
196
|
+
<li>
|
|
197
|
+
<div class="card-header">
|
|
198
|
+
<h5 class="card-title" style="color:green;"> Average Ride Duration (min)</h5> Average ride duration of all purchased transactions.
|
|
199
|
+
</div>
|
|
200
|
+
</li>
|
|
201
|
+
|
|
202
|
+
<li>
|
|
203
|
+
<div class="card-header">
|
|
204
|
+
<h5 class="card-title" style="color:green;"> Average Return Duration (min)</h5> Average return duration of all purchased transactions.
|
|
205
|
+
</div>
|
|
206
|
+
</li>
|
|
207
|
+
|
|
208
|
+
<li>
|
|
209
|
+
<div class="card-header">
|
|
210
|
+
<h5 class="card-title" style="color:green;"> Total Number Location (min)</h5> Total delivered locations of all purchased transactions.
|
|
211
|
+
</div>
|
|
212
|
+
</li>
|
|
213
|
+
</li>
|
|
214
|
+
</ul>
|
|
215
|
+
</div>
|
|
216
|
+
</div>
|
|
217
|
+
</div>
|
|
218
|
+
</div>
|
|
219
|
+
</div>
|
|
220
|
+
<div class="row">
|
|
221
|
+
<div class="col-md-12">
|
|
222
|
+
<div class="w-100">
|
|
223
|
+
<div class="row">
|
|
224
|
+
<div class="col-sm-2">
|
|
225
|
+
<div class="card" style="height:145px;">
|
|
226
|
+
<div class="card-body">
|
|
227
|
+
<h5 class="card-title mb-4">Average Delivery Duration (min) {% if data_type['deliver'] == False %} <strong style="color:red;"> sample data </strong> {% endif %}</h5>
|
|
228
|
+
<h1 class="mt-1 mb-3">{{ kpis.deliver }}</h1>
|
|
229
|
+
</div>
|
|
230
|
+
</div>
|
|
231
|
+
</div>
|
|
232
|
+
<div class="col-sm-2">
|
|
233
|
+
<div class="card" style="height:145px;">
|
|
234
|
+
<div class="card-body">
|
|
235
|
+
<h5 class="card-title mb-4">Average Prepare Duration (min) {% if data_type['prepare'] == False %} <strong style="color:red;"> sample data </strong> {% endif %}</h5>
|
|
236
|
+
<h1 class="mt-1 mb-3">{{ kpis.prepare }}</h1>
|
|
237
|
+
</div>
|
|
238
|
+
</div>
|
|
239
|
+
</div>
|
|
240
|
+
<div class="col-sm-2">
|
|
241
|
+
<div class="card" style="height:145px;">
|
|
242
|
+
<div class="card-body">
|
|
243
|
+
<h5 class="card-title mb-4">Average Ride Duration (min) {% if data_type['ride'] == False %} <strong style="color:red;"> sample data </strong> {% endif %}</h5>
|
|
244
|
+
<h1 class="mt-1 mb-3">{{ kpis.ride }}</h1>
|
|
245
|
+
</div>
|
|
246
|
+
</div>
|
|
247
|
+
</div>
|
|
248
|
+
<div class="col-sm-2">
|
|
249
|
+
<div class="card" style="height:145px;">
|
|
250
|
+
<div class="card-body">
|
|
251
|
+
<h5 class="card-title mb-4">Average Return Duration (min) {% if data_type['returns'] == False %} <strong style="color:red;"> sample data </strong> {% endif %}</h5>
|
|
252
|
+
<h1 class="mt-1 mb-3">{{ kpis.returns }}</h1>
|
|
253
|
+
</div>
|
|
254
|
+
</div>
|
|
255
|
+
</div>
|
|
256
|
+
<div class="col-sm-2">
|
|
257
|
+
<div class="card" style="height:145px;">
|
|
258
|
+
<div class="card-body">
|
|
259
|
+
<h5 class="card-title mb-4">Total Number Location (min) {% if data_type['total_locations'] == False %} <strong style="color:red;"> sample data </strong> {% endif %}</h5>
|
|
260
|
+
<h1 class="mt-1 mb-3">{{ kpis.total_locations }}</h1>
|
|
261
|
+
</div>
|
|
262
|
+
</div>
|
|
263
|
+
</div>
|
|
264
|
+
|
|
265
|
+
</div>
|
|
266
|
+
</div>
|
|
267
|
+
</div>
|
|
268
|
+
|
|
269
|
+
<div class="col-md-12">
|
|
270
|
+
<div class="card">
|
|
271
|
+
<div class="card-header">
|
|
272
|
+
<h5 class="card-title">Abnormal <strong>Deliver Duration</strong> Breakdown with Hour Weekday {% if data_type['deliver_weekday_hour'] == False %} <strong style="color:red;"> sample data </strong> {% endif %}</h5>
|
|
273
|
+
</div>
|
|
274
|
+
<div class="card-body">
|
|
275
|
+
<div id="d_w_h_id" class="plotly-gra ph-div" style="height:400px;"></div>
|
|
276
|
+
</div>
|
|
277
|
+
</div>
|
|
278
|
+
</div>
|
|
279
|
+
|
|
280
|
+
<div class="col-md-12">
|
|
281
|
+
<div class="card">
|
|
282
|
+
<div class="card-header">
|
|
283
|
+
<h5 class="card-title">Average <strong>Deliver Duration</strong> per Location {% if data_type['deliver'] == False %} <strong style="color:red;"> sample data </strong> {% endif %}</h5>
|
|
284
|
+
</div>
|
|
285
|
+
<div class="card-body">
|
|
286
|
+
<div id="deliver_id" class="plotly-gra ph-div" style="height:400px;"></div>
|
|
287
|
+
</div>
|
|
288
|
+
</div>
|
|
289
|
+
</div>
|
|
290
|
+
|
|
291
|
+
<div class="col-md-6">
|
|
292
|
+
<div class="card">
|
|
293
|
+
<div class="card-header">
|
|
294
|
+
<h5 class="card-title">Abnormal <strong>Ride Duration</strong> Breakdown with Hour Weekday {% if data_type['ride_weekday_hour'] == False %} <strong style="color:red;"> sample data </strong> {% endif %}</h5>
|
|
295
|
+
</div>
|
|
296
|
+
<div class="card-body">
|
|
297
|
+
<div id="r_w_h_id" class="plotly-gra ph-div" style="height:400px;"></div>
|
|
298
|
+
</div>
|
|
299
|
+
</div>
|
|
300
|
+
</div>
|
|
301
|
+
|
|
302
|
+
<div class="col-md-6">
|
|
303
|
+
<div class="card">
|
|
304
|
+
<div class="card-header">
|
|
305
|
+
<h5 class="card-title">Average <strong>Ride Duration</strong> per Location (100 Sample) {% if data_type['ride'] == False %} <strong style="color:red;"> sample data </strong> {% endif %}</h5>
|
|
306
|
+
</div>
|
|
307
|
+
<div class="card-body">
|
|
308
|
+
<div id="ride_id" class="plotly-gra ph-div" style="height:400px;"></div>
|
|
309
|
+
</div>
|
|
310
|
+
</div>
|
|
311
|
+
</div>
|
|
312
|
+
|
|
313
|
+
<div class="col-md-6">
|
|
314
|
+
<div class="card">
|
|
315
|
+
<div class="card-header">
|
|
316
|
+
<h5 class="card-title">Abnormal <strong>Prepare Duration</strong> Breakdown with Hour Weekday {% if data_type['ride_weekday_hour'] == False %} <strong style="color:red;"> sample data </strong> {% endif %}</h5>
|
|
317
|
+
</div>
|
|
318
|
+
<div class="card-body">
|
|
319
|
+
<div id="p_w_h_id" class="plotly-gra ph-div" style="height:400px;"></div>
|
|
320
|
+
</div>
|
|
321
|
+
</div>
|
|
322
|
+
</div>
|
|
323
|
+
|
|
324
|
+
<div class="col-md-6">
|
|
325
|
+
<div class="card">
|
|
326
|
+
<div class="card-header">
|
|
327
|
+
<h5 class="card-title">Average <strong>Prepare Duration</strong> per Location (100 Sample) {% if data_type['ride'] == False %} <strong style="color:red;"> sample data </strong> {% endif %}</h5>
|
|
328
|
+
</div>
|
|
329
|
+
<div class="card-body">
|
|
330
|
+
<div id="prepare_id" class="plotly-gra ph-div" style="height:400px;"></div>
|
|
331
|
+
</div>
|
|
332
|
+
</div>
|
|
333
|
+
</div>
|
|
334
|
+
</div>
|
|
335
|
+
</div>
|
|
336
|
+
</div>
|
|
337
|
+
</div>
|
|
338
|
+
</div>
|
|
339
|
+
</main>
|
|
340
|
+
|
|
341
|
+
{% endblock content %}
|
|
342
|
+
|
|
343
|
+
<!-- Specific Page JS goes HERE -->
|
|
344
|
+
{% block javascripts %}
|
|
345
|
+
<script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
|
|
346
|
+
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.6/d3.min.js"></script>
|
|
347
|
+
<script>
|
|
348
|
+
|
|
349
|
+
var d = {{deliver | safe}};
|
|
350
|
+
|
|
351
|
+
Plotly.plot('deliver_id', // the ID of the div, created above
|
|
352
|
+
d.trace, d.layout, {});
|
|
353
|
+
|
|
354
|
+
var d_w_h = {{deliver_weekday_hour | safe}};
|
|
355
|
+
|
|
356
|
+
Plotly.plot('d_w_h_id', // the ID of the div, created above
|
|
357
|
+
d_w_h.trace, d_w_h.layout, {});
|
|
358
|
+
|
|
359
|
+
var r = {{ride | safe}};
|
|
360
|
+
|
|
361
|
+
Plotly.plot('ride_id', // the ID of the div, created above
|
|
362
|
+
r.trace, r.layout, {});
|
|
363
|
+
|
|
364
|
+
var r_w_h = {{ride_weekday_hour | safe}};
|
|
365
|
+
|
|
366
|
+
Plotly.plot('r_w_h_id', // the ID of the div, created above
|
|
367
|
+
r_w_h.trace, r_w_h.layout, {});
|
|
368
|
+
|
|
369
|
+
var p = {{prepare | safe}};
|
|
370
|
+
|
|
371
|
+
Plotly.plot('prepare_id', // the ID of the div, created above
|
|
372
|
+
r.trace, r.layout, {});
|
|
373
|
+
|
|
374
|
+
var p_w_h = {{prepare_weekday_hour | safe}};
|
|
375
|
+
|
|
376
|
+
Plotly.plot('p_w_h_id', // the ID of the div, created above
|
|
377
|
+
p_w_h.trace, p_w_h.layout, {});
|
|
378
|
+
|
|
379
|
+
function myFunction() {
|
|
380
|
+
// Get the checkbox
|
|
381
|
+
var checkBox = document.getElementById("myCheck");
|
|
382
|
+
// Get the output text
|
|
383
|
+
var text = document.getElementById("text");
|
|
384
|
+
|
|
385
|
+
// If the checkbox is checked, display the output text
|
|
386
|
+
if (checkBox.checked == true){
|
|
387
|
+
text.style.display = "block";
|
|
388
|
+
} else {
|
|
389
|
+
text.style.display = "none";
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
</script>
|
|
393
|
+
|
|
394
|
+
<script>
|
|
395
|
+
document.addEventListener("DOMContentLoaded", function() {
|
|
396
|
+
document.getElementById("datetimepicker-dashboard").flatpickr({
|
|
397
|
+
inline: true,
|
|
398
|
+
|
|
399
|
+
prevArrow: "<span class=\"fas fa-chevron-left\" title=\"Previous month\"></span>",
|
|
400
|
+
nextArrow: "<span class=\"fas fa-chevron-right\" title=\"Next month\"></span>",
|
|
401
|
+
});
|
|
402
|
+
});
|
|
403
|
+
</script>
|
|
404
|
+
{% endblock javascripts %}
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
{% extends "layouts/base.html" %}
|
|
2
|
+
|
|
3
|
+
{% block title %} Funnel - Customers {% endblock %}
|
|
4
|
+
|
|
5
|
+
<!-- Specific Page CSS goes HERE -->
|
|
6
|
+
{% block stylesheets %}{% endblock stylesheets %}
|
|
7
|
+
|
|
8
|
+
{% block content %}
|
|
9
|
+
|
|
10
|
+
<main class="content">
|
|
11
|
+
<div class="container-fluid p-0">
|
|
12
|
+
<h5 class="h3 mb-3">Customers Of Actions Funnel</h5>
|
|
13
|
+
<div class="col-md-12">
|
|
14
|
+
<div class="accordion" id="accordionExample">
|
|
15
|
+
<div class="card">
|
|
16
|
+
<div class="card-header" id="headingOne">
|
|
17
|
+
<h5 class="card-title my-1">
|
|
18
|
+
<a href="#" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne" style="color:green;font-size:12px">
|
|
19
|
+
Filters
|
|
20
|
+
</a>
|
|
21
|
+
</h5>
|
|
22
|
+
</div>
|
|
23
|
+
<div id="collapseOne" class="collapse" aria-labelledby="headingOne" data-parent="#accordionExample">
|
|
24
|
+
<form method="POST">
|
|
25
|
+
<div class="row">
|
|
26
|
+
<div class="col-md-6">
|
|
27
|
+
<div class="card">
|
|
28
|
+
<div class="card-body">
|
|
29
|
+
<div class="card">
|
|
30
|
+
<div class="card-header">
|
|
31
|
+
<h5 class="card-title mb-0">Dimension selection</h5>
|
|
32
|
+
</div>
|
|
33
|
+
<div class="card-body">
|
|
34
|
+
<select name="index" id="index" class="form-control">
|
|
35
|
+
{% for d in filters['dimensions'] %}
|
|
36
|
+
{% if d == 'There is no available report. Please execute Schedule Data Process' %}
|
|
37
|
+
<option value= "main">{{ d }}</option>
|
|
38
|
+
{% endif %}
|
|
39
|
+
{% if d != 'There is no available report. Please execute Schedule Data Process' %}
|
|
40
|
+
<option value="{{ d }}">{{ d }}</option>
|
|
41
|
+
{% endif %}
|
|
42
|
+
{% endfor %}
|
|
43
|
+
</select>
|
|
44
|
+
</div>
|
|
45
|
+
</div>
|
|
46
|
+
</div>
|
|
47
|
+
</div>
|
|
48
|
+
</div>
|
|
49
|
+
|
|
50
|
+
<div class="col-md-6">
|
|
51
|
+
<div class="card flex-fil">
|
|
52
|
+
<div class="card-body col-12">
|
|
53
|
+
<div class="col-12 ">
|
|
54
|
+
<div class="align-self-center w-100">
|
|
55
|
+
<div class="chart">
|
|
56
|
+
<input name="date" id="datetimepicker-dashboard" hidden>
|
|
57
|
+
</div>
|
|
58
|
+
</div>
|
|
59
|
+
</div>
|
|
60
|
+
</div>
|
|
61
|
+
</div>
|
|
62
|
+
</div>
|
|
63
|
+
|
|
64
|
+
<div class="card-header">
|
|
65
|
+
<button type="submit" class="btn btn-pill btn-primary">Apply</button>
|
|
66
|
+
</div>
|
|
67
|
+
</div>
|
|
68
|
+
</form>
|
|
69
|
+
</div>
|
|
70
|
+
</div>
|
|
71
|
+
|
|
72
|
+
<div class="card">
|
|
73
|
+
<div class="card-header" id="headingTwo">
|
|
74
|
+
<h5 class="card-title my-1">
|
|
75
|
+
<a href="#" data-toggle="collapse" data-target="#collapseTwo" aria-expanded="true" aria-controls="collapseOne" style="color:green;font-size:12px">
|
|
76
|
+
Infos
|
|
77
|
+
</a>
|
|
78
|
+
</h5>
|
|
79
|
+
</div>
|
|
80
|
+
<div id="collapseTwo" class="collapse show" aria-labelledby="headingTwo" data-parent="#accordionExample">
|
|
81
|
+
<div class="card-body ">
|
|
82
|
+
<ul>
|
|
83
|
+
<li>
|
|
84
|
+
<strong style="color:green;">Customers Funnels</strong> are aggregated count of events per customer according to time periods.
|
|
85
|
+
They are started to be counted from the user first engagement event such as download or signup.
|
|
86
|
+
</li>
|
|
87
|
+
<li>
|
|
88
|
+
<div class="card-header">
|
|
89
|
+
<h5 class="card-title" style="color:green;">What is the Customer of Action?</h5>
|
|
90
|
+
After the user creation event, there might be more events which are probably stored in your system which they are called
|
|
91
|
+
<strong style="color:green;">Customer Actions</strong>. Example of these kind of actions; Adding Payment Method, Adding Location,first order transaction, etc.
|
|
92
|
+
|
|
93
|
+
Customer Actions are able to be added to ElasticSearch indexes manually while it is connecting the Customers data Source.
|
|
94
|
+
In the page <strong style="color:green;">Sessions & Customers Data Source</strong>, columns name of the actions are specified in the
|
|
95
|
+
<strong style="color:green;">Action Column Names in Data Source</strong>.
|
|
96
|
+
</div>
|
|
97
|
+
|
|
98
|
+
</li>
|
|
99
|
+
|
|
100
|
+
<li>
|
|
101
|
+
<div class="card-header">
|
|
102
|
+
<h5 class="card-title" style="color:green;">What are Time Periods of Funnels?</h5>
|
|
103
|
+
There are daily, weekly, monthly and hourly Funnels. daily, weekly, monthly Funnels are calculated as total transaction count per action per day/week/month.
|
|
104
|
+
Hourly Funnel is calculated as average of total transaction count per action per hour
|
|
105
|
+
</div>
|
|
106
|
+
</li>
|
|
107
|
+
<li>
|
|
108
|
+
<div class="card-header">
|
|
109
|
+
<h5 class="card-title" style="color:green;">How do I see the Dimensional Funnel?</h5>
|
|
110
|
+
Each Dimensionally Funnels is created individually for dimension.
|
|
111
|
+
Dimension columns are also specified in the page <strong style="color:green;">Sessions & Customers Data Source</strong>.
|
|
112
|
+
After that, you may select dimension from filters section.
|
|
113
|
+
</div>
|
|
114
|
+
</li>
|
|
115
|
+
|
|
116
|
+
<li>
|
|
117
|
+
<div class="card-header">
|
|
118
|
+
<h5 class="card-title" style="color:green;">How do I select Funnels of start - end dates?</h5>
|
|
119
|
+
Funnels of start date is not able to be selected. However it is possible to select end date from filters section.
|
|
120
|
+
</div>
|
|
121
|
+
</li>
|
|
122
|
+
</ul>
|
|
123
|
+
</div>
|
|
124
|
+
</div>
|
|
125
|
+
</div>
|
|
126
|
+
</div>
|
|
127
|
+
|
|
128
|
+
<div class="card">
|
|
129
|
+
<div class="card-header">
|
|
130
|
+
<h5 class="card-title"><strong>Customers of Action</strong> </h5>
|
|
131
|
+
</div>
|
|
132
|
+
|
|
133
|
+
<div class="card-body">
|
|
134
|
+
<div class="row">
|
|
135
|
+
<div class="col-md-6">
|
|
136
|
+
<div class="card">
|
|
137
|
+
<div class="card-header">
|
|
138
|
+
<h5 class="card-title">Daily Funnel {% if data_type['daily_funnel'] == False %} <strong style="color:red;"> sample data </strong> {% endif %}</h5>
|
|
139
|
+
</div>
|
|
140
|
+
<div id="d_funnel" class="plotly-gra ph-div" style="height:400px;"></div>
|
|
141
|
+
</div>
|
|
142
|
+
</div>
|
|
143
|
+
<div class="col-md-6">
|
|
144
|
+
<div class="card">
|
|
145
|
+
<div class="card-header">
|
|
146
|
+
<h5 class="card-title">Weekly Funnel {% if data_type['weekly_funnel'] == False %} <strong style="color:red;"> sample data </strong> {% endif %}</h5>
|
|
147
|
+
</div>
|
|
148
|
+
<div class="card-body">
|
|
149
|
+
<div id="w_funnel" class="plotly-gra ph-div" style="height:400px;"></div>
|
|
150
|
+
</div>
|
|
151
|
+
</div>
|
|
152
|
+
</div>
|
|
153
|
+
</div>
|
|
154
|
+
<div class="row">
|
|
155
|
+
<div class="col-md-6">
|
|
156
|
+
<div class="card">
|
|
157
|
+
<div class="card-header">
|
|
158
|
+
<h5 class="card-title">Monthly Funnel {% if data_type['monthly_funnel'] == False %} <strong style="color:red;"> sample data </strong> {% endif %}</h5>
|
|
159
|
+
</div>
|
|
160
|
+
<div class="card-body">
|
|
161
|
+
<div id="m_funnel" class="plotly-gra ph-div" style="height:400px;"></div>
|
|
162
|
+
</div>
|
|
163
|
+
</div>
|
|
164
|
+
</div>
|
|
165
|
+
<div class="col-md-6">
|
|
166
|
+
<div class="card">
|
|
167
|
+
<div class="card-header">
|
|
168
|
+
<h5 class="card-title">Hourly Funnel {% if data_type['hourly_funnel'] == False %} <strong style="color:red;"> sample data </strong> {% endif %}</h5>
|
|
169
|
+
</div>
|
|
170
|
+
<div class="card-body">
|
|
171
|
+
<div id="h_funnel" class="plotly-gra ph-div" style="height:400px;"></div>
|
|
172
|
+
</div>
|
|
173
|
+
</div>
|
|
174
|
+
</div>
|
|
175
|
+
</div>
|
|
176
|
+
</div>
|
|
177
|
+
</div>
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
</div>
|
|
181
|
+
</div>
|
|
182
|
+
</main>
|
|
183
|
+
|
|
184
|
+
{% endblock content %}
|
|
185
|
+
|
|
186
|
+
<!-- Specific Page JS goes HERE -->
|
|
187
|
+
{% block javascripts %}
|
|
188
|
+
<script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
|
|
189
|
+
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.6/d3.min.js"></script>
|
|
190
|
+
<script>
|
|
191
|
+
|
|
192
|
+
var d_f = {{daily_funnel | safe}};
|
|
193
|
+
|
|
194
|
+
Plotly.plot('d_funnel', // the ID of the div, created above
|
|
195
|
+
d_f.trace, d_f.layout, {});
|
|
196
|
+
|
|
197
|
+
var w_f = {{weekly_funnel | safe}};
|
|
198
|
+
|
|
199
|
+
Plotly.plot('w_funnel', // the ID of the div, created above
|
|
200
|
+
w_f.trace, w_f.layout, {});
|
|
201
|
+
|
|
202
|
+
var m_f = {{monthly_funnel | safe}};
|
|
203
|
+
|
|
204
|
+
Plotly.plot('m_funnel', // the ID of the div, created above
|
|
205
|
+
m_f.trace, m_f.layout, {});
|
|
206
|
+
|
|
207
|
+
var h_f = {{hourly_funnel | safe}};
|
|
208
|
+
|
|
209
|
+
Plotly.plot('h_funnel', // the ID of the div, created above
|
|
210
|
+
h_f.trace, h_f.layout, {});
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
function myFunction() {
|
|
216
|
+
// Get the checkbox
|
|
217
|
+
var checkBox = document.getElementById("myCheck");
|
|
218
|
+
// Get the output text
|
|
219
|
+
var text = document.getElementById("text");
|
|
220
|
+
|
|
221
|
+
// If the checkbox is checked, display the output text
|
|
222
|
+
if (checkBox.checked == true){
|
|
223
|
+
text.style.display = "block";
|
|
224
|
+
} else {
|
|
225
|
+
text.style.display = "none";
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
</script>
|
|
229
|
+
|
|
230
|
+
<script>
|
|
231
|
+
document.addEventListener("DOMContentLoaded", function() {
|
|
232
|
+
document.getElementById("datetimepicker-dashboard").flatpickr({
|
|
233
|
+
inline: true,
|
|
234
|
+
|
|
235
|
+
prevArrow: "<span class=\"fas fa-chevron-left\" title=\"Previous month\"></span>",
|
|
236
|
+
nextArrow: "<span class=\"fas fa-chevron-right\" title=\"Next month\"></span>",
|
|
237
|
+
});
|
|
238
|
+
});
|
|
239
|
+
</script>
|
|
240
|
+
{% endblock javascripts %}
|