;;
+ }
+ view: TabLayout {
+ label: 'View 1'
+ tab tab1: CanvasLayout {
+ label: 'Overview'
+ width: 1380
+ height: 1160
+ grid_size: 20
+ block hd1 {
+ position: pos(1160, 20, 180, 60)
+ }
+ block hd3 {
+ position: pos(0, 0, 1380, 200)
+ layer: -1
+ }
+ block t2 {
+ position: pos(40, 100, 660, 50)
+ }
+ block v1 {
+ position: pos(60, 700, 780, 380)
+ }
+ block v2 {
+ position: pos(80, 340, 300, 140)
+ }
+ block v10 {
+ position: pos(80, 500, 300, 140)
+ }
+ block v12 {
+ position: pos(440, 340, 880, 300)
+ layer: -1
+ }
+ block t5 {
+ position: pos(40, 220, 1300, 80)
+ }
+ block t10 {
+ position: pos(760, 100, 180, 60)
+ }
+ block t11 {
+ position: pos(960, 100, 180, 60)
+ }
+ block t12 {
+ position: pos(1160, 100, 180, 60)
+ }
+ block t49 {
+ position: pos(40, 680, 1300, 420)
+ layer: -2
+ }
+ block t52 {
+ position: pos(420, 320, 920, 340)
+ layer: -2
+ }
+ block t53 {
+ position: pos(40, 320, 400, 340)
+ layer: -2
+ }
+ }
+ tab tab2: CanvasLayout {
+ label: 'Country'
+ height: 800
+ grid_size: 20
+ mobile {
+ mode: 'auto'
+ }
+ }
+ }
+ settings {
+ timezone: 'America/Los_Angeles'
+ cache_duration: 10
+ }
+}
\ No newline at end of file
diff --git a/team-folders/Bao/column_width.page.aml b/team-folders/Bao/column_width.page.aml
new file mode 100644
index 00000000..15bd3ba7
--- /dev/null
+++ b/team-folders/Bao/column_width.page.aml
@@ -0,0 +1,289 @@
+Dashboard column_width {
+ title: 'Column Width'
+ description: ''''''
+
+ view: CanvasLayout {
+ label: 'View 1'
+ height: 1880
+ grid_size: 20
+ block v1 {
+ position: pos(0, 0, 1200, 260)
+ }
+ block v2 {
+ position: pos(0, 260, 1200, 280)
+ }
+ block v3 {
+ position: pos(0, 560, 1120, 1300)
+ layer: 1
+ }
+ }
+
+ theme: H.themes.classic
+ block v1: VizBlock {
+ label: 'avc'
+ viz: DataTable {
+ dataset: global_temps
+ theme {
+
+ }
+ fields: [
+ VizFieldFull {
+ ref: ref('persisted_global_temps', 'year')
+ format {
+ type: 'number'
+ pattern: 'inherited'
+ }
+ uname: 'persisted_global_temps_year'
+ },
+ VizFieldFull {
+ ref: ref('persisted_global_temps', 'jan')
+ format {
+ type: 'number'
+ pattern: 'inherited'
+ }
+ uname: 'persisted_global_temps_jan'
+ },
+ VizFieldFull {
+ ref: ref('persisted_global_temps', 'apr')
+ format {
+ type: 'number'
+ pattern: 'inherited'
+ }
+ uname: 'persisted_global_temps_apr'
+ },
+ VizFieldFull {
+ ref: ref('persisted_global_temps', 'may')
+ format {
+ type: 'number'
+ pattern: 'inherited'
+ }
+ uname: 'persisted_global_temps_may'
+ },
+ VizFieldFull {
+ ref: ref('persisted_global_temps', 'jul')
+ format {
+ type: 'number'
+ pattern: 'inherited'
+ }
+ uname: 'persisted_global_temps_jul'
+ },
+ VizFieldFull {
+ ref: ref('persisted_global_temps', 'oct')
+ format {
+ type: 'number'
+ pattern: 'inherited'
+ }
+ }
+ ]
+ settings {
+ show_row_number: true
+ conditional_formats: [
+ ConditionalFormat {
+ key: 'persisted_global_temps_year'
+ format: SingleFormat {
+ condition {
+ operator: 'less_than'
+ value: 1900
+ }
+ text_color: '#BF0E08'
+ background_color: '#FAD2D1'
+ apply_to_row: true
+ }
+ },
+ ConditionalFormat {
+ key: 'persisted_global_temps_year'
+ format: SingleFormat {
+ condition {
+ operator: 'greater_than_equal'
+ value: 1900
+ }
+ text_color: '#328159'
+ background_color: '#B5E3CD'
+ apply_to_row: true
+ }
+ }
+ ]
+ row_limit: 5000
+ aggregate_awareness {
+ enabled: true
+ debug_comments: true
+ }
+ column_styles: [
+ ColumnStyle {
+ key: 'persisted_global_temps_apr'
+ width: 119
+ },
+ ColumnStyle {
+ key: 'persisted_global_temps_jan'
+ width: 164
+ },
+ ColumnStyle {
+ key: 'persisted_global_temps_jul'
+ width: 169
+ },
+ ColumnStyle {
+ key: 'persisted_global_temps_may'
+ width: 186
+ },
+ ColumnStyle {
+ key: 'persisted_global_temps_year'
+ width: 163
+ }
+ ]
+ }
+ }
+ }
+ block v2: VizBlock {
+ label: 'abc'
+ viz: PivotTable {
+ dataset: global_temps
+ rows: [
+ VizFieldFull {
+ ref: ref('persisted_global_temps', 'year')
+ format {
+ type: 'number'
+ pattern: 'inherited'
+ }
+ uname: 'persisted_global_temps_year'
+ }
+ ]
+ columns: [
+ VizFieldFull {
+ ref: ref('persisted_global_temps', 'jun')
+ format {
+ type: 'number'
+ pattern: 'inherited'
+ }
+ }
+ ]
+ values: [
+ VizFieldFull {
+ ref: ref('persisted_global_temps', 'son')
+ aggregation: 'sum'
+ format {
+ type: 'number'
+ pattern: 'inherited'
+ }
+ uname: 'sum_son'
+ }
+ ]
+ settings {
+ show_row_total: true
+ show_column_total: true
+ row_limit: 5000
+ column_width {
+ manual_widths: [
+ ColumnWidth {
+ key: 'sum_son'
+ width: 155
+ },
+ ColumnWidth {
+ key: 'persisted_global_temps_year'
+ width: 133
+ }
+ ]
+ }
+ aggregate_awareness {
+ enabled: true
+ debug_comments: true
+ }
+ }
+ }
+ }
+ block v3: VizBlock {
+ label: 'wabc'
+ viz: DataTable {
+ dataset: demo_ecommerce_internal_training
+ theme {
+
+ }
+ fields: [
+ VizFieldFull {
+ ref: ref('ecommerce_orders', 'id')
+ format {
+ type: 'number'
+ pattern: 'inherited'
+ }
+ uname: 'ecommerce_orders_id'
+ },
+ VizFieldFull {
+ ref: ref('ecommerce_orders', 'status')
+ format {
+ type: 'text'
+ }
+ },
+ VizFieldFull {
+ ref: ref('ecommerce_orders', 'created_at')
+ format {
+ type: 'datetime'
+ }
+ },
+ VizFieldFull {
+ ref: ref('ecommerce_orders', 'discount')
+ format {
+ type: 'number'
+ pattern: 'inherited'
+ }
+ },
+ VizFieldFull {
+ ref: ref('ecommerce_orders', 'delivery_attempts')
+ format {
+ type: 'number'
+ pattern: 'inherited'
+ }
+ },
+ VizFieldFull {
+ ref: ref('ecommerce_orders', 'created_date')
+ format {
+ type: 'date'
+ }
+ }
+ ]
+ settings {
+ show_row_number: true
+ conditional_formats: [
+ ConditionalFormat {
+ key: 'ecommerce_orders_id'
+ format: SingleFormat {
+ condition {
+ operator: 'less_than'
+ value: 1000
+ }
+ text_color: '#BF0E08'
+ background_color: '#FAD2D1'
+ apply_to_row: true
+ }
+ },
+ ConditionalFormat {
+ key: 'ecommerce_orders_id'
+ format: SingleFormat {
+ condition {
+ operator: 'greater_than_equal'
+ value: 1000
+ }
+ text_color: '#9C5C1C'
+ background_color: '#F0CFAD'
+ apply_to_row: true
+ }
+ },
+ ConditionalFormat {
+ key: 'ecommerce_orders_id'
+ format: SingleFormat {
+ condition {
+ operator: 'greater_than_equal'
+ value: 1500
+ }
+ text_color: '#328159'
+ background_color: '#B5E3CD'
+ apply_to_row: true
+ }
+ }
+ ]
+ aggregate_awareness {
+ enabled: true
+ debug_comments: true
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/team-folders/Bao/font.page.aml b/team-folders/Bao/font.page.aml
index bdb02eae..22cada97 100644
--- a/team-folders/Bao/font.page.aml
+++ b/team-folders/Bao/font.page.aml
@@ -234,7 +234,7 @@ Dashboard mou_olga_tmp {
-
\. This dashboard contains an overview of DW`s monthly online usage. This includes
+ This dashboard contains an overview of DW`s monthly online usage. This includes
views on all DW own websites and social media accounts as well as on all website and social media cooperations.
diff --git a/team-folders/Chinh/dashboards/american_housing_dashboard_chinh_test.page.aml b/team-folders/Chinh/dashboards/american_housing_dashboard_chinh_test.page.aml
deleted file mode 100644
index 185f6964..00000000
--- a/team-folders/Chinh/dashboards/american_housing_dashboard_chinh_test.page.aml
+++ /dev/null
@@ -1,192 +0,0 @@
-Dashboard american_housing_dashboard_chinh_test {
- title: 'American Housing Dashboard Chinh Test'
- description: ''
-
- view: CanvasLayout {
- label: 'View 1'
- width: 1560
- height: 860
- grid_size: 20
- auto_expand_vertically: true
- mobile {
- mode: 'auto'
- }
- block v_t1pe {
- position: pos(20, 120, 900, 680)
- layer: 1
- }
- block f_3ye5 {
- position: pos(20, 20, 280, 80)
- layer: 2
- }
- block v_s64q {
- position: pos(940, 120, 600, 680)
- layer: 3
- }
- block t_0fo0 {
- position: pos(300, 20, 140, 80)
- layer: 4
- }
- }
- theme: H.themes.classic
- block v_t1pe: VizBlock {
- label: 'Map'
- viz: PointMap {
- dataset: american_housing_data_chinh_test
- lng: VizFieldFull {
- ref: r(zipcode_data_american_housing_data.longitude)
- format {
- type: 'number'
- pattern: 'inherited'
- }
- }
- lat: VizFieldFull {
- ref: r(zipcode_data_american_housing_data.latitude)
- format {
- type: 'number'
- pattern: 'inherited'
- }
- }
- value: VizFieldFull {
- ref: r(american_housing_data_chinh_test.total_price)
- format {
- type: 'number'
- pattern: 'inherited'
- }
- }
- legend: VizFieldFull {
- ref: r(american_housing_data_chinh_test, zipcode_data_american_housing_data.divider_legend)
- format {
- type: 'text'
- }
- }
- tooltips: [
- ]
- settings {
- point_size: 4
- legend_colors {
- color: '#FDE725'
- point {
- value: 'LOW'
- color: '#18A59E'
- }
- point {
- value: 'HIGH'
- color: '#D70909'
- }
- }
- aggregate_awareness {
- enabled: true
- debug_comments: true
- }
- }
- }
- }
- block f_3ye5: FilterBlock {
- label: 'Divider'
- type: 'field'
- source: FieldFilterSource {
- dataset: american_housing_data_chinh_test
- field: r(param_model.param_slider)
- }
- default {
- operator: 'is'
- value: '1145000'
- }
- }
- block v_s64q: VizBlock {
- label: 'Table'
- viz: DataTable {
- dataset: american_housing_data_chinh_test
- fields: [
- VizFieldFull {
- ref: r(zipcode_data_american_housing_data.latitude)
- format {
- type: 'number'
- pattern: 'inherited'
- }
- uname: 'zipcode_data_american_housing_data_latitude'
- },
- VizFieldFull {
- ref: r(zipcode_data_american_housing_data.longitude)
- format {
- type: 'number'
- pattern: 'inherited'
- }
- uname: 'zipcode_data_american_housing_data_longitude'
- },
- VizFieldFull {
- ref: r(american_housing_data_chinh_test.total_price)
- format {
- type: 'number'
- pattern: 'inherited'
- }
- uname: 'custom_total_price_1'
- },
- VizFieldFull {
- ref: r(american_housing_data_chinh_test, zipcode_data_american_housing_data.divider_legend)
- format {
- type: 'text'
- }
- uname: 'zipcode_data_american_housing_data_divider_legend'
- }
- ]
- settings {
- pagination_size: 500
- show_row_number: true
- sorts: [
- SortSetting {
- key: 'custom_total_price_1'
- direction: 'desc'
- }
- ]
- conditional_formats: [
- ConditionalFormat {
- key: 'zipcode_data_american_housing_data_divider_legend'
- format: SingleFormat {
- condition {
- operator: 'is'
- value: 'LOW'
- }
- text_color: '#328159'
- background_color: '#B5E3CD'
- }
- },
- ConditionalFormat {
- key: 'zipcode_data_american_housing_data_divider_legend'
- format: SingleFormat {
- condition {
- operator: 'is'
- value: 'HIGH'
- }
- text_color: '#BF0E08'
- background_color: '#FAD2D1'
- }
- }
- ]
- aggregate_awareness {
- enabled: true
- debug_comments: true
- }
- column_styles: [
- ColumnStyle {
- key: 'custom_total_price_1'
- width: 109
- },
- ColumnStyle {
- key: 'zipcode_data_american_housing_data_latitude'
- width: 95
- },
- ColumnStyle {
- key: 'zipcode_data_american_housing_data_longitude'
- width: 106
- }
- ]
- }
- }
- }
- block t_0fo0: TextBlock {
- content: @md
HIGH
-
LOW
;;
- }
-}
\ No newline at end of file
diff --git a/team-folders/Chinh/dashboards/chinh_dynamic_dashboard.page.aml b/team-folders/Chinh/dashboards/chinh_dynamic_dashboard.page.aml
deleted file mode 100644
index ff546862..00000000
--- a/team-folders/Chinh/dashboards/chinh_dynamic_dashboard.page.aml
+++ /dev/null
@@ -1,102 +0,0 @@
-Dashboard chinh_dynamic_dashboard {
- title: 'Chinh Dynamic Dashboard'
- description: ''
-
- view: CanvasLayout {
- label: 'View 1'
- width: 1300
- height: 740
- grid_size: 20
- auto_expand_vertically: true
- mobile {
- mode: 'auto'
- }
- block v_ufsz {
- position: pos(20, 100, 1260, 600)
- layer: 1
- }
- block f_ahqz {
- position: pos(20, 20, 300, 80)
- layer: 2
- }
- }
-
- theme: H.themes.vanilla
- block v_ufsz: VizBlock {
- label: 'Table'
- viz: DataTable {
- dataset: chinh_dynamic_dataset
- conditions: [
- 'chinh_dynamic_dim_model.order_created_at >= filter_input - interval(1 month)'
- ]
- fields: [
- VizFieldFull {
- ref: r(chinh_dynamic_dim_model.order_id)
- format {
- type: 'number'
- pattern: 'inherited'
- }
- },
- VizFieldFull {
- label: 'Created Date'
- ref: r(chinh_dynamic_dim_model.order_created_at)
- transformation: 'datetrunc day'
- format {
- type: 'date'
- pattern: 'LLL dd, yyyy'
- }
- uname: 'datetrunc_day_order_created_at_1'
- },
- VizFieldFull {
- label: 'Billing Date'
- ref: r(chinh_dynamic_dim_model.order_billing_at)
- transformation: 'datetrunc day'
- format {
- type: 'date'
- pattern: 'LLL dd, yyyy'
- }
- },
- VizFieldFull {
- ref: r(chinh_dynamic_dim_model.quantity)
- format {
- type: 'number'
- pattern: 'inherited'
- }
- },
- VizFieldFull {
- ref: r(chinh_dynamic_dim_model.price)
- format {
- type: 'number'
- pattern: 'inherited'
- }
- }
- ]
- settings {
- show_row_number: true
- sorts: [
- SortSetting {
- key: 'datetrunc_day_order_created_at_1'
- direction: 'asc'
- }
- ]
- row_limit: 5000
- aggregate_awareness {
- enabled: true
- debug_comments: true
- }
- }
- }
- }
- block f_ahqz: FilterBlock {
- label: "Filter's Input"
- type: 'field'
- source: FieldFilterSource {
- dataset: chinh_dynamic_dataset
- field: r(chinh_dynamic_dim_model.param_filter_input)
- }
- default {
- operator: 'matches'
- value: '$H_NIL$'
- }
- }
-}
\ No newline at end of file
diff --git a/team-folders/Chinh/dashboards/chinh_sandbox.page.aml b/team-folders/Chinh/dashboards/chinh_sandbox.page.aml
deleted file mode 100644
index 44140c0d..00000000
--- a/team-folders/Chinh/dashboards/chinh_sandbox.page.aml
+++ /dev/null
@@ -1,141 +0,0 @@
-Dashboard chinh_sandbox {
- title: 'Chinh Sandbox'
- description: ''
-
- view: CanvasLayout {
- label: 'View 1'
- width: 1300
- height: 900
- grid_size: 20
- auto_expand_vertically: true
- mobile {
- mode: 'auto'
- }
- block v_0m6g {
- position: pos(20, 100, 1260, 680)
- layer: 1
- }
- block f_nfvl {
- position: pos(20, 20, 300, 80)
- layer: 2
- }
- block f_dtbw {
- position: pos(340, 20, 300, 80)
- layer: 3
- }
- }
-
- theme: H.themes.vanilla
- block v_0m6g: VizBlock {
- label: 'Table'
- viz: DataTable {
- dataset: ticket_23584
- fields: [
- VizFieldFull {
- ref: r(chinh_dim_date.date)
- format {
- type: 'date'
- }
- uname: 'chinh_dim_date_date'
- },
- VizFieldFull {
- ref: r(chinh_dim_category.category)
- format {
- type: 'text'
- }
- uname: 'chinh_dim_category_category_1'
- },
- VizFieldFull {
- ref: r(ticket_23584, chinh_dim_category.active_category)
- format {
- type: 'number'
- pattern: 'inherited'
- }
- },
- VizFieldFull {
- ref: r(ticket_23584.total_amount)
- format {
- type: 'number'
- pattern: 'inherited'
- }
- }
- ]
- settings {
- show_row_number: true
- sorts: [
- SortSetting {
- key: 'chinh_dim_date_date'
- direction: 'desc'
- },
- SortSetting {
- key: 'chinh_dim_category_category_1'
- direction: 'asc'
- }
- ]
- conditional_formats: [
- ConditionalFormat {
- key: 'chinh_dim_date_date'
- format: SingleFormat {
- condition {
- operator: 'before'
- value: '2023-12-31'
- }
- text_color: '#BF0E08'
- background_color: '#FAD2D1'
- apply_to_row: true
- }
- }
- ]
- row_limit: 5000
- aggregate_awareness {
- enabled: true
- debug_comments: true
- }
- }
- }
- }
- block f_nfvl: FilterBlock {
- label: 'Category'
- type: 'field'
- source: FieldFilterSource {
- dataset: ticket_23584
- field: r(chinh_dim_category.category)
- }
- default {
- operator: 'is'
- value: []
- }
- }
- block f_dtbw: FilterBlock {
- label: 'Active Category'
- type: 'field'
- source: FieldFilterSource {
- dataset: ticket_23584
- field: r(ticket_23584, chinh_dim_category.active_category)
- }
- default {
- operator: 'is'
- value: []
- }
- }
- interactions: [
- FilterInteraction {
- from: 'f_nfvl'
- to: [
- CustomMapping {
- block: 'f_dtbw'
- disabled: true
- }
- ]
- },
- FilterInteraction {
- from: 'f_dtbw'
- to: [
- CustomMapping {
- block: 'f_nfvl'
- disabled: true
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/team-folders/Chinh/datasets/american_housing_data_chinh_test.dataset.aml b/team-folders/Chinh/datasets/american_housing_data_chinh_test.dataset.aml
deleted file mode 100644
index 246dd38a..00000000
--- a/team-folders/Chinh/datasets/american_housing_data_chinh_test.dataset.aml
+++ /dev/null
@@ -1,38 +0,0 @@
-Dataset american_housing_data_chinh_test {
- label: 'American Housing Data (Chinh Test)'
- description: 'To reproduce the use case of telegraph.io'
- data_source_name: 'demodb'
- owner: 'chinh.dm@holistics.io'
-
- models: [
- zipcode_data_american_housing_data,
- param_model,
- ]
- relationships: [
- ]
-
- metric total_price {
- label: 'Total Price'
- type: 'number'
- definition: @aql sum(zipcode_data_american_housing_data.price) ;;
- }
-
- metric divider {
- label: 'Dynamic Divider'
- type: 'text'
- definition: @aql
- case(
- when: total_price is null, then: 'IGNORE',
- when: total_price >= (param_model.param_slider | first()), then: 'HIGH',
- else: 'LOW'
- )
- ;;
- }
-
- dimension divider_legend {
- model: zipcode_data_american_housing_data
- label: 'Dynamic Divider Legend'
- type: 'text'
- definition: @aql dimensionalize(divider, zipcode_data_american_housing_data.longitude, zipcode_data_american_housing_data.latitude) ;;
- }
-}
diff --git a/team-folders/Chinh/datasets/chinh_dynamic_dataset.dataset.aml b/team-folders/Chinh/datasets/chinh_dynamic_dataset.dataset.aml
deleted file mode 100644
index d806241f..00000000
--- a/team-folders/Chinh/datasets/chinh_dynamic_dataset.dataset.aml
+++ /dev/null
@@ -1,42 +0,0 @@
-Dataset chinh_dynamic_dataset {
- label: 'chinh_dynamic_dataset',
- description: ''
- data_source_name: 'demodb'
- owner: 'chinh.dm@holistics.io'
-
- models: [
- chinh_dynamic_dim_model,
- param_model,
- ]
-
- metric filter_input {
- label: 'Fiter Input (Metric)'
- type: 'date'
- definition: @aql
- coalesce(
- chinh_dynamic_dim_model.param_filter_input | first(),
- chinh_dynamic_dim_model.order_billing_at | day()
- )
- ;;
- }
-
- metric total_value {
- label: 'Total Value'
- type: 'number'
- definition: @aql sum(chinh_dynamic_dim_model.quantity * chinh_dynamic_dim_model.price) ;;
- }
-
- metric running_total_value {
- label: 'Running Total Value'
- type: 'number'
- definition: @aql total_value | running_total(chinh_dynamic_dim_model.order_billing_at | day()) ;;
- }
-
- // metric end_created_date {
- // label: 'End Date Extracted From Param'
- // type: 'date'
- // definition: @aql chinh_dynamic_dim_model.filter_input | first() | max() ;;
- // }
-
- relationships: []
-}
\ No newline at end of file
diff --git a/team-folders/Chinh/datasets/holistics_ai_poc.dataset.aml b/team-folders/Chinh/datasets/holistics_ai_poc.dataset.aml
deleted file mode 100644
index 9df23f51..00000000
--- a/team-folders/Chinh/datasets/holistics_ai_poc.dataset.aml
+++ /dev/null
@@ -1,11 +0,0 @@
-Dataset holistics_ai_poc {
- label: 'Holistics Ai Poc'
- description: ''
- data_source_name: 'demodb'
- models: [
- common_payment_transfer
- ]
- relationships: [
- ]
- owner: 'chinh.dm@holistics.io'
-}
diff --git a/team-folders/Chinh/datasets/ticket_23584.dataset.aml b/team-folders/Chinh/datasets/ticket_23584.dataset.aml
deleted file mode 100644
index 970bb663..00000000
--- a/team-folders/Chinh/datasets/ticket_23584.dataset.aml
+++ /dev/null
@@ -1,50 +0,0 @@
-Dataset ticket_23584 {
- label: 'ticket_23584'
- description: ''
- data_source_name: 'demodb'
-
- models: [
- chinh_dim_date,
- chinh_dim_category,
- chinh_dim_product,
- chinh_fact_sales
- ]
-
- relationships: [
- relationship(chinh_fact_sales.product_id > chinh_dim_product.product_id, true),
- relationship(chinh_fact_sales.date_id > chinh_dim_date.date_id, true),
- relationship(chinh_dim_product.category_id > chinh_dim_category.category_id, true),
- ]
-
- metric total_amount {
- label: 'Total Amount'
- type: 'number'
- definition: @aql sum(chinh_fact_sales.sales_amount) ;;
- }
-
- dimension products_ordered_within_2_years {
- model: chinh_dim_category
- label: 'Products (ordered within 2 years)'
- type: 'number'
- definition: @aql
- dimensionalize(
- chinh_fact_sales
- | filter(chinh_fact_sales.created_at > @(last 2 years))
- | count(chinh_dim_product.product_id)
- , chinh_dim_category.category_id
- )
- ;;
- }
-
- dimension active_category {
- model: chinh_dim_category
- label: 'Active Category'
- type: 'text'
- definition: @aql
- case(
- when: chinh_dim_category.products_ordered_within_2_years > 0, then: chinh_dim_category.category,
- else: null
- )
- ;;
- }
-}
diff --git a/team-folders/Chinh/models/chinh_dim_category.model.aml b/team-folders/Chinh/models/chinh_dim_category.model.aml
deleted file mode 100644
index de783f7f..00000000
--- a/team-folders/Chinh/models/chinh_dim_category.model.aml
+++ /dev/null
@@ -1,39 +0,0 @@
-Model chinh_dim_category {
- type: 'query'
- label: 'Chinh Dim Category'
- description: ''
- data_source_name: 'demodb'
- dimension category_id {
- label: 'Category Id'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.category_id }};;
- }
- dimension category {
- label: 'Category'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.category }};;
- }
- dimension created_at {
- label: 'Created At'
- type: 'datetime'
- hidden: false
- definition: @sql {{ #SOURCE.created_at }};;
- }
-
- owner: 'chinh.dm@holistics.io'
- query: @sql
- SELECT *
- FROM (
- VALUES
- (1, 'Mains' , TIMESTAMP '2023-01-01 00:00:00'),
- (2, 'Appetizers' , TIMESTAMP '2023-01-01 00:00:00'),
- (3, 'Beverages' , TIMESTAMP '2023-01-01 00:00:00'),
- (4, 'Desserts' , TIMESTAMP '2023-01-01 00:00:00'),
- (5, 'Specials' , TIMESTAMP '2025-09-01 00:00:00')
- ) AS t(category_id, category, created_at)
- ORDER BY category_id;;
- models: [
- ]
-}
diff --git a/team-folders/Chinh/models/chinh_dim_date.model.aml b/team-folders/Chinh/models/chinh_dim_date.model.aml
deleted file mode 100644
index 5e431803..00000000
--- a/team-folders/Chinh/models/chinh_dim_date.model.aml
+++ /dev/null
@@ -1,61 +0,0 @@
-Model chinh_dim_date {
- type: 'query'
- label: 'Dim Date'
- description: ''
- data_source_name: 'demodb'
-
- dimension date_id {
- label: 'Date Id'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.date_id }};;
- }
- dimension date {
- label: 'Date'
- type: 'date'
- hidden: false
- definition: @sql {{ #SOURCE.date }};;
- }
- dimension year {
- label: 'Year'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.year }};;
- }
- dimension quarter {
- label: 'Quarter'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.quarter }};;
- }
- dimension month {
- label: 'Month'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.month }};;
- }
- dimension day {
- label: 'Day'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.day }};;
- }
-
- owner: 'chinh.dm@holistics.io'
- query: @sql
- WITH days AS (
- SELECT d::date AS date
- FROM generate_series('1970-01-01'::date, '2100-12-31'::date, interval '1 day') AS g(d)
- )
- SELECT
- TO_CHAR(date, 'YYYYMMDD')::int AS date_id,
- date,
- EXTRACT(YEAR FROM date)::int AS year,
- EXTRACT(QUARTER FROM date)::int AS quarter,
- EXTRACT(MONTH FROM date)::int AS month,
- EXTRACT(DAY FROM date)::int AS day
- FROM days
- ORDER BY date;;
- models: [
- ]
-}
diff --git a/team-folders/Chinh/models/chinh_dim_product.model.aml b/team-folders/Chinh/models/chinh_dim_product.model.aml
deleted file mode 100644
index dd271d1a..00000000
--- a/team-folders/Chinh/models/chinh_dim_product.model.aml
+++ /dev/null
@@ -1,61 +0,0 @@
-Model chinh_dim_product {
- type: 'query'
- label: 'Chinh Dim Product'
- description: ''
- data_source_name: 'demodb'
- dimension product_id {
- label: 'Product Id'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.product_id }};;
- }
- dimension product_name {
- label: 'Product Name'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.product_name }};;
- }
- dimension sku {
- label: 'Sku'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.sku }};;
- }
- dimension category_id {
- label: 'Category Id'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.category_id }};;
- }
- dimension created_at {
- label: 'Created At'
- type: 'date'
- hidden: false
- definition: @sql {{ #SOURCE.created_at }};;
- }
-
- owner: 'chinh.dm@holistics.io'
- query: @sql
- SELECT *
- FROM (
- VALUES
- (101, 'Beef Pho' , 'SKU-PHO-BEEF' , 1, DATE '2023-02-10'),
- (102, 'Chicken Pho' , 'SKU-PHO-CHK' , 1, DATE '2023-02-10'),
- (103, 'Banh Mi (Pork)' , 'SKU-BM-PORK' , 1, DATE '2023-03-01'),
-
- (201, 'Fresh Spring Rolls' , 'SKU-ROLL-FRESH' , 2, DATE '2023-03-05'),
- (202, 'Fried Spring Rolls' , 'SKU-ROLL-FRIED' , 2, DATE '2023-03-05'),
-
- (301, 'Vietnamese Iced Coffee','SKU-DRIP-ICE' , 3, DATE '2023-04-01'),
- (302, 'Lime Soda' , 'SKU-LIME-SODA' , 3, DATE '2023-04-10'),
-
- (401, 'Coconut Jelly' , 'SKU-COCO-JEL' , 4, DATE '2023-05-01'),
- (402, 'Mango Sticky Rice' , 'SKU-MANGO-RICE' , 4, DATE '2023-05-15'),
-
- (501, 'Pumpkin Soup (Seasonal)','SKU-SPEC-PUMP' , 5, DATE '2025-09-20')
- ) AS p(product_id, product_name, sku, category_id, created_at)
-
- ORDER BY product_id;;
- models: [
- ]
-}
diff --git a/team-folders/Chinh/models/chinh_dynamic_dim_model.model.aml b/team-folders/Chinh/models/chinh_dynamic_dim_model.model.aml
deleted file mode 100644
index e92559cf..00000000
--- a/team-folders/Chinh/models/chinh_dynamic_dim_model.model.aml
+++ /dev/null
@@ -1,145 +0,0 @@
-Model chinh_dynamic_dim_model {
- type: 'query'
- label: 'Chinh Dynamic Dim Model'
- description: ''
- data_source_name: 'demodb'
- owner: 'chinh.dm@holistics.io'
-
- dimension order_item_id {
- label: 'Order Item Id'
- type: 'number'
- hidden: false
- primary_key: true
- definition: @sql {{ #SOURCE.order_item_id }};;
- }
- dimension order_id {
- label: 'Order Id'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.order_id }};;
- }
- dimension user_email {
- label: 'User Email'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.user_email }};;
- }
- dimension gender {
- label: 'Gender'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.gender }};;
- }
- dimension status {
- label: 'Status'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.status }};;
- }
- dimension order_created_at {
- label: 'Order Created At'
- type: 'datetime'
- hidden: false
- definition: @sql {{ #SOURCE.order_created_at }};;
- }
- dimension order_billing_at {
- label: 'Order Billing At'
- type: 'datetime'
- hidden: false
- definition: @sql {{ #SOURCE.order_billing_at }};;
- }
- dimension delivery_attempts {
- label: 'Delivery Attempts'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.delivery_attempts }};;
- }
- dimension discount {
- label: 'Discount'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.discount }};;
- }
- dimension quantity {
- label: 'Quantity'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.quantity }};;
- }
- dimension product_id {
- label: 'Product Id'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.product_id }};;
- }
- dimension product_name {
- label: 'Product Name'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.product_name }};;
- }
- dimension price {
- label: 'Price'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.price }};;
- }
- dimension merchant_id {
- label: 'Merchant Id'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.merchant_id }};;
- }
- dimension city_name {
- label: 'City Name'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.city_name }};;
- }
- dimension country_name {
- label: 'Country Name'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.country_name }};;
- }
-
- param param_filter_input {
- label: "Filter Input (Param)"
- type: 'date'
- }
-
- query: @sql
- select
- concat({{#oi.order_id}}, '_', {{#oi.product_id}}) as order_item_id
- , {{#o.id}} as order_id
- , {{ #u.email }} as user_email
- , {{ #u.gender }}
- , {{#o.status }}
- , {{#o.created_at}} as order_created_at
- , {{#o.created_at}} + INTERVAL '1 month' as order_billing_at
- , {{#o.delivery_attempts}}
- , {{#o.discount}}
- , {{#oi.quantity}}
- , {{#oi.product_id}}
- , {{ #p.name }} as product_name
- , {{#p.price}}
- , {{#p.merchant_id}}
- , {{ #ci.name }} as city_name
- , {{ #co.name }} as country_name
- from {{ #ecommerce_order_items AS oi }}
- left join {{ #ecommerce_orders AS o }} on {{#oi.order_id}} = {{#o.id}}
- left join {{ #ecommerce_users AS u }} on {{ #o.user_id }} = {{ #u.id }}
- left join {{ #ecommerce_cities AS ci }} on {{ #u.city_id }} = {{ #ci.id }}
- left join {{ #ecommerce_countries AS co }} on {{ #ci.country_code }} = {{ #co.code }}
- left join {{ #ecommerce_products AS p }} on {{#oi.product_id}} = {{#p.id}}
- ;;
-
- models: [
- ecommerce_users,
- ecommerce_cities,
- ecommerce_orders,
- ecommerce_products,
- ecommerce_countries,
- ecommerce_order_items
- ]
-}
diff --git a/team-folders/Chinh/models/chinh_fact_sales.model.aml b/team-folders/Chinh/models/chinh_fact_sales.model.aml
deleted file mode 100644
index bad1b878..00000000
--- a/team-folders/Chinh/models/chinh_fact_sales.model.aml
+++ /dev/null
@@ -1,85 +0,0 @@
-Model chinh_fact_sales {
- type: 'query'
- label: 'Chinh Fact Sales'
- description: ''
- data_source_name: 'demodb'
- dimension sale_id {
- label: 'Sale Id'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.sale_id }};;
- }
- dimension date_id {
- label: 'Date Id'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.date_id }};;
- }
- dimension product_id {
- label: 'Product Id'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.product_id }};;
- }
- dimension quantity {
- label: 'Quantity'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.quantity }};;
- }
- dimension unit_price {
- label: 'Unit Price'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.unit_price }};;
- }
- dimension sales_amount {
- label: 'Sales Amount'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.sales_amount }};;
- }
- dimension currency_code {
- label: 'Currency Code'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.currency_code }};;
- }
- dimension created_at {
- label: 'Created At'
- type: 'datetime'
- hidden: false
- definition: @sql {{ #SOURCE.created_at }};;
- }
-
- owner: 'chinh.dm@holistics.io'
- query: @sql
- -- Sample fact_sales rows (VALUES)
- -- Dates span the dim_date sample range and include the new "Specials" category
- SELECT *
- FROM (
- VALUES
- -- 2025-09-27
- (10009, 20250927, 101, 1.0, 6.50, 6.50, 'USD', TIMESTAMP '2025-09-27 19:10:00'),
- (10010, 20250927, 301, 2.0, 3.00, 6.00, 'USD', TIMESTAMP '2025-09-27 19:12:00'),
-
- -- 2025-09-28
- (10011, 20250928, 102, 2.0, 6.00, 12.00, 'USD', TIMESTAMP '2025-09-28 12:15:00'),
- (10012, 20250928, 402, 1.0, 4.50, 4.50, 'USD', TIMESTAMP '2025-09-28 12:20:00'),
- (10013, 20250928, 302, 1.0, 2.50, 2.50, 'USD', TIMESTAMP '2025-09-28 12:22:00'),
-
- -- 2025-09-30
- (10014, 20250930, 103, 3.0, 5.00, 15.00, 'USD', TIMESTAMP '2025-09-30 18:40:00'),
- (10015, 20250930, 201, 2.0, 4.00, 8.00, 'USD', TIMESTAMP '2025-09-30 18:45:00'),
-
- -- 2022-06-06
- (10019, 20221031, 501, 2.0, 5.50, 11.00, 'USD', TIMESTAMP '2022-10-31 19:00:00'),
- (10020, 20221031, 501, 1.0, 6.00, 6.00, 'USD', TIMESTAMP '2022-10-31 19:02:00'),
- (10021, 20221031, 501, 1.0, 2.50, 2.50, 'USD', TIMESTAMP '2022-10-31 19:05:00')
- ) AS f(
- sale_id, date_id, product_id, quantity, unit_price, sales_amount, currency_code, created_at
- )
- ORDER BY sale_id;;
- models: [
- ]
-}
diff --git a/team-folders/Chinh/models/common_payment_transfer.model.aml b/team-folders/Chinh/models/common_payment_transfer.model.aml
deleted file mode 100644
index 71223a24..00000000
--- a/team-folders/Chinh/models/common_payment_transfer.model.aml
+++ /dev/null
@@ -1,675 +0,0 @@
-Model common_payment_transfer {
- type: 'query'
- label: 'Common Payment Transfer: used to simulate user feedback https://holistics.slack.com/archives/C04Q67M9V96/p1751870891648409'
- description: ''
- data_source_name: 'demodb'
- owner: 'chinh.dm@holistics.io'
-
- dimension event_id {
- label: 'Event Id'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.event_id }};;
- description: 'Unique ID for each event such as a change in the transaction status.'
- }
- dimension session_id {
- label: 'Session Id'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.session_id }};;
- description: 'Unique ID for each transaction status.'
- }
- dimension auth_transaction_id {
- label: 'Auth Transaction Id'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.auth_transaction_id }};;
- description: 'Unique ID for the authorisation step of each transaction.'
- }
- dimension transfer_id {
- label: 'Transfer Id'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.transfer_id }};;
- description: 'Unique ID for each transaction which is used to obtain transaction count.'
- }
- dimension customer_id {
- label: 'Customer Id'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.customer_id }};;
- description: 'Unique ID of the customer.'
- }
- dimension display_id {
- label: 'Display Id'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.display_id }};;
- description: 'Display ID.'
- }
- dimension amount {
- label: 'Amount'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.amount }};;
- description: 'Amount of the transaction.'
- }
- dimension currency {
- label: 'Currency'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.currency }};;
- description: 'Currency.'
- }
- dimension transfer_type {
- label: 'Transfer Type'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.transfer_type }};;
- description: 'Transfer type such as CREDIT_CARD, LOAN and FUND_TRANSFER.'
- }
- dimension status {
- label: 'Status'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.status }};;
- description: 'Status of the transaction follows the sequence such as CREATED, SUSPENDED, UNSUSPENDED, VALIDATED, STEP_UP_AUTHENTICATION_REQUESTED, STEP_UP_AUTHENTICATION_EXPIRED, AUTHENTICATED, INITIATED, CANCELLED, SUCCESS, ERROR. Every transaction will have multiple statuses and records and hence CREATED status is used to remove duplication when counting the transaction.'
- }
- dimension transfer_method {
- label: 'Transfer Method'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.transfer_method }};;
- description: 'Transfer method, for example, DUITNOW_QR_MPM_P2P (DuitNow P2P), CARD_PURCHASE_WITHOUT_HOLD, CARD_PURCHASE, DUITNOW_QR_MPM (DuitNow QR Merchant Pay), INTRA_BANK_TRANSFER (Transfer within bank), DUITNOW_QR_MPM_POS (DuitNow QR Merchant Pay), CARD_ATM_WITHDRAWAL (ATM Withdrawal), DUITNOW (DuitNow), CARD_PURCHASE_REFUND, CARD_PHYSICAL_FEES, DUITNOW_OBW_REFUND (Online Banking Refund), DUITNOW_OBW_REDIRECT_ISSUING (Online Banking Issuing), DUITNOW_OBW_REDIRECT_ACQUIRING (Online Banking acquiring).'
- }
- dimension product {
- label: 'Product'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.product }};;
- description: 'Product related to the transaction such as CARD, DEPOSIT, PAYMENT, RECONCILIATION, ASSISTANT_ENGINE (transaction that is initiated using AI), TRANSFER_SCHEDULER (Scheduled transaction), REWARD.'
- }
- dimension original_transfer_id {
- label: 'Original Transfer Id'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.original_transfer_id }};;
- description: 'Original transfer ID.'
- }
- dimension error_code {
- label: 'Error Code'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.error_code }};;
- description: 'Failure reason of the transaction, such as transfer/suspension-expired, transfer/beneficiary-bank-unavailable, transfer/fund-reservation-error, transfer/fraudulent, transfer/ota-authentication-declined, transfer/unexpected-error, transfer/insufficient-balance, transfer/payer-account-is-dormant, transfer/payer-account-is-blocked, transfer/credit-verification-failure, transfer/payee-account-is-blocked, transfer/obw-payment-rejected, transfer/exceeded-per-transaction-limit, transfer/generic-error, transfer/step-up-authentication-session-expired, transfer/invalid-duitnow-id, transfer/exceeded-daily-transfer-limit'
- }
- dimension error_description {
- label: 'Error Description'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.error_description }};;
- description: 'Detailed failure reason of the transaction.'
- }
- dimension transferee_id {
- label: 'Transferee Id'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.transferee_id }};;
- description: 'Transferee ID.'
- }
- dimension transferee_is_favourite {
- label: 'Transferee Is Favourite'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.transferee_is_favourite }};;
- description: 'A true/false column that indicates if the transferee is set to be favourite transferee by the customer.'
- }
- dimension source_fund_option_id {
- label: 'Source Fund Option Id'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.source_fund_option_id }};;
- description: 'Source Fund Option ID.'
- }
- dimension source_fund_option_type {
- label: 'Source Fund Option Type'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.source_fund_option_type }};;
- description: 'Source Fund Option Type.'
- }
- dimension source_account_id_type {
- label: 'Source Account Id Type'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.source_account_id_type }};;
- description: 'The account type of the source of the transaction, such as CURRENT, EWALLET, CREDIT_CARD, SAVINGS, POCKET, DEFAULT.'
- }
- dimension source_account_holder_type {
- label: 'Source Account Holder Type'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.source_account_holder_type }};;
- description: 'The type of holder of the source account such as YTL, GOVERNMENT, NGO, JOINT, CORPORATE, INDIVIDUAL, UNKNOWN.'
- }
- dimension source_bic {
- label: 'Source Bic'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.source_bic }};;
- description: 'The code of the source bank.'
- }
- dimension destination_fund_option_id {
- label: 'Destination Fund Option Id'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.destination_fund_option_id }};;
- description: 'Destination fund option ID.'
- }
- dimension destination_fund_option_type {
- label: 'Destination Fund Option Type'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.destination_fund_option_type }};;
- description: 'Destination fund option type.'
- }
- dimension destination_account_id_type {
- label: 'Destination Account Id Type'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.destination_account_id_type }};;
- description: 'The account type of the destination account, such as CURRENT, EWALLET, CREDIT_CARD, SAVINGS, POCKET, DEFAULT.'
- }
- dimension destination_account_holder_type {
- label: 'Destination Account Holder Type'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.destination_account_holder_type }};;
- description: 'The holder type of the destination account such as YTL, GOVERNMENT, NGO, JOINT, CORPORATE, INDIVIDUAL, UNKNOWN.'
- }
- dimension destination_bic {
- label: 'Destination Bic'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.destination_bic }};;
- description: 'The bank code of the destination account.'
- }
- dimension transfer_flow_transfer_method {
- label: 'Transfer Flow Transfer Method'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.transfer_flow_transfer_method }};;
- description: 'Transfer method such as DUITNOW_QR_MPM_P2P (DuitNow P2P), CARD_PURCHASE_WITHOUT_HOLD, CARD_PURCHASE, DUITNOW_QR_MPM (DuitNow QR Merchant Pay), INTRA_BANK_TRANSFER (Transfer within bank), DUITNOW_QR_MPM_POS (DuitNow QR Merchant Pay), CARD_ATM_WITHDRAWAL (ATM Withdrawal), DUITNOW (DuitNow), CARD_PURCHASE_REFUND, CARD_PHYSICAL_FEES, DUITNOW_OBW_REFUND (Online Banking Refund), DUITNOW_OBW_REDIRECT_ISSUING (Online Banking Issuing Money), DUITNOW_OBW_REDIRECT_ACQUIRING (Online Banking Acquiring Money).'
- }
- dimension transfer_flow_transaction_type {
- label: 'Transfer Flow Transaction Type'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.transfer_flow_transaction_type }};;
- description: 'Transaction types such as CARD_ATM_WITHDRAWAL, CARD_FEE_ISSUANCE, CARD_PURCHASE, CARD_REFUND, INTERBANK_DUITNOW (Transfer across bank), INTERBANK_DUITNOW_OBW_REDIRECT_ACQUIRING (Online banking acquiring money), INTERBANK_DUITNOW_OBW_REDIRECT_ISSUING (Online banking issuing money), INTERBANK_DUITNOW_OBW_REFUND (Online banking refund), INTERBANK_DUITNOW_QR_MPM (DuitNow QR Merchant), INTERBANK_DUITNOW_QR_MPM_P2P (DuitNow QR P2P), INTERBANK_DUITNOW_QR_MPM_POS (DuitNow QR Merchant), INTEREST_BASE (Base interest), INTEREST_BONUS (Bonus interest), INTRABANK_EXTERNAL (Transfer money within bank to different account), INTRABANK_INTERNAL (Transfer money within bank to same account/own pocket)'
- }
- dimension transfer_flow_direction {
- label: 'Transfer Flow Direction'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.transfer_flow_direction }};;
- description: 'Transfer flow direction.'
- }
- dimension destination_account_holder_name {
- label: 'Destination Account Holder Name'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.destination_account_holder_name }};;
- description: 'Destination account holder name.'
- }
- dimension payment_direction {
- label: 'Payment Direction'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.payment_direction }};;
- description: 'Example: Outgoing, Incoming, Intra-Bank & GL-Related'
- }
- dimension created_at {
- label: 'Created At'
- type: 'datetime'
- hidden: false
- definition: @sql {{ #SOURCE.created_at }};;
- description: 'The datetime when the transaction is created, distinct by each transaction.'
- }
- dimension created_hour_of_day {
- label: 'Created Hour Of Day'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.created_hour_of_day }};;
- description: 'The hour of day in integer when the transaction is created, distinct by each transaction.'
- }
- dimension flag_within_business_hour {
- label: 'Flag Within Business Hour'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.flag_within_business_hour }};;
- description: 'An indicator to determine if the transaction is created within business hour (from 8am to 6pm) using 1 and 0. 1 indicates that the transaction is created within business hour.'
- }
- dimension timestamp {
- label: 'Timestamp'
- type: 'datetime'
- hidden: false
- definition: @sql {{ #SOURCE.timestamp }};;
- description: 'The timestamp for each event, distinct by each event. For example, when the transaction status is updated from CREATED to AUTHENTICATED, the timestamp will be different.'
- }
-
- query: @sql
- SELECT
- 'evt_001' as event_id,
- 'sess_001' as session_id,
- 'auth_001' as auth_transaction_id,
- 'txn_001' as transfer_id,
- 'cust_12345' as customer_id,
- 'DISP_001' as display_id,
- 500.00 as amount,
- 'MYR' as currency,
- 'FUND_TRANSFER' as transfer_type,
- 'SUCCESS' as status,
- 'DUITNOW' as transfer_method,
- 'PAYMENT' as product,
- null as original_transfer_id,
- null as error_code,
- null as error_description,
- 'tfee_001' as transferee_id,
- 'false' as transferee_is_favourite,
- 'fund_src_001' as source_fund_option_id,
- 'SAVINGS' as source_fund_option_type,
- 'SAVINGS' as source_account_id_type,
- 'INDIVIDUAL' as source_account_holder_type,
- 'MBBEMYKL' as source_bic,
- 'fund_dst_001' as destination_fund_option_id,
- 'CURRENT' as destination_fund_option_type,
- 'CURRENT' as destination_account_id_type,
- 'INDIVIDUAL' as destination_account_holder_type,
- 'CIBBMYKL' as destination_bic,
- 'DUITNOW' as transfer_flow_transfer_method,
- 'INTERBANK_DUITNOW' as transfer_flow_transaction_type,
- 'OUTGOING' as transfer_flow_direction,
- 'John Doe' as destination_account_holder_name,
- 'Outgoing' as payment_direction,
- '2024-01-15 10:30:00' as created_at,
- 10 as created_hour_of_day,
- 1 as flag_within_business_hour,
- '2024-01-15 10:32:15' as timestamp
-
- UNION ALL
-
- SELECT
- 'evt_002', 'sess_002', 'auth_002', 'txn_002', 'cust_67890', 'DISP_002',
- 1200.50, 'MYR', 'CREDIT_CARD', 'ERROR', 'CARD_PURCHASE', 'CARD',
- null, 'transfer/insufficient-balance', 'Insufficient balance in account',
- null, null, 'fund_src_002', 'CREDIT_CARD', 'CREDIT_CARD', 'INDIVIDUAL', 'MBBEMYKL',
- 'fund_dst_002', 'CURRENT', 'CURRENT', 'CORPORATE', 'PBBEMYKL',
- 'CARD_PURCHASE', 'CARD_PURCHASE', 'OUTGOING', 'ABC Sdn Bhd', 'Outgoing',
- '2024-01-15 14:45:00', 14, 1, '2024-01-15 14:45:30'
-
- UNION ALL
-
- SELECT
- 'evt_003', 'sess_003', 'auth_003', 'txn_003', 'cust_11111', 'DISP_003',
- 75.00, 'MYR', 'FUND_TRANSFER', 'SUCCESS', 'INTRA_BANK_TRANSFER', 'TRANSFER_SCHEDULER',
- null, null, null, 'tfee_003', 'true', 'fund_src_003', 'CURRENT', 'CURRENT', 'INDIVIDUAL', 'MBBEMYKL',
- 'fund_dst_003', 'SAVINGS', 'SAVINGS', 'INDIVIDUAL', 'MBBEMYKL',
- 'INTRA_BANK_TRANSFER', 'INTRABANK_INTERNAL', 'INTRA-BANK', 'Jane Smith', 'Intra-Bank',
- '2024-01-15 22:15:00', 22, 0, '2024-01-15 22:15:45'
-
- UNION ALL
-
- SELECT
- 'evt_004', 'sess_004', 'auth_004', 'txn_004', 'cust_22222', 'DISP_004',
- 25.80, 'MYR', 'FUND_TRANSFER', 'SUCCESS', 'DUITNOW_QR_MPM', 'PAYMENT',
- null, null, null, 'tfee_004', 'false', 'fund_src_004', 'EWALLET', 'EWALLET', 'INDIVIDUAL', 'MBBEMYKL',
- 'fund_dst_004', 'CURRENT', 'CURRENT', 'CORPORATE', 'RHBBMYKL',
- 'DUITNOW_QR_MPM', 'INTERBANK_DUITNOW_QR_MPM', 'OUTGOING', 'Coffee Bean Shop', 'Outgoing',
- '2024-01-16 08:20:00', 8, 1, '2024-01-16 08:20:15'
-
- UNION ALL
-
- SELECT
- 'evt_005', 'sess_005', 'auth_005', 'txn_005', 'cust_33333', 'DISP_005',
- 200.00, 'MYR', 'FUND_TRANSFER', 'CANCELLED', 'DUITNOW', 'PAYMENT',
- null, 'transfer/step-up-authentication-session-expired', 'Step-up authentication session expired',
- 'tfee_005', 'false', 'fund_src_005', 'SAVINGS', 'SAVINGS', 'INDIVIDUAL', 'MBBEMYKL',
- 'fund_dst_005', 'CURRENT', 'CURRENT', 'INDIVIDUAL', 'HLBBMYKL',
- 'DUITNOW', 'INTERBANK_DUITNOW', 'OUTGOING', 'Ahmad Rahman', 'Outgoing',
- '2024-01-16 16:00:00', 16, 1, '2024-01-16 16:05:30'
-
- UNION ALL
-
- SELECT
- 'evt_006', 'sess_006', 'auth_006', 'txn_006', 'cust_44444', 'DISP_006',
- 300.00, 'MYR', 'FUND_TRANSFER', 'SUCCESS', 'CARD_ATM_WITHDRAWAL', 'CARD',
- null, null, null, null, null, 'fund_src_006', 'CURRENT', 'CURRENT', 'INDIVIDUAL', 'MBBEMYKL',
- null, null, null, null, null, 'CARD_ATM_WITHDRAWAL', 'CARD_ATM_WITHDRAWAL', 'OUTGOING', null, 'Outgoing',
- '2024-01-16 19:30:00', 19, 0, '2024-01-16 19:30:45'
-
- UNION ALL
-
- SELECT
- 'evt_007', 'sess_007', 'auth_007', 'txn_007', 'cust_55555', 'DISP_007',
- 2500.00, 'MYR', 'FUND_TRANSFER', 'ERROR', 'DUITNOW', 'PAYMENT',
- null, 'transfer/exceeded-daily-transfer-limit', 'Exceeded daily transfer limit',
- 'tfee_007', 'true', 'fund_src_007', 'CURRENT', 'CURRENT', 'INDIVIDUAL', 'MBBEMYKL',
- 'fund_dst_007', 'SAVINGS', 'SAVINGS', 'INDIVIDUAL', 'PBBEMYKL',
- 'DUITNOW', 'INTERBANK_DUITNOW', 'OUTGOING', 'Sarah Lee', 'Outgoing',
- '2024-01-17 11:15:00', 11, 1, '2024-01-17 11:15:20'
-
- UNION ALL
-
- SELECT
- 'evt_008', 'sess_008', 'auth_008', 'txn_008', 'cust_66666', 'DISP_008',
- 45.50, 'MYR', 'FUND_TRANSFER', 'SUCCESS', 'DUITNOW_QR_MPM_P2P', 'PAYMENT',
- null, null, null, 'tfee_008', 'false', 'fund_src_008', 'EWALLET', 'EWALLET', 'INDIVIDUAL', 'MBBEMYKL',
- 'fund_dst_008', 'EWALLET', 'EWALLET', 'INDIVIDUAL', 'MBBEMYKL',
- 'DUITNOW_QR_MPM_P2P', 'INTERBANK_DUITNOW_QR_MPM_P2P', 'OUTGOING', 'Mike Wong', 'Outgoing',
- '2024-01-17 13:45:00', 13, 1, '2024-01-17 13:45:10'
-
- UNION ALL
-
- SELECT
- 'evt_009', 'sess_009', 'auth_009', 'txn_009', 'cust_77777', 'DISP_009',
- 1000.00, 'MYR', 'FUND_TRANSFER', 'SUCCESS', 'DUITNOW_OBW_REDIRECT_ISSUING', 'PAYMENT',
- null, null, null, 'tfee_009', 'true', 'fund_src_009', 'CURRENT', 'CURRENT', 'CORPORATE', 'MBBEMYKL',
- 'fund_dst_009', 'CURRENT', 'CURRENT', 'CORPORATE', 'CIBBMYKL',
- 'DUITNOW_OBW_REDIRECT_ISSUING', 'INTERBANK_DUITNOW_OBW_REDIRECT_ISSUING', 'OUTGOING', 'XYZ Corp', 'Outgoing',
- '2024-01-18 09:00:00', 9, 1, '2024-01-18 09:00:25'
-
- UNION ALL
-
- SELECT
- 'evt_010', 'sess_010', 'auth_010', 'txn_010', 'cust_88888', 'DISP_010',
- 150.00, 'MYR', 'FUND_TRANSFER', 'ERROR', 'DUITNOW', 'PAYMENT',
- null, 'transfer/payee-account-is-blocked', 'Payee account is blocked',
- 'tfee_010', 'false', 'fund_src_010', 'SAVINGS', 'SAVINGS', 'INDIVIDUAL', 'MBBEMYKL',
- 'fund_dst_010', 'CURRENT', 'CURRENT', 'INDIVIDUAL', 'AMBBMYKL',
- 'DUITNOW', 'INTERBANK_DUITNOW', 'OUTGOING', 'Blocked User', 'Outgoing',
- '2024-01-18 15:20:00', 15, 1, '2024-01-18 15:20:10'
-
- UNION ALL
-
- SELECT
- 'evt_011', 'sess_011', 'auth_011', 'txn_011', 'cust_99999', 'DISP_011',
- 850.00, 'MYR', 'FUND_TRANSFER', 'SUCCESS', 'INTRA_BANK_TRANSFER', 'ASSISTANT_ENGINE',
- null, null, null, 'tfee_011', 'true', 'fund_src_011', 'CURRENT', 'CURRENT', 'INDIVIDUAL', 'MBBEMYKL',
- 'fund_dst_011', 'POCKET', 'POCKET', 'INDIVIDUAL', 'MBBEMYKL',
- 'INTRA_BANK_TRANSFER', 'INTRABANK_EXTERNAL', 'INTRA-BANK', 'AI Transfer', 'Intra-Bank',
- '2024-01-19 12:30:00', 12, 1, '2024-01-19 12:30:05'
-
- UNION ALL
-
- SELECT
- 'evt_012', 'sess_012', 'auth_012', 'txn_012', 'cust_10101', 'DISP_012',
- 50.00, 'MYR', 'FUND_TRANSFER', 'SUCCESS', 'CARD_PURCHASE_REFUND', 'CARD',
- 'txn_002', null, null, null, null, null, null, 'CREDIT_CARD', 'INDIVIDUAL', 'MBBEMYKL',
- 'fund_dst_012', 'CREDIT_CARD', 'CREDIT_CARD', 'INDIVIDUAL', 'MBBEMYKL',
- 'CARD_PURCHASE_REFUND', 'CARD_REFUND', 'INCOMING', 'Refund Process', 'Incoming',
- '2024-01-19 16:45:00', 16, 1, '2024-01-19 16:45:20'
-
- UNION ALL
-
- SELECT
- 'evt_013', 'sess_013', 'auth_013', 'txn_013', 'cust_20202', 'DISP_013',
- 12.50, 'MYR', 'FUND_TRANSFER', 'SUCCESS', 'CARD_PHYSICAL_FEES', 'CARD',
- null, null, null, null, null, 'fund_src_013', 'CURRENT', 'CURRENT', 'INDIVIDUAL', 'MBBEMYKL',
- null, null, null, null, null, 'CARD_PHYSICAL_FEES', 'CARD_FEE_ISSUANCE', 'OUTGOING', 'Card Fee', 'Outgoing',
- '2024-01-20 10:00:00', 10, 1, '2024-01-20 10:00:00'
-
- UNION ALL
-
- SELECT
- 'evt_014', 'sess_014', 'auth_014', 'txn_014', 'cust_30303', 'DISP_014',
- 2.50, 'MYR', 'FUND_TRANSFER', 'SUCCESS', 'INTRA_BANK_TRANSFER', 'REWARD',
- null, null, null, null, null, null, null, null, 'INDIVIDUAL', null,
- 'fund_dst_014', 'CURRENT', 'CURRENT', 'INDIVIDUAL', 'MBBEMYKL',
- 'INTRA_BANK_TRANSFER', 'INTEREST_BONUS', 'INCOMING', 'Reward Credit', 'Incoming',
- '2024-01-20 23:59:00', 23, 0, '2024-01-20 23:59:30'
-
- UNION ALL
-
- SELECT
- 'evt_015', 'sess_015', 'auth_015', 'txn_015', 'cust_40404', 'DISP_015',
- 750.00, 'MYR', 'FUND_TRANSFER', 'ERROR', 'DUITNOW', 'PAYMENT',
- null, 'transfer/beneficiary-bank-unavailable', 'Beneficiary bank is currently unavailable',
- 'tfee_015', 'false', 'fund_src_015', 'CURRENT', 'CURRENT', 'INDIVIDUAL', 'MBBEMYKL',
- 'fund_dst_015', 'SAVINGS', 'SAVINGS', 'INDIVIDUAL', 'DOWNBANK',
- 'DUITNOW', 'INTERBANK_DUITNOW', 'OUTGOING', 'Unavailable Bank', 'Outgoing',
- '2024-01-21 07:30:00', 7, 0, '2024-01-21 07:30:45'
-
- UNION ALL
-
- SELECT
- 'evt_016', 'sess_016', 'auth_016', 'txn_016', 'cust_50505', 'DISP_016',
- 125.75, 'MYR', 'FUND_TRANSFER', 'SUCCESS', 'DUITNOW_QR_MPM_POS', 'PAYMENT',
- null, null, null, 'tfee_016', 'false', 'fund_src_016', 'EWALLET', 'EWALLET', 'INDIVIDUAL', 'MBBEMYKL',
- 'fund_dst_016', 'CURRENT', 'CURRENT', 'CORPORATE', 'RHBBMYKL',
- 'DUITNOW_QR_MPM_POS', 'INTERBANK_DUITNOW_QR_MPM_POS', 'OUTGOING', 'POS Terminal', 'Outgoing',
- '2024-01-21 14:20:00', 14, 1, '2024-01-21 14:20:08'
-
- UNION ALL
-
- SELECT
- 'evt_017', 'sess_017', 'auth_017', 'txn_017', 'cust_60606', 'DISP_017',
- 5000.00, 'MYR', 'LOAN', 'SUCCESS', 'INTRA_BANK_TRANSFER', 'DEPOSIT',
- null, null, null, null, null, null, null, null, 'CORPORATE', null,
- 'fund_dst_017', 'CURRENT', 'CURRENT', 'INDIVIDUAL', 'MBBEMYKL',
- 'INTRA_BANK_TRANSFER', 'INTRABANK_INTERNAL', 'INCOMING', 'Loan Disbursement', 'Incoming',
- '2024-01-22 11:00:00', 11, 1, '2024-01-22 11:00:00'
-
- UNION ALL
-
- SELECT
- 'evt_018', 'sess_018', 'auth_018', 'txn_018', 'cust_70707', 'DISP_018',
- 35.00, 'MYR', 'FUND_TRANSFER', 'ERROR', 'DUITNOW', 'PAYMENT',
- null, 'transfer/invalid-duitnow-id', 'Invalid DuitNow ID provided',
- 'tfee_018', 'false', 'fund_src_018', 'CURRENT', 'CURRENT', 'INDIVIDUAL', 'MBBEMYKL',
- 'fund_dst_018', 'UNKNOWN', 'UNKNOWN', 'UNKNOWN', 'UNKNOWN',
- 'DUITNOW', 'INTERBANK_DUITNOW', 'OUTGOING', 'Invalid ID', 'Outgoing',
- '2024-01-22 18:00:00', 18, 0, '2024-01-22 18:00:15'
-
- UNION ALL
-
- SELECT
- 'evt_019', 'sess_019', 'auth_019', 'txn_019', 'cust_80808', 'DISP_019',
- 999.99, 'MYR', 'FUND_TRANSFER', 'SUCCESS', 'DUITNOW_OBW_REFUND', 'RECONCILIATION',
- 'txn_009', null, null, null, null, null, null, null, 'CORPORATE', null,
- 'fund_dst_019', 'CURRENT', 'CURRENT', 'CORPORATE', 'MBBEMYKL',
- 'DUITNOW_OBW_REFUND', 'INTERBANK_DUITNOW_OBW_REFUND', 'INCOMING', 'OBW Refund', 'Incoming',
- '2024-01-23 13:15:00', 13, 1, '2024-01-23 13:15:30'
-
- UNION ALL
-
- SELECT
- 'evt_020', 'sess_020', 'auth_020', 'txn_020', 'cust_90909', 'DISP_020',
- 15.00, 'MYR', 'FUND_TRANSFER', 'SUCCESS', 'INTRA_BANK_TRANSFER', 'DEPOSIT',
- null, null, null, null, null, null, null, null, 'INDIVIDUAL', null,
- 'fund_dst_020', 'SAVINGS', 'SAVINGS', 'INDIVIDUAL', 'MBBEMYKL',
- 'INTRA_BANK_TRANSFER', 'INTEREST_BASE', 'INCOMING', 'Base Interest', 'Incoming',
- '2024-01-23 23:00:00', 23, 0, '2024-01-23 23:00:00'
-
- UNION ALL
-
- SELECT
- 'evt_021', 'sess_021', 'auth_021', 'txn_021', 'cust_12121', 'DISP_021',
- 450.00, 'MYR', 'FUND_TRANSFER', 'ERROR', 'DUITNOW', 'PAYMENT',
- null, 'transfer/fraudulent', 'Transaction flagged as fraudulent',
- 'tfee_021', 'false', 'fund_src_021', 'CURRENT', 'CURRENT', 'INDIVIDUAL', 'MBBEMYKL',
- 'fund_dst_021', 'CURRENT', 'CURRENT', 'INDIVIDUAL', 'FLAGBANK',
- 'DUITNOW', 'INTERBANK_DUITNOW', 'OUTGOING', 'Suspicious Account', 'Outgoing',
- '2024-01-24 02:30:00', 2, 0, '2024-01-24 02:30:20'
-
- UNION ALL
-
- SELECT
- 'evt_022', 'sess_022', 'auth_022', 'txn_022', 'cust_23232', 'DISP_022',
- 180.50, 'MYR', 'FUND_TRANSFER', 'SUCCESS', 'DUITNOW_OBW_REDIRECT_ACQUIRING', 'PAYMENT',
- null, null, null, 'tfee_022', 'true', 'fund_src_022', 'CURRENT', 'CURRENT', 'INDIVIDUAL', 'MBBEMYKL',
- 'fund_dst_022', 'CURRENT', 'CURRENT', 'CORPORATE', 'PBBEMYKL',
- 'DUITNOW_OBW_REDIRECT_ACQUIRING', 'INTERBANK_DUITNOW_OBW_REDIRECT_ACQUIRING', 'OUTGOING', 'Online Merchant', 'Outgoing',
- '2024-01-24 12:45:00', 12, 1, '2024-01-24 12:45:18'
-
- UNION ALL
-
- SELECT
- 'evt_023', 'sess_023', 'auth_023', 'txn_023', 'cust_34343', 'DISP_023',
- 1500.00, 'MYR', 'FUND_TRANSFER', 'ERROR', 'DUITNOW', 'PAYMENT',
- null, 'transfer/payer-account-is-dormant', 'Payer account is dormant',
- 'tfee_023', 'false', 'fund_src_023', 'SAVINGS', 'SAVINGS', 'INDIVIDUAL', 'MBBEMYKL',
- 'fund_dst_023', 'CURRENT', 'CURRENT', 'INDIVIDUAL', 'HLBBMYKL',
- 'DUITNOW', 'INTERBANK_DUITNOW', 'OUTGOING', 'Dormant Transfer', 'Outgoing',
- '2024-01-25 09:15:00', 9, 1, '2024-01-25 09:15:45'
-
- UNION ALL
-
- SELECT
- 'evt_024', 'sess_024', 'auth_024', 'txn_024', 'cust_45454', 'DISP_024',
- 325.00, 'MYR', 'FUND_TRANSFER', 'SUCCESS', 'CARD_PURCHASE_WITHOUT_HOLD', 'CARD',
- null, null, null, null, null, 'fund_src_024', 'CREDIT_CARD', 'CREDIT_CARD', 'INDIVIDUAL', 'MBBEMYKL',
- 'fund_dst_024', 'CURRENT', 'CURRENT', 'CORPORATE', 'EXTBANK',
- 'CARD_PURCHASE_WITHOUT_HOLD', 'CARD_PURCHASE', 'OUTGOING', 'Quick Purchase', 'Outgoing',
- '2024-01-25 17:30:00', 17, 1, '2024-01-25 17:30:12'
-
- UNION ALL
-
- SELECT
- 'evt_025', 'sess_025', 'auth_025', 'txn_025', 'cust_56565', 'DISP_025',
- 95.25, 'MYR', 'FUND_TRANSFER', 'SUCCESS', 'INTRA_BANK_TRANSFER', 'TRANSFER_SCHEDULER',
- null, null, null, 'tfee_025', 'true', 'fund_src_025', 'POCKET', 'POCKET', 'INDIVIDUAL', 'MBBEMYKL',
- 'fund_dst_025', 'SAVINGS', 'SAVINGS', 'INDIVIDUAL', 'MBBEMYKL',
- 'INTRA_BANK_TRANSFER', 'INTRABANK_EXTERNAL', 'INTRA-BANK', 'Scheduled Transfer', 'Intra-Bank',
- '2024-01-26 06:00:00', 6, 0, '2024-01-26 06:00:05'
-
- UNION ALL SELECT
- 'evt_march_001', 'sess_march_001', 'auth_march_001', 'txn_march_001', '01932eb5-d984-7061-91b9-0e619d6e784d', 'disp_march_001',
- 150.00, 'MYR', 'FUND_TRANSFER', 'SUCCESS', 'DUITNOW_QR_MPM_P2P',
- 'PAYMENT', NULL, NULL, NULL, 'transferee_alice_001', 'true',
- 'fund_opt_m001', 'CURRENT', 'CURRENT', 'INDIVIDUAL', 'MAYBANK',
- 'fund_opt_m002', 'SAVINGS', 'SAVINGS', 'INDIVIDUAL', 'CIMB',
- 'DUITNOW_QR_MPM_P2P', 'INTERBANK_DUITNOW_QR_MPM_P2P', 'OUTGOING', 'Alice Wong',
- 'Outgoing', '2025-03-01 09:15:00', 9, 1, '2025-03-01 09:15:05'
-
- UNION ALL SELECT
- 'evt_march_002', 'sess_march_002', 'auth_march_002', 'txn_march_002', '01932eb5-d984-7061-91b9-0e619d6e784d', 'disp_march_002',
- 300.00, 'MYR', 'FUND_TRANSFER', 'SUCCESS', 'DUITNOW',
- 'PAYMENT', NULL, NULL, NULL, 'transferee_bob_002', 'false',
- 'fund_opt_m003', 'CURRENT', 'CURRENT', 'INDIVIDUAL', 'MAYBANK',
- 'fund_opt_m004', 'CURRENT', 'CURRENT', 'INDIVIDUAL', 'RHB',
- 'DUITNOW', 'INTERBANK_DUITNOW', 'OUTGOING', 'Bob Chen',
- 'Outgoing', '2025-03-02 14:30:00', 14, 1, '2025-03-02 14:30:08'
-
- UNION ALL SELECT
- 'evt_march_003', 'sess_march_003', 'auth_march_003', 'txn_march_003', '01932eb5-d984-7061-91b9-0e619d6e784d', 'disp_march_003',
- 75.50, 'MYR', 'FUND_TRANSFER', 'SUCCESS', 'INTRA_BANK_TRANSFER',
- 'PAYMENT', NULL, NULL, NULL, 'transferee_carol_003', 'true',
- 'fund_opt_m005', 'CURRENT', 'CURRENT', 'INDIVIDUAL', 'MAYBANK',
- 'fund_opt_m006', 'SAVINGS', 'SAVINGS', 'INDIVIDUAL', 'MAYBANK',
- 'INTRA_BANK_TRANSFER', 'INTRABANK_EXTERNAL', 'OUTGOING', 'Carol Lim',
- 'Intra-Bank', '2025-03-03 16:45:00', 16, 1, '2025-03-03 16:45:03'
-
- UNION ALL SELECT
- 'evt_march_004', 'sess_march_004', 'auth_march_004', 'txn_march_004', '01932eb5-d984-7061-91b9-0e619d6e784d', 'disp_march_004',
- 500.00, 'MYR', 'FUND_TRANSFER', 'SUCCESS', 'DUITNOW_QR_MPM',
- 'PAYMENT', NULL, NULL, NULL, 'transferee_david_004', 'false',
- 'fund_opt_m007', 'CURRENT', 'CURRENT', 'INDIVIDUAL', 'MAYBANK',
- 'fund_opt_m008', 'CURRENT', 'CURRENT', 'CORPORATE', 'PUBLICBANK',
- 'DUITNOW_QR_MPM', 'INTERBANK_DUITNOW_QR_MPM', 'OUTGOING', 'David Electronics',
- 'Outgoing', '2025-03-05 11:20:00', 11, 1, '2025-03-05 11:20:12'
-
- UNION ALL SELECT
- 'evt_march_005', 'sess_march_005', 'auth_march_005', 'txn_march_005', '01932eb5-d984-7061-91b9-0e619d6e784d', 'disp_march_005',
- 1200.00, 'MYR', 'FUND_TRANSFER', 'SUCCESS', 'DUITNOW',
- 'PAYMENT', NULL, NULL, NULL, 'transferee_emma_005', 'true',
- 'fund_opt_m009', 'CURRENT', 'CURRENT', 'INDIVIDUAL', 'MAYBANK',
- 'fund_opt_m010', 'SAVINGS', 'SAVINGS', 'INDIVIDUAL', 'HONGLEONG',
- 'DUITNOW', 'INTERBANK_DUITNOW', 'OUTGOING', 'Emma Tan',
- 'Outgoing', '2025-03-07 13:10:00', 13, 1, '2025-03-07 13:10:15'
-
- UNION ALL SELECT
- 'evt_march_006', 'sess_march_006', 'auth_march_006', 'txn_march_006', '01932eb5-d984-7061-91b9-0e619d6e784d', 'disp_march_006',
- 85.00, 'MYR', 'FUND_TRANSFER', 'SUCCESS', 'DUITNOW_QR_MPM_P2P',
- 'PAYMENT', NULL, NULL, NULL, 'transferee_frank_006', 'false',
- 'fund_opt_m011', 'CURRENT', 'CURRENT', 'INDIVIDUAL', 'MAYBANK',
- 'fund_opt_m012', 'CURRENT', 'CURRENT', 'INDIVIDUAL', 'AMBANK',
- 'DUITNOW_QR_MPM_P2P', 'INTERBANK_DUITNOW_QR_MPM_P2P', 'OUTGOING', 'Frank Lee',
- 'Outgoing', '2025-03-10 08:45:00', 8, 1, '2025-03-10 08:45:06'
-
- UNION ALL SELECT
- 'evt_march_007', 'sess_march_007', 'auth_march_007', 'txn_march_007', '01932eb5-d984-7061-91b9-0e619d6e784d', 'disp_march_007',
- 250.00, 'MYR', 'FUND_TRANSFER', 'SUCCESS', 'DUITNOW',
- 'PAYMENT', NULL, NULL, NULL, 'transferee_grace_007', 'true',
- 'fund_opt_m013', 'CURRENT', 'CURRENT', 'INDIVIDUAL', 'MAYBANK',
- 'fund_opt_m014', 'CURRENT', 'CURRENT', 'INDIVIDUAL', 'CIMB',
- 'DUITNOW', 'INTERBANK_DUITNOW', 'OUTGOING', 'Grace Ng',
- 'Outgoing', '2025-03-12 15:30:00', 15, 1, '2025-03-12 15:30:10'
-
- UNION ALL SELECT
- 'evt_march_008', 'sess_march_008', 'auth_march_008', 'txn_march_008', '01932eb5-d984-7061-91b9-0e619d6e784d', 'disp_march_008',
- 400.00, 'MYR', 'FUND_TRANSFER', 'SUCCESS', 'DUITNOW_OBW_REDIRECT_ISSUING',
- 'PAYMENT', NULL, NULL, NULL, 'transferee_henry_008', 'false',
- 'fund_opt_m015', 'CURRENT', 'CURRENT', 'INDIVIDUAL', 'MAYBANK',
- 'fund_opt_m016', 'SAVINGS', 'SAVINGS', 'INDIVIDUAL', 'RHB',
- 'DUITNOW_OBW_REDIRECT_ISSUING', 'INTERBANK_DUITNOW_OBW_REDIRECT_ISSUING', 'OUTGOING', 'Henry Kumar',
- 'Outgoing', '2025-03-15 12:00:00', 12, 1, '2025-03-15 12:00:18'
-
- UNION ALL SELECT
- 'evt_march_009', 'sess_march_009', 'auth_march_009', 'txn_march_009', '01932eb5-d984-7061-91b9-0e619d6e784d', 'disp_march_009',
- 180.00, 'MYR', 'FUND_TRANSFER', 'SUCCESS', 'DUITNOW_QR_MPM_POS',
- 'PAYMENT', NULL, NULL, NULL, 'transferee_ivy_009', 'true',
- 'fund_opt_m017', 'CURRENT', 'CURRENT', 'INDIVIDUAL', 'MAYBANK',
- 'fund_opt_m018', 'CURRENT', 'CURRENT', 'CORPORATE', 'PUBLICBANK',
- 'DUITNOW_QR_MPM_POS', 'INTERBANK_DUITNOW_QR_MPM_POS', 'OUTGOING', 'Ivy Restaurant',
- 'Outgoing', '2025-03-18 19:15:00', 19, 0, '2025-03-18 19:15:08'
-
- UNION ALL SELECT
- 'evt_march_010', 'sess_march_010', 'auth_march_010', 'txn_march_010', '01932eb5-d984-7061-91b9-0e619d6e784d', 'disp_march_010',
- 650.00, 'MYR', 'FUND_TRANSFER', 'SUCCESS', 'DUITNOW',
- 'PAYMENT', NULL, NULL, NULL, 'transferee_jack_010', 'false',
- 'fund_opt_m019', 'CURRENT', 'CURRENT', 'INDIVIDUAL', 'MAYBANK',
- 'fund_opt_m020', 'SAVINGS', 'SAVINGS', 'INDIVIDUAL', 'HONGLEONG',
- 'DUITNOW', 'INTERBANK_DUITNOW', 'OUTGOING', 'Jack Yap',
- 'Outgoing', '2025-03-20 10:30:00', 10, 1, '2025-03-20 10:30:12'
-
- UNION ALL SELECT
- 'evt_march_011', 'sess_march_011', 'auth_march_011', 'txn_march_011', '01932eb5-d984-7061-91b9-0e619d6e784d', 'disp_march_011',
- 95.00, 'MYR', 'FUND_TRANSFER', 'SUCCESS', 'DUITNOW_QR_MPM_P2P',
- 'PAYMENT', NULL, NULL, NULL, 'transferee_kelly_011', 'true',
- 'fund_opt_m021', 'CURRENT', 'CURRENT', 'INDIVIDUAL', 'MAYBANK',
- 'fund_opt_m022', 'CURRENT', 'CURRENT', 'INDIVIDUAL', 'AMBANK',
- 'DUITNOW_QR_MPM_P2P', 'INTERBANK_DUITNOW_QR_MPM_P2P', 'OUTGOING', 'Kelly Low',
- 'Outgoing', '2025-03-22 14:45:00', 14, 1, '2025-03-22 14:45:07'
-
- UNION ALL SELECT
- 'evt_march_012', 'sess_march_012', 'auth_march_012', 'txn_march_012', '01932eb5-d984-7061-91b9-0e619d6e784d', 'disp_march_012',
- 320.00, 'MYR', 'FUND_TRANSFER', 'SUCCESS', 'INTRA_BANK_TRANSFER',
- 'PAYMENT', NULL, NULL, NULL, 'transferee_larry_012', 'false',
- 'fund_opt_m023', 'CURRENT', 'CURRENT', 'INDIVIDUAL', 'MAYBANK',
- 'fund_opt_m024', 'SAVINGS', 'SAVINGS', 'INDIVIDUAL', 'MAYBANK',
- 'INTRA_BANK_TRANSFER', 'INTRABANK_EXTERNAL', 'OUTGOING', 'Larry Goh',
- 'Intra-Bank', '2025-03-25 16:20:00', 16, 1, '2025-03-25 16:20:05'
-
- UNION ALL SELECT
- 'evt_march_013', 'sess_march_013', 'auth_march_013', 'txn_march_013', '01932eb5-d984-7061-91b9-0e619d6e784d', 'disp_march_013',
- 800.00, 'MYR', 'FUND_TRANSFER', 'SUCCESS', 'DUITNOW',
- 'PAYMENT', NULL, NULL, NULL, 'transferee_mary_013', 'true',
- 'fund_opt_m025', 'CURRENT', 'CURRENT', 'INDIVIDUAL', 'MAYBANK',
- 'fund_opt_m026', 'CURRENT', 'CURRENT', 'INDIVIDUAL', 'RHB',
- 'DUITNOW', 'INTERBANK_DUITNOW', 'OUTGOING', 'Mary Chong',
- 'Outgoing', '2025-03-28 11:10:00', 11, 1, '2025-03-28 11:10:14'
-
- UNION ALL SELECT
- 'evt_march_014', 'sess_march_014', 'auth_march_014', 'txn_march_014', '01932eb5-d984-7061-91b9-0e619d6e784d', 'disp_march_014',
- 120.00, 'MYR', 'FUND_TRANSFER', 'SUCCESS', 'DUITNOW_QR_MPM',
- 'PAYMENT', NULL, NULL, NULL, 'transferee_nick_014', 'false',
- 'fund_opt_m027', 'CURRENT', 'CURRENT', 'INDIVIDUAL', 'MAYBANK',
- 'fund_opt_m028', 'CURRENT', 'CURRENT', 'CORPORATE', 'CIMB',
- 'DUITNOW_QR_MPM', 'INTERBANK_DUITNOW_QR_MPM', 'OUTGOING', 'Nick Supermarket',
- 'Outgoing', '2025-03-30 17:50:00', 17, 1, '2025-03-30 17:50:09'
- ;;;
-
- models: [
- ]
-}
diff --git a/team-folders/Chinh/models/zipcode_data_american_housing_data.model.aml b/team-folders/Chinh/models/zipcode_data_american_housing_data.model.aml
deleted file mode 100644
index 571931b6..00000000
--- a/team-folders/Chinh/models/zipcode_data_american_housing_data.model.aml
+++ /dev/null
@@ -1,94 +0,0 @@
-Model zipcode_data_american_housing_data {
- type: 'table'
- label: 'American Housing Data'
- description: ''
- data_source_name: 'demodb'
- owner: 'chinh.dm@holistics.io'
- table_name: '"zipcode_data"."american_housing_data"'
-
- dimension zip_code {
- label: 'Zip Code'
- type: 'number'
- description: 'revenue_revenue_revenue_revenue_revenue_revenue_revenue_revenue_revenue_revenue_revenue_revenue_revenue_revenue_revenue_revenue_revenue_revenue_revenue_revenue_revenue_revenue_revenue_revenue_revenue_revenue_revenue_revenue_revenue_revenue_revenue_revenue_revenue_revenue_revenue_revenue_revenue_revenue_revenue_revenue_revenue_revenue_revenue_revenue_revenue_revenue_revenue_revenue_revenue_revenue_revenue_revenue_revenue_revenue_revenue_revenue'
- hidden: false
- definition: @sql {{ #SOURCE.zip_code }};;
- }
- dimension price {
- label: 'Price'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.price }};;
- }
- dimension beds {
- label: 'Beds'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.beds }};;
- }
- dimension bath {
- label: 'Bath'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.bath }};;
- }
- dimension living_space {
- label: 'Living Space'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.living_space }};;
- }
- dimension address {
- label: 'Address'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.address }};;
- }
- dimension city {
- label: 'City'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.city }};;
- }
- dimension state {
- label: 'State'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.state }};;
- }
- dimension zip_code_population {
- label: 'Zip Code Population'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.zip_code_population }};;
- }
- dimension zip_code_density {
- label: 'Zip Code Density'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.zip_code_density }};;
- }
- dimension county {
- label: 'County'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.county }};;
- }
- dimension median_house_income {
- label: 'Median House Income'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.median_house_income }};;
- }
- dimension latitude {
- label: 'Latitude'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.latitude }};;
- }
- dimension longitude {
- label: 'Longitude'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.longitude }};;
- }
-}
diff --git a/team-folders/Nam/Dashboards/Sale overview.page.aml b/team-folders/Nam/Dashboards/Sale overview.page.aml
index 84a05a13..0d5130f7 100644
--- a/team-folders/Nam/Dashboards/Sale overview.page.aml
+++ b/team-folders/Nam/Dashboards/Sale overview.page.aml
@@ -337,19 +337,9 @@ Dashboard sale_overview {
}
default {
operator: 'matches'
- value: '$H_NIL$'
+ value: 'this year'
}
}
-
- block f12: FilterBlock {
- label: 'Date Range'
- type: 'date'
- default {
- operator: 'matches'
- value: '$H_NIL$'
- }
- }
-
block f2: FilterBlock {
label: 'Product Category'
type: 'field'
diff --git a/team-folders/TanNguyen/test_tn.dataset.aml b/team-folders/TanNguyen/test_tn.dataset.aml
deleted file mode 100644
index 03a5ccb4..00000000
--- a/team-folders/TanNguyen/test_tn.dataset.aml
+++ /dev/null
@@ -1,14 +0,0 @@
-Func my_test_dataset_func () {
- Dataset test_tn {
- label: 'test_tn',
- description: ''
- data_source_name: 'movies_lens'
- models: [
- agg_movies_daily
- ]
- relationships: []
- }
-}
-
-const dataset_from_func_test = my_test_dataset_func();
-
diff --git a/team-folders/Thang/ecommerce_users.model.aml b/team-folders/Thang/ecommerce_users.model.aml
deleted file mode 100644
index a88b4727..00000000
--- a/team-folders/Thang/ecommerce_users.model.aml
+++ /dev/null
@@ -1,94 +0,0 @@
-Model ecommerce_users2 {
- type: 'table'
- label: 'Users'
- description: ''
- data_source_name: 'demodb'
- dimension id {
- label: 'Id'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.id }};;
- }
- dimension sign_up_date {
- label: 'Sign Up Date'
- type: 'date'
- hidden: false
- definition: @sql {{ #SOURCE.sign_up_date }};;
- }
- dimension sign_up_at {
- label: 'Sign Up At'
- type: 'datetime'
- hidden: false
- definition: @sql {{ #SOURCE.sign_up_at }};;
- }
- dimension first_name {
- label: 'First Name'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.first_name }};;
- }
- dimension last_name {
- label: 'Last Name'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.last_name }};;
- }
- dimension email {
- label: 'Email'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.email }};;
- }
- dimension birth_date {
- label: 'Birth Date'
- type: 'date'
- hidden: false
- definition: @sql {{ #SOURCE.birth_date }};;
- }
- dimension gender {
- label: 'Gender'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.gender }};;
- }
- dimension city_id {
- label: 'City Id'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.city_id }};;
- }
- dimension full_name {
- label: 'Full Name'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.full_name }};;
- }
- dimension age {
- label: "Age"
- type: "number"
- description: ""
- definition: @sql date_part('year', current_date) - date_part('year', {{ birth_date }});;
- }
- dimension age_group {
- label: "Age Group"
- type: "text"
- description: ""
- definition: @sql case
- when {{ age }} < 20 then '1. Under 20'
- when {{ age }} >= 20 and {{ age }} < 30 then '2. From 20 to 29'
- when {{ age }} >= 30 and {{ age }} < 40 then '3. From 30 to 39'
- when {{ age }} >= 40 then '4. 40 and up'
-end;;
- }
-
- owner: 'thang.lk@holistics.io'
- table_name: '"ecommerce"."users"'
- measure total_users {
- label: "Total users"
- type: "number"
- description: ""
- hidden: false
- definition: @aql count(ecommerce_users2.id);;
- aggregation_type: "custom"
- }
-}
\ No newline at end of file
diff --git a/team-folders/Thinh/dashboard_tabs.page.aml b/team-folders/Thinh/dashboard_tabs.page.aml
index ad9ee31b..2431984b 100644
--- a/team-folders/Thinh/dashboard_tabs.page.aml
+++ b/team-folders/Thinh/dashboard_tabs.page.aml
@@ -113,9 +113,4 @@ width="100%" height="600" frameborder="1"
}
}
theme: H.themes.classic
- settings {
- timezone: 'Etc/UTC'
- autorun: false
- cache_duration: 1440
- }
}
\ No newline at end of file
diff --git a/team-folders/Triet/homestay.dataset.aml b/team-folders/Triet/homestay.dataset.aml
deleted file mode 100644
index eae64fff..00000000
--- a/team-folders/Triet/homestay.dataset.aml
+++ /dev/null
@@ -1,21 +0,0 @@
-Dataset homestay {
- label: 'Homestay'
- description: ''
- data_source_name: 'demodb'
- models: [
- homestay_bookings,
- homestay_calendar,
- homestay_hosts,
- homestay_listing_amenities,
- homestay_listings,
- homestay_neighbourhoods
- ]
- relationships: [
- relationship(homestay_listings.id - homestay_calendar.listing_id, true),
- relationship(homestay_listing_amenities.listing_id > homestay_listings.id, true),
- relationship(homestay_listings.host_id > homestay_hosts.id, true),
- relationship(homestay_listings.neighbourhood_id - homestay_neighbourhoods.id, true),
- relationship(homestay_bookings.listing_id > homestay_listings.id, true)
- ]
- owner: 'triet.pham@holistics.io'
-}
\ No newline at end of file
diff --git a/team-folders/Triet/homestay_bookings.model.aml b/team-folders/Triet/homestay_bookings.model.aml
deleted file mode 100644
index ae33093f..00000000
--- a/team-folders/Triet/homestay_bookings.model.aml
+++ /dev/null
@@ -1,63 +0,0 @@
-Model homestay_bookings {
- type: 'table'
- label: 'Bookings'
- description: ''
- data_source_name: 'demodb'
- dimension id {
- label: 'Id'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.id }};;
- }
- dimension listing_id {
- label: 'Listing Id'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.listing_id }};;
- }
- dimension check_in_date {
- label: 'Check In Date'
- type: 'date'
- hidden: false
- definition: @sql {{ #SOURCE.check_in_date }};;
- }
- dimension check_out_date {
- label: 'Check Out Date'
- type: 'date'
- hidden: false
- definition: @sql {{ #SOURCE.check_out_date }};;
- }
- dimension nights {
- label: 'Nights'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.nights }};;
- }
- dimension adults {
- label: 'Adults'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.adults }};;
- }
- dimension children {
- label: 'Children'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.children }};;
- }
- dimension babies {
- label: 'Babies'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.babies }};;
- }
- dimension reservation_status {
- label: 'Reservation Status'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.reservation_status }};;
- }
-
- owner: 'triet.pham@holistics.io'
- table_name: '"homestay"."bookings"'
-}
diff --git a/team-folders/Triet/homestay_calendar.model.aml b/team-folders/Triet/homestay_calendar.model.aml
deleted file mode 100644
index 922f169e..00000000
--- a/team-folders/Triet/homestay_calendar.model.aml
+++ /dev/null
@@ -1,27 +0,0 @@
-Model homestay_calendar {
- type: 'table'
- label: 'Calendar'
- description: ''
- data_source_name: 'demodb'
- dimension listing_id {
- label: 'Listing Id'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.listing_id }};;
- }
- dimension date {
- label: 'Date'
- type: 'date'
- hidden: false
- definition: @sql {{ #SOURCE.date }};;
- }
- dimension price {
- label: 'Price'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.price }};;
- }
-
- owner: 'triet.pham@holistics.io'
- table_name: '"homestay"."calendar"'
-}
diff --git a/team-folders/Triet/homestay_hosts.model.aml b/team-folders/Triet/homestay_hosts.model.aml
deleted file mode 100644
index 18a18aad..00000000
--- a/team-folders/Triet/homestay_hosts.model.aml
+++ /dev/null
@@ -1,105 +0,0 @@
-Model homestay_hosts {
- type: 'table'
- label: 'Hosts'
- description: ''
- data_source_name: 'demodb'
- dimension id {
- label: 'Id'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.id }};;
- }
- dimension url {
- label: 'Url'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.url }};;
- }
- dimension name {
- label: 'Name'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.name }};;
- }
- dimension registered_date {
- label: 'Registered Date'
- type: 'date'
- hidden: false
- definition: @sql {{ #SOURCE.registered_date }};;
- }
- dimension location {
- label: 'Location'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.location }};;
- }
- dimension about {
- label: 'About'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.about }};;
- }
- dimension response_time {
- label: 'Response Time'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.response_time }};;
- }
- dimension response_rate {
- label: 'Response Rate'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.response_rate }};;
- }
- dimension acceptance_rate {
- label: 'Acceptance Rate'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.acceptance_rate }};;
- }
- dimension is_superhost {
- label: 'Is Superhost'
- type: 'truefalse'
- hidden: false
- definition: @sql {{ #SOURCE.is_superhost }};;
- }
- dimension has_profile_pic {
- label: 'Has Profile Pic'
- type: 'truefalse'
- hidden: false
- definition: @sql {{ #SOURCE.has_profile_pic }};;
- }
- dimension neighbourhood {
- label: 'Neighbourhood'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.neighbourhood }};;
- }
- dimension listings_count {
- label: 'Listings Count'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.listings_count }};;
- }
- dimension total_listings_count {
- label: 'Total Listings Count'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.total_listings_count }};;
- }
- dimension verifications {
- label: 'Verifications'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.verifications }};;
- }
- dimension identity_verified {
- label: 'Identity Verified'
- type: 'truefalse'
- hidden: false
- definition: @sql {{ #SOURCE.identity_verified }};;
- }
-
- owner: 'triet.pham@holistics.io'
- table_name: '"homestay"."hosts"'
-}
diff --git a/team-folders/Triet/homestay_listing_amenities.model.aml b/team-folders/Triet/homestay_listing_amenities.model.aml
deleted file mode 100644
index 75a38a96..00000000
--- a/team-folders/Triet/homestay_listing_amenities.model.aml
+++ /dev/null
@@ -1,21 +0,0 @@
-Model homestay_listing_amenities {
- type: 'table'
- label: 'Listing Amenities'
- description: ''
- data_source_name: 'demodb'
- dimension listing_id {
- label: 'Listing Id'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.listing_id }};;
- }
- dimension amenity {
- label: 'Amenity'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.amenity }};;
- }
-
- owner: 'triet.pham@holistics.io'
- table_name: '"homestay"."listing_amenities"'
-}
diff --git a/team-folders/Triet/homestay_listings.model.aml b/team-folders/Triet/homestay_listings.model.aml
deleted file mode 100644
index 7a668a99..00000000
--- a/team-folders/Triet/homestay_listings.model.aml
+++ /dev/null
@@ -1,147 +0,0 @@
-Model homestay_listings {
- type: 'table'
- label: 'Listings'
- description: ''
- data_source_name: 'demodb'
- dimension id {
- label: 'Id'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.id }};;
- }
- dimension name {
- label: 'Name'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.name }};;
- }
- dimension description {
- label: 'Description'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.description }};;
- }
- dimension property_type {
- label: 'Property Type'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.property_type }};;
- }
- dimension room_type {
- label: 'Room Type'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.room_type }};;
- }
- dimension accommodates {
- label: 'Accommodates'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.accommodates }};;
- }
- dimension bathrooms {
- label: 'Bathrooms'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.bathrooms }};;
- }
- dimension bedrooms {
- label: 'Bedrooms'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.bedrooms }};;
- }
- dimension beds {
- label: 'Beds'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.beds }};;
- }
- dimension bed_type {
- label: 'Bed Type'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.bed_type }};;
- }
- dimension price {
- label: 'Price'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.price }};;
- }
- dimension weekly_price {
- label: 'Weekly Price'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.weekly_price }};;
- }
- dimension monthly_price {
- label: 'Monthly Price'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.monthly_price }};;
- }
- dimension security_deposit {
- label: 'Security Deposit'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.security_deposit }};;
- }
- dimension cleaning_fee {
- label: 'Cleaning Fee'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.cleaning_fee }};;
- }
- dimension guests_included {
- label: 'Guests Included'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.guests_included }};;
- }
- dimension extra_people {
- label: 'Extra People'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.extra_people }};;
- }
- dimension minimum_nights {
- label: 'Minimum Nights'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.minimum_nights }};;
- }
- dimension maximum_nights {
- label: 'Maximum Nights'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.maximum_nights }};;
- }
- dimension latitude {
- label: 'Latitude'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.latitude }};;
- }
- dimension longitude {
- label: 'Longitude'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.longitude }};;
- }
- dimension neighbourhood_id {
- label: 'Neighbourhood Id'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.neighbourhood_id }};;
- }
- dimension host_id {
- label: 'Host Id'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.host_id }};;
- }
-
- owner: 'triet.pham@holistics.io'
- table_name: '"homestay"."listings"'
-}
diff --git a/team-folders/Triet/homestay_neighbourhoods.model.aml b/team-folders/Triet/homestay_neighbourhoods.model.aml
deleted file mode 100644
index 0a091a91..00000000
--- a/team-folders/Triet/homestay_neighbourhoods.model.aml
+++ /dev/null
@@ -1,57 +0,0 @@
-Model homestay_neighbourhoods {
- type: 'table'
- label: 'Neighbourhoods'
- description: ''
- data_source_name: 'demodb'
- dimension id {
- label: 'Id'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.id }};;
- }
- dimension neighbourhood {
- label: 'Neighbourhood'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.neighbourhood }};;
- }
- dimension state {
- label: 'State'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.state }};;
- }
- dimension zipcode {
- label: 'Zipcode'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.zipcode }};;
- }
- dimension market {
- label: 'Market'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.market }};;
- }
- dimension smart_location {
- label: 'Smart Location'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.smart_location }};;
- }
- dimension country_code {
- label: 'Country Code'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.country_code }};;
- }
- dimension country {
- label: 'Country'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.country }};;
- }
-
- owner: 'triet.pham@holistics.io'
- table_name: '"homestay"."neighbourhoods"'
-}
diff --git a/team-folders/Vincent/data_operations_dashboard.page.aml b/team-folders/Vincent/data_operations_dashboard.page.aml
index 07ef7fd0..3dd9804a 100644
--- a/team-folders/Vincent/data_operations_dashboard.page.aml
+++ b/team-folders/Vincent/data_operations_dashboard.page.aml
@@ -180,48 +180,39 @@ Dashboard untitled_6 {
block t1: TextBlock {
content: @md
;;
}
- block t_nojx: TextBlock {
- content: @md
Self-service analytics, with DevOps best practices
-;;
- }
view: CanvasLayout {
label: 'View 1'
- height: 1500
+ height: 1340
grid_size: 20
block v2 {
- position: pos(20, 540, 1160, 400)
+ position: pos(20, 380, 1160, 400)
layer: 2
}
block v4 {
- position: pos(20, 180, 680, 260)
+ position: pos(20, 20, 680, 260)
}
block p1 {
- position: pos(720, 320, 460, 120)
+ position: pos(720, 180, 300, 100)
layer: 3
}
block v5 {
- position: pos(20, 960, 1160, 520)
+ position: pos(20, 800, 1160, 520)
}
block f1 {
- position: pos(720, 180, 440, 120)
+ position: pos(720, 20, 300, 100)
layer: 4
}
block t1 {
- position: pos(20, 460, 1160, 60)
+ position: pos(20, 300, 1160, 60)
layer: 5
}
- block t_nojx {
- position: pos(20, 20, 1160, 140)
- layer: 6
- }
mobile {
mode: 'auto'
}
- width: 1220
}
- theme: abc
+ theme: H.themes.classic
interactions: [
PopInteraction {
from: 'p1'
diff --git a/team-folders/Vux/archive/vux_archive.dataset.aml b/team-folders/Vux/archive/vux_archive.dataset.aml
deleted file mode 100644
index 26599b47..00000000
--- a/team-folders/Vux/archive/vux_archive.dataset.aml
+++ /dev/null
@@ -1,366 +0,0 @@
-// PreAggregate agg_daily {
-// dimension timestamp {
-// for: ref('order_master','order_created_at')
-// time_granularity: 'day'
-// }
-
-// measure order_count {
-// for: ref('order_master','order_id')
-// aggregation_type: 'count'
-// }
-
-// persistence: IncrementalPersistence {
-// schema: 'persisted'
-// incremental_column: 'timestamp'
-// }
-// }
-
-Dataset vux_archive {
- __engine__: 'aql' //turn this Dataset to using AQL Engine
- label: '[Demo] Ecommerce (Official)'
- description: "Official dataset for demoing E-commerce use cases test"
- owner: 'ha.pham+demo4@holistics.io'
- data_source_name: 'demodb'
-
-pre_aggregates: {
- daily: agg_daily
-}
-
-
- models: [
- order_master,
- ecommerce_orders,
- ecommerce_users,
- ecommerce_products,
- ecommerce_merchants,
- ecommerce_cities,
- ecommerce_countries,
- map_categories,
- user_cohort_retention,
- dim_dates,
- transform_order_items,
- ecommerce_product_images,
- param_model_nam
- ]
-
- // permission country_access {
- // field: ref('ecommerce_countries', 'continent_name')
- // operator: 'matches_user_attribute'
- // value: 'region'
- // }
-
- // view {
- // model ecommerce_users {
- // field users_signed_up_count
- // field total_users
- // group segmentation {
- // field age_group
- // field gender
- // }
-
-
- // group PII {
- // field id
- // field first_name
- // field last_name
- // field full_name
- // field email_pii
- // field phone
- // field birth_date
- // }
- // group others {
- // field sign_up_date
- // field sign_up_at
- // }
- // // }
- // model order_master {
- // group measures {
- // field order_count
- // field aov
- // field cancel_value_ratio
- // field cancelled_order_ratio
- // field cancelled_orders_count
- // field cancelled_value
- // field completed_order_count
- // field count_distinct_users
- // field delivered_orders_count
- // field gmv
- // field nmv
- // field refunded_orders_count
- // field revenue
- // field revenue_delivered
- // field users_count
- // }
-
- // group order_info {
- // field order_id
- // field status
- // field order_created_at
- // field quantity
- // field delivery_attempts
- // field discount
- // field last_order_value
- // }
-
- // group product {
- // field price
- // field product_id
-
- // }
- // }
- // model ecommerce_products
- // model ecommerce_countries
- // }
-
- dimension cohort_month {
- model: order_master
- label: 'Cohort Month'
- type: 'date'
- definition: @aql min(order_master.order_created_at | month()) | exact_grains(order_master.user_id)
- ;;
- }
-
- dimension month_no {
- model: order_master
- label: 'Month No'
- type: 'number'
- definition: @aql date_diff('month', order_master.cohort_month, order_master.order_created_at | month()) - 1 ;;
- }
-
-
- dimension cohort_size {
- model: order_master
- label: 'Cohort Size'
- type: 'number'
- definition: @aql count_distinct(order_master.user_id) | exact_grains(order_master.cohort_month) ;;
- }
-
- dimension experience {
- model: ecommerce_cities
- label: 'Experience Recommendation'
- type: 'text'
- definition: @aql concat(
- 'https://www.airbnb.com/s/',
- ecommerce_cities.name,
- '--',
- ecommerce_countries.name,
- '/experiences',
- );;
- }
-
- dimension ig {
- model: ecommerce_users
- label: 'IG search'
- type: 'text'
- definition: @aql concat(
- 'https://www.instagram.com/explore/search/keyword/?q=',
- ecommerce_users.first_name,
- );;
- }
-
- dimension fb {
- model: ecommerce_users
- label: 'Facebook search'
- type: 'text'
- definition: @aql concat(
- 'https://www.facebook.com/search/top/?q=',
- ecommerce_users.first_name,
- '%20',
- ecommerce_users.last_name,
- );;
- }
-
- dimension x {
- model: ecommerce_users
- label: 'X search'
- type: 'text'
- definition: @aql concat(
- 'https://x.com/search?q=%40',
- ecommerce_users.first_name,
- );;
- }
-
- dimension write_recommendation {
- model: ecommerce_users
- label: 'Claude AI Recommendation'
- type: 'text'
- definition: @aql concat(
- 'https://claude.ai/new?q=write+a+lively,+precise+and+personal+recommendation+email+with+email+title+(+3+recommendations+max+for+each+category+)+to+',
- ecommerce_users.full_name,
- '+,+a+',
- ecommerce_users.gender,
- '+tourist+from+',
- ecommerce_countries.origin,
- '+(+translate+to+his+or+her+language)+in+the+age+demographic+of+',
- ecommerce_users.age_group,
- '+who+is+going+to+',ecommerce_cities.name,
- '+in+',
- ecommerce_users.visit_time,
- '.+Categorize+by+Place+To+Visit+,+Event+to+go+to+during+that+month+,+Place+to+Dine+and+Wine+and+Place+to+book+hotel',
- );;
- }
-
- dimension aov_by_product {
- model: order_master
- label: 'AOV by Product'
- type: 'text'
- definition: @aql dimensionalize(order_master.aov, order_master.product_id) ;;
- }
-
- dimension gmv_by_product {
- model: order_master
- label: 'GMV by Product'
- type: 'text'
- definition: @aql dimensionalize(order_master.gmv, order_master.product_id) ;;
- }
-
- dimension product_performance_analysis {
- model: order_master
- label: 'Product Performance Analysis'
- type: 'text'
- definition: @aql concat(
- 'https://claude.ai/new?q=write+an_analysis+for+',
- ecommerce_products.name,
- '.+The+GMV+for+this+product+is+',
- order_master.gmv_by_product,
- '+and+the+AOV+for+this+product+is+',
- order_master.aov_by_product,
- )
- ;;
- }
- dimension month_number {
- label: "Month Number"
- type: "number"
- hidden: false
- description: ""
- definition: @aql ecommerce_orders.created_at | month_num();;
- model: ecommerce_orders
- }
-
- relationships: [
- relationship(ecommerce_orders_dim_dates, true),
- relationship(ecommerce_orders_ecommerce_users, true),
- relationship(ecommerce_products_map_categories, true),
- relationship(ecommerce_users_ecommerce_cities, true),
- relationship(order_master_ecommerce_merchants, true),
- relationship(order_master_ecommerce_orders, true),
- relationship(order_master_ecommerce_products, true)
- ,
- relationship(ecommerce_products.id - ecommerce_product_images.product_id, true)
- ,
- relationship(ecommerce_cities.country_code > ecommerce_countries.code, true)
- ]
- metric total_orders {
- label: "Total Orders"
- type: "number"
- hidden: false
- description: ""
- definition: @aql count(ecommerce_orders.id);;
- }
- metric total_orders_across_all {
- label: "Total Orders Across All"
- type: "number"
- hidden: false
- description: ""
- definition: @aql count(ecommerce_orders.id) | of_all(ecommerce_orders);;
- }
- metric percent_of_total {
- label: "Percent Of Total"
- type: "number"
- hidden: false
- description: ""
- definition: @aql total_orders * 1.0 / total_orders_across_all;;
- }
- // metric abc {
- // label: "Abc"
- // type: "number"
- // hidden: false
- // description: ""
- // definition: @aql count(ecommerce_orders.id) | where(ecommerce_users.gender == 'm', ecommerce_cities.name == 'New York');;
- // }
- metric month_number {
- label: "Month Number"
- type: "number"
- hidden: false
- description: ""
- definition: @aql ecommerce_orders.created_at | month_num();;
- }
- metric running_total {
- label: "Running Total"
- type: "number"
- hidden: false
- description: ""
- definition: @aql running_total(total_orders, ecommerce_orders.created_at | year());;
- }
-
- metric dynamic_metric {
- label: 'Dynamic Metric'
- type: 'number'
- definition: @aql
- case(
- when: 'total users' in param_model_nam.metric_selections
- , then: ecommerce_users.total_users
-
- , when: 'total orders' in param_model_nam.metric_selections
- , then: total_orders
-
- , when: 'total products' in param_model_nam.metric_selections
- , then: ecommerce_products.total_products
- )
- ;;
- }
-
- dimension breakdown_dim {
- label: 'Dynamic Breakdown Dimension'
- type: 'text'
- model: order_master
- definition: @aql case(
- when: 'Country Names' in param_model_nam.dim_selections
- , then: ecommerce_countries.name
-
- , when: 'Age Demographic' in param_model_nam.dim_selections
- , then: ecommerce_users.age_group
-
- , when: 'Order Status' in param_model_nam.dim_selections
- , then: order_master.status
-
- , when: 'Product Categories' in param_model_nam.dim_selections
- , then: map_categories.category
- ) ;;
- }
-
- metric avg_latest_6m_normalized {
- label: 'Latest 6m Avg Normalized Consumption (Nested Agg.)'
- type: 'number'
- definition: @aql unique(order_master.order_created_at)
- | select(
- order_master.order_created_at
- , v: order_master.amount
- | window_avg(-5..0, order: order_master.order_created_at, null_if_incomplete: false)
- )
- filter(
- order_master.order_created_at == window_max(max(order_master.order_created_at), ..)
- )
- | min(v)
- | of_all(order_master.order_created_at)
- ;;
- }
-
- metric avg_latest_13_18m_normalized {
- label: 'Latest 13_18m Avg Normalized Consumption (Nested Agg.)'
- type: 'number'
- definition: @aql unique(order_master.order_created_at)
- | select(
- order_master.order_created_at
- , v: order_master.amount
- | window_avg(-17..-12, order: order_master.order_created_at, null_if_incomplete: false)
- )
- | filter(
- order_master.order_created_at == window_max(max(order_master.order_created_at), ..)
- )
- | min(v)
- | of_all(order_master.order_created_at)
- ;;
- }
-
-}
diff --git a/team-folders/Vux/archive/vux_archive_canvas.page.aml b/team-folders/Vux/archive/vux_archive_canvas.page.aml
deleted file mode 100644
index ce2e5931..00000000
--- a/team-folders/Vux/archive/vux_archive_canvas.page.aml
+++ /dev/null
@@ -1,58 +0,0 @@
-@tag('1οΈβ£ Trust/Endorsed', 'Status/Archived')
-Dashboard vux_archive_canvas {
- title: 'Vux Archive Canvas'
- description: ''
- block title: TextBlock {
- content: @md # Your title goes here ;;
- }
- block v_ekq5: VizBlock {
- label: 'Total Orders Across All and Running Total'
- viz: DataTable {
- dataset: vux_archive
- fields: [
- VizFieldFull {
- ref: r(vux_archive.total_orders_across_all)
- format {
- type: 'number'
- pattern: 'inherited'
- }
- },
- VizFieldFull {
- ref: r(vux_archive.running_total)
- format {
- type: 'number'
- pattern: 'inherited'
- }
- }
- ]
- settings {
- show_row_number: true
- row_limit: 5000
- aggregate_awareness {
- enabled: true
- debug_comments: true
- }
- }
- }
- }
-
- view: CanvasLayout {
- label: 'View 1'
- width: 1300
- height: 800
- grid_size: 20
- auto_expand_vertically: true
- block title {
- position: pos(20, 20, 1260, 60)
- }
- block v_ekq5 {
- position: pos(20, 100, 620, 420)
- layer: 1
- }
- mobile {
- mode: 'auto'
- }
- }
-
- theme: H.themes.vanilla
-}
\ No newline at end of file
diff --git a/team-folders/Vux/archive/test_format.model.aml b/team-folders/Vux/test_format.model.aml
similarity index 100%
rename from team-folders/Vux/archive/test_format.model.aml
rename to team-folders/Vux/test_format.model.aml
diff --git a/team-folders/Vux/archive/test_num.dataset.aml b/team-folders/Vux/test_num.dataset.aml
similarity index 100%
rename from team-folders/Vux/archive/test_num.dataset.aml
rename to team-folders/Vux/test_num.dataset.aml
diff --git a/team-folders/Vux/vux-test.page.aml b/team-folders/Vux/vux-test.page.aml
deleted file mode 100644
index 661365e3..00000000
--- a/team-folders/Vux/vux-test.page.aml
+++ /dev/null
@@ -1,238 +0,0 @@
-Dashboard vux_test {
- title: 'vux-test'
- description: ''
- owner: 'vu.dq@holistics.io'
- block title: TextBlock {
- content: @md # Your title goes here ;;
- }
- block v_a79o: VizBlock {
- label: 'Revenue Percentage by Status'
- viz: PieChart {
- dataset: ecom_dataset_vux
- calculation revenue_percentage {
- label: 'Revenue Percentage'
- formula: @aql (order_master.revenue * 1.0)
-/ (order_master.revenue | of_all(order_master, keep_filters: true));;
- calc_type: 'measure'
- data_type: 'number'
- }
- legend: VizFieldFull {
- ref: r(order_master.status)
- format {
- type: 'text'
- }
- }
- series {
- field: VizFieldFull {
- ref: 'revenue_percentage'
- format {
- type: 'number'
- pattern: '#,###%'
- }
- }
- }
- settings {
- display_as_donut: true
- row_limit: 5000
- show_percentage: true
- data_label_position: 'none'
- aggregate_awareness {
- enabled: true
- debug_comments: true
- }
- }
- }
- }
- block v_no1k: VizBlock {
- label: 'Revenue by Continent'
- viz: ColumnChart {
- dataset: ecom_dataset_vux
- calculation revenue_percentage {
- label: 'Revenue Percentage'
- formula: @aql (order_master.revenue * 1.0)
-/ (order_master.revenue | of_all(order_master, keep_filters: true));;
- calc_type: 'measure'
- data_type: 'number'
- }
- legend: VizFieldFull {
- ref: r(ecommerce_countries.continent_name)
- format {
- type: 'text'
- }
- }
- y_axis {
- series {
- field: VizFieldFull {
- ref: r(order_master.revenue)
- format {
- type: 'number'
- pattern: 'inherited'
- }
- }
- settings {
- color_palette: 'seq-magma'
- point {
- value: 'Asia'
- color: '#FBFDBF'
- }
- point {
- value: 'Europe'
- color: '#FB8761'
- }
- point {
- value: 'North America'
- color: '#B5367A'
- }
- point {
- value: 'Oceania'
- color: '#4F127B'
- }
- }
- }
- }
- settings {
- row_limit: 5000
- x_axis_show_null_datetime: false
- aggregate_awareness {
- enabled: true
- debug_comments: true
- }
- }
- }
- }
- block f_order_master_order_created_at: FilterBlock {
- label: 'Order Master Order Created At'
- type: 'field'
- source: FieldFilterSource {
- dataset: ecom_dataset_vux
- field: r(order_master.order_created_at)
- }
- default {
- operator: 'matches'
- value: '$H_NIL$'
- }
- }
- block v_mxlz: VizBlock {
- label: 'Revenue Percentage by Status copy'
- viz: MetricSheet {
- dataset: ecom_dataset_vux
- calculation revenue_percentage {
- label: 'Revenue Percentage'
- formula: @aql (order_master.revenue * 1.0)
-/ (order_master.revenue | of_all(order_master, keep_filters: true));;
- calc_type: 'measure'
- data_type: 'number'
- }
- date_field: VizFieldFull {
- ref: r(order_master.order_created_date)
- transformation: 'datetrunc month'
- format {
- type: 'date'
- pattern: 'LLL yyyy'
- }
- }
- rows: [
- MetricSeries {
- field: VizFieldFull {
- ref: r(ecom_dataset_vux.total_orders)
- format {
- type: 'number'
- pattern: 'inherited'
- }
- }
- settings {
- mark_type: 'line'
- }
- },
- MetricSeries {
- field: VizFieldFull {
- ref: r(ecom_dataset_vux.running_total)
- format {
- type: 'number'
- pattern: 'inherited'
- }
- }
- }
- ]
- settings {
- aggregate_awareness {
- enabled: true
- debug_comments: true
- }
- }
- }
- }
-
- view: TabLayout {
- label: 'View 1'
- tab view_1: CanvasLayout {
- label: 'Tab 1'
- width: 640
- height: 880
- grid_size: 20
- auto_expand_vertically: true
- block v_a79o {
- position: pos(20, 100, 600, 460)
- }
- block f_order_master_order_created_at {
- position: pos(20, 20, 300, 80)
- }
- block v_mxlz {
- position: pos(20, 580, 600, 220)
- }
- mobile {
- mode: 'auto'
- }
- }
- tab tab_d9q1: CanvasLayout {
- label: 'Tab 2'
- width: 1300
- height: 800
- grid_size: 20
- auto_expand_vertically: true
- mobile {
- mode: 'auto'
- }
- block v_no1k {
- position: pos(120, 120, 600, 460)
- }
- block f_order_master_order_created_at {
- position: pos(20, 20, 300, 80)
- }
- }
- }
-
- theme: H.themes.vanilla
- interactions: [
- FilterInteraction {
- from: 'v_a79o'
- to: [
- CustomMapping {
- block: 'v_no1k'
- disabled: true
- }
- ]
- },
- FilterInteraction {
- from: 'v_no1k'
- to: [
- CustomMapping {
- block: [
- 'v_a79o',
- 'v_mxlz'
- ]
- disabled: true
- }
- ]
- },
- FilterInteraction {
- from: 'v_mxlz'
- to: [
- CustomMapping {
- block: 'v_no1k'
- disabled: true
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/team-folders/VyHuynh/Vy's Dashboard/Onboarding Dashboard.page.aml b/team-folders/VyHuynh/Vy's Dashboard/Onboarding Dashboard.page.aml
deleted file mode 100644
index 4378f363..00000000
--- a/team-folders/VyHuynh/Vy's Dashboard/Onboarding Dashboard.page.aml
+++ /dev/null
@@ -1,107 +0,0 @@
-Dashboard onboarding_dashboard {
- title: 'Onboarding Dashboard'
- owner: 'vy@holistics.io'
- description: ''
- block title: TextBlock {
- content: @md # Order by Month Dashboard ;;
- }
- block v1: VizBlock {
- label: 'Day Created At and Full Name'
- viz: DataTable {
- dataset: vyhuynh_ecommerce_dataset
- fields: [
- VizFieldFull {
- ref: ref('vyht_ecommerce_orders_1', 'created_at')
- transformation: 'datetrunc day'
- format {
- type: 'date'
- pattern: 'LLL dd, yyyy'
- }
- },
- VizFieldFull {
- ref: ref('vyht_ecommerce_users_1', 'full_name')
- format {
- type: 'text'
- }
- }
- ]
- settings {
- wrap_header_text: true
- show_row_number: true
- sorts: [
- SortSetting {
- field_index: 0
- direction: 'asc'
- }
- ]
- row_limit: 5000
- aggregate_awareness {
- enabled: true
- debug_comments: true
- }
- }
- }
- }
- block v2: VizBlock {
- label: 'Order by Month'
- viz: ColumnChart {
- dataset: vyhuynh_ecommerce_dataset
- x_axis: VizFieldFull {
- ref: ref('vyht_ecommerce_orders_1', 'created_at')
- transformation: 'datetrunc month'
- format {
- type: 'date'
- pattern: 'LLL yyyy'
- }
- }
- y_axis {
- label: 'Number of Order'
- settings {
- show_data_label_by: 'value'
- }
- series {
- field: VizFieldFull {
- label: 'Number of Orders'
- ref: ref('vyht_ecommerce_orders_1', 'id')
- aggregation: 'count distinct'
- format {
- type: 'number'
- pattern: 'inherited'
- }
- }
- }
- }
- settings {
- row_limit: 5000
- legend_label: 'hidden'
- x_axis_show_null_datetime: false
- aggregate_awareness {
- enabled: true
- debug_comments: true
- }
- }
- }
- }
-
- view: CanvasLayout {
- label: 'View 1'
- height: 840
- grid_size: 20
- block title {
- position: pos(20, 20, 1160, 60)
- }
- block v1 {
- position: pos(20, 100, 760, 260)
- layer: 1
- }
- block v2 {
- position: pos(20, 380, 760, 300)
- layer: 2
- }
- mobile {
- mode: 'auto'
- }
- }
-
- theme: H.themes.vanilla
-}
\ No newline at end of file
diff --git a/team-folders/VyHuynh/Vy's Dashboard/vy_tesst.page.aml b/team-folders/VyHuynh/Vy's Dashboard/vy_tesst.page.aml
deleted file mode 100644
index c74fbcce..00000000
--- a/team-folders/VyHuynh/Vy's Dashboard/vy_tesst.page.aml
+++ /dev/null
@@ -1,242 +0,0 @@
-Dashboard vy_tesst {
- title: 'Vy Huynh'
- description: ''
- block v_3p4p: VizBlock {
- label: 'GMV - Gross Merchandise Value by Month'
- viz: DataTable {
- dataset: vy_test_dataset
- fields: [
- VizFieldFull {
- ref: r(test_data_axis_scale_csv.date)
- format {
- type: 'date'
- }
- },
- VizFieldFull {
- ref: r(test_data_axis_scale_csv.sales)
- aggregation: 'sum'
- format {
- type: 'number'
- pattern: 'inherited'
- }
- uname: 'sum_sales'
- }
- ]
- settings {
- show_row_number: true
- conditional_formats: [
- ConditionalFormat {
- key: 'sum_sales'
- aggregation: 'sum'
- format: ScaleFormat {
- min {
- value: 1
- color: '#FFFFFF'
- }
- max {
- value: 100
- color: '#47B881'
- }
- }
- }
- ]
- row_limit: 5000
- aggregate_awareness {
- enabled: true
- debug_comments: true
- }
- }
- }
- }
- block v_5ria: VizBlock {
- label: 'Membership name and Amount'
- viz: DataTable {
- dataset: vy_test_dataset
- fields: [
- VizFieldFull {
- ref: r(test_data_null_dim_value_csv.membership_name)
- format {
- type: 'text'
- }
- },
- VizFieldFull {
- ref: r(test_data_null_dim_value_csv.amount)
- format {
- type: 'number'
- pattern: 'inherited'
- }
- }
- ]
- settings {
- show_sum_row: true
- show_row_number: true
- row_limit: 5000
- aggregate_awareness {
- enabled: true
- debug_comments: true
- }
- }
- }
- }
- block f_5fa3: FilterBlock {
- label: 'Membership name'
- type: 'field'
- source: FieldFilterSource {
- dataset: vy_test_dataset
- field: r(test_data_null_dim_value_csv.membership_name)
- }
- default {
- operator: 'is'
- value: []
- }
- }
- block v_nd61: VizBlock {
- label: 'Revenue by Sales rep'
- viz: BarChart {
- dataset: vy_test_dataset
- x_axis: VizFieldFull {
- ref: r(vy_sales_revenue_demo_csv.sales_rep)
- format {
- type: 'text'
- }
- }
- y_axis {
- series {
- field: VizFieldFull {
- label: 'Revenue (USD)'
- ref: r(vy_sales_revenue_demo_csv.revenue_usd)
- aggregation: 'sum'
- format {
- type: 'number'
- pattern: '#,###0.00,"K"'
- }
- }
- }
- series {
- field: VizFieldFull {
- label: 'Avg revenue'
- ref: r(vy_sales_revenue_demo_csv.revenue_usd)
- aggregation: 'avg'
- format {
- type: 'number'
- pattern: 'inherited'
- }
- analytic: ReferenceLine {
- type: 'avg'
- }
- }
- }
- }
- settings {
- row_limit: 5000
- x_axis_show_null_datetime: false
- aggregate_awareness {
- enabled: true
- debug_comments: true
- }
- }
- }
- }
-
- view: TabLayout {
- label: 'View 1'
- tab tab1: CanvasLayout {
- label: 'Tab 1'
- width: 1300
- height: 1220
- grid_size: 20
- auto_expand_vertically: true
- block v_3p4p {
- position: pos(20, 20, 1160, 580)
- layer: 1
- }
- mobile {
- mode: 'auto'
- }
- }
- tab tab2: CanvasLayout {
- label: 'Tab 2'
- width: 1300
- height: 800
- grid_size: 20
- auto_expand_vertically: true
- mobile {
- mode: 'auto'
- }
- block v_5ria {
- position: pos(40, 100, 540, 220)
- layer: 1
- }
- block f_5fa3 {
- position: pos(40, 20, 300, 80)
- layer: 2
- }
- }
- tab tab_zn8j: CanvasLayout {
- label: 'Tab 3'
- width: 1300
- height: 800
- grid_size: 20
- auto_expand_vertically: true
- mobile {
- mode: 'auto'
- }
- block v_nd61 {
- position: pos(20, 20, 1260, 640)
- layer: 1
- }
- }
- }
-
- theme: H.themes.vanilla
- interactions: [
- FilterInteraction {
- from: 'v_3p4p'
- to: [
- CustomMapping {
- block: [
- 'v_5ria',
- 'v_nd61'
- ]
- disabled: true
- }
- ]
- },
- FilterInteraction {
- from: 'v_5ria'
- to: [
- CustomMapping {
- block: [
- 'v_3p4p',
- 'v_nd61'
- ]
- disabled: true
- }
- ]
- },
- FilterInteraction {
- from: 'f_5fa3'
- to: [
- CustomMapping {
- block: [
- 'v_3p4p',
- 'v_nd61'
- ]
- disabled: true
- }
- ]
- },
- FilterInteraction {
- from: 'v_nd61'
- to: [
- CustomMapping {
- block: [
- 'v_3p4p',
- 'v_5ria'
- ]
- disabled: true
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/team-folders/VyHuynh/Vy's Dashboard/vy_test.page.aml b/team-folders/VyHuynh/Vy's Dashboard/vy_test.page.aml
deleted file mode 100644
index 9e6cabfe..00000000
--- a/team-folders/VyHuynh/Vy's Dashboard/vy_test.page.aml
+++ /dev/null
@@ -1,444 +0,0 @@
-Dashboard vy_test_filter {
- title: 'Vy - Test filter'
- block v_y0de: VizBlock {
- label: 'Viz 1'
- viz: DataTable {
- dataset: simple_dataset
- fields: [
- VizFieldFull {
- ref: r(ecommerce_orders.created_date)
- format {
- type: 'date'
- }
- uname: 'ecommerce_orders_created_date_1'
- },
- VizFieldFull {
- ref: r(simple_dataset.count_orders)
- format {
- type: 'number'
- pattern: 'inherited'
- }
- }
- ]
- settings {
- show_row_number: true
- sorts: [
- SortSetting {
- key: 'ecommerce_orders_created_date_1'
- direction: 'desc'
- }
- ]
- row_limit: 5000
- aggregate_awareness {
- enabled: true
- debug_comments: true
- }
- }
- }
- }
- block v_46u5: VizBlock {
- label: 'Viz 2'
- viz: DataTable {
- dataset: simple_dataset
- fields: [
- VizFieldFull {
- ref: r(ecommerce_orders.created_date)
- format {
- type: 'date'
- }
- uname: 'ecommerce_orders_created_date_1'
- },
- VizFieldFull {
- ref: r(ecommerce_users.email_user)
- aggregation: 'count distinct'
- format {
- type: 'number'
- pattern: 'inherited'
- }
- }
- ]
- settings {
- show_row_number: true
- sorts: [
- SortSetting {
- key: 'ecommerce_orders_created_date_1'
- direction: 'desc'
- }
- ]
- row_limit: 5000
- aggregate_awareness {
- enabled: true
- debug_comments: true
- }
- }
- }
- }
- block f_9fvy: FilterBlock {
- label: 'Filter 1'
- type: 'field'
- source: FieldFilterSource {
- dataset: simple_dataset
- field: r(ecommerce_users.total_users)
- }
- default {
- operator: 'is'
- value: []
- }
- }
- block f_mgwx: FilterBlock {
- label: 'Filter 1b'
- type: 'field'
- source: FieldFilterSource {
- dataset: simple_dataset
- field: r(ecommerce_orders.created_date)
- }
- default {
- operator: 'matches'
- value: '$H_NIL$'
- }
- }
- block f_ogrm: FilterBlock {
- label: 'Filter 2'
- type: 'field'
- source: FieldFilterSource {
- dataset: simple_dataset
- field: r(ecommerce_orders.created_date)
- }
- default {
- operator: 'matches'
- value: '$H_NIL$'
- }
- }
- block v_u49b: VizBlock {
- label: 'Created Date and Total Orders Count'
- viz: DataTable {
- dataset: simple_dataset
- fields: [
- VizFieldFull {
- ref: r(ecommerce_orders.created_date)
- format {
- type: 'date'
- }
- },
- VizFieldFull {
- ref: r(ecommerce_orders.total_orders_count)
- format {
- type: 'number'
- pattern: 'inherited'
- }
- }
- ]
- settings {
- show_row_number: true
- row_limit: 5000
- aggregate_awareness {
- enabled: true
- debug_comments: true
- }
- }
- }
- }
- block f_hjo7: FilterBlock {
- label: 'Filter 3'
- type: 'field'
- source: FieldFilterSource {
- dataset: simple_dataset
- field: r(ecommerce_orders.created_date)
- }
- default {
- operator: 'matches'
- value: '$H_NIL$'
- }
- }
- block f_ljyd: FilterBlock {
- label: 'Filter all'
- type: 'field'
- source: FieldFilterSource {
- dataset: simple_dataset
- field: r(ecommerce_orders.created_date)
- }
- default {
- operator: 'matches'
- value: '$H_NIL$'
- }
- }
- block v_az3q: VizBlock {
- label: 'Created Date, Name, and Delivered Orders Count'
- viz: DataTable {
- dataset: simple_dataset
- fields: [
- VizFieldFull {
- ref: r(ecommerce_orders.created_date)
- format {
- type: 'date'
- }
- },
- VizFieldFull {
- ref: r(ecommerce_categories.name)
- format {
- type: 'text'
- }
- },
- VizFieldFull {
- ref: r(ecommerce_orders.delivered_orders_count)
- format {
- type: 'number'
- pattern: 'inherited'
- }
- }
- ]
- settings {
- show_row_number: true
- row_limit: 5000
- aggregate_awareness {
- enabled: true
- debug_comments: true
- }
- }
- }
- }
- block f_co5t: FilterBlock {
- label: 'Filter 4'
- type: 'field'
- source: FieldFilterSource {
- dataset: simple_dataset
- field: r(ecommerce_categories.name)
- }
- default {
- operator: 'is'
- value: []
- }
- }
- view: TabLayout {
- label: 'View 1'
- tab tab1: CanvasLayout {
- label: 'Tab 1'
- width: 1300
- height: 980
- grid_size: 20
- auto_expand_vertically: true
- block v_y0de {
- position: pos(20, 100, 380, 380)
- layer: 1
- }
- block v_46u5 {
- position: pos(20, 580, 380, 380)
- layer: 1
- }
- block f_9fvy {
- position: pos(20, 20, 300, 80)
- layer: 2
- }
- block f_mgwx {
- position: pos(340, 20, 300, 80)
- layer: 2
- }
- block f_ogrm {
- position: pos(20, 500, 300, 80)
- layer: 2
- }
- block f_ljyd {
- position: pos(860, 20, 300, 80)
- layer: 2
- }
- mobile {
- mode: 'auto'
- }
- }
- tab tab2: CanvasLayout {
- label: 'Tab 2'
- width: 1300
- height: 800
- grid_size: 20
- auto_expand_vertically: true
- mobile {
- mode: 'auto'
- }
- block v_u49b {
- position: pos(20, 120, 620, 420)
- layer: 1
- }
- block f_hjo7 {
- position: pos(20, 20, 300, 80)
- layer: 2
- }
- }
- tab tab_dwh1: CanvasLayout {
- label: 'Tab 3'
- width: 1300
- height: 800
- grid_size: 20
- auto_expand_vertically: true
- mobile {
- mode: 'auto'
- }
- block v_az3q {
- position: pos(20, 120, 620, 420)
- layer: 1
- }
- block f_co5t {
- position: pos(20, 20, 300, 80)
- layer: 2
- }
- }
- }
- theme: H.themes.vanilla
- interactions: [
- FilterInteraction {
- from: 'v_y0de'
- to: [
- CustomMapping {
- block: [
- 'v_u49b',
- 'v_az3q'
- ]
- disabled: true
- }
- ]
- },
- FilterInteraction {
- from: 'v_46u5'
- to: [
- CustomMapping {
- block: [
- 'v_u49b',
- 'v_az3q'
- ]
- disabled: true
- }
- ]
- },
- FilterInteraction {
- from: 'f_9fvy'
- to: [
- CustomMapping {
- block: [
- 'v_46u5',
- 'v_u49b',
- 'v_az3q',
- 'f_mgwx',
- 'f_ogrm',
- 'f_hjo7',
- 'f_ljyd',
- 'f_co5t'
- ]
- disabled: true
- }
- ]
- },
- FilterInteraction {
- from: 'f_mgwx'
- to: [
- CustomMapping {
- block: [
- 'v_46u5',
- 'v_u49b',
- 'v_az3q',
- 'f_9fvy',
- 'f_ogrm',
- 'f_hjo7',
- 'f_ljyd',
- 'f_co5t'
- ]
- disabled: true
- }
- ]
- },
- FilterInteraction {
- from: 'f_ogrm'
- to: [
- CustomMapping {
- block: [
- 'v_y0de',
- 'v_u49b',
- 'v_az3q',
- 'f_9fvy',
- 'f_mgwx',
- 'f_hjo7',
- 'f_ljyd',
- 'f_co5t'
- ]
- disabled: true
- }
- ]
- },
- FilterInteraction {
- from: 'v_u49b'
- to: [
- CustomMapping {
- block: [
- 'v_y0de',
- 'v_46u5',
- 'v_az3q'
- ]
- disabled: true
- }
- ]
- },
- FilterInteraction {
- from: 'f_hjo7'
- to: [
- CustomMapping {
- block: [
- 'v_y0de',
- 'v_46u5',
- 'v_az3q',
- 'f_9fvy',
- 'f_mgwx',
- 'f_ogrm',
- 'f_ljyd',
- 'f_co5t'
- ]
- disabled: true
- }
- ]
- },
- FilterInteraction {
- from: 'f_ljyd'
- to: [
- CustomMapping {
- block: [
- 'v_az3q',
- 'f_9fvy',
- 'f_mgwx',
- 'f_ogrm',
- 'f_hjo7',
- 'f_co5t'
- ]
- disabled: true
- }
- ]
- },
- FilterInteraction {
- from: 'v_az3q'
- to: [
- CustomMapping {
- block: [
- 'v_y0de',
- 'v_46u5',
- 'v_u49b'
- ]
- disabled: true
- }
- ]
- },
- FilterInteraction {
- from: 'f_co5t'
- to: [
- CustomMapping {
- block: [
- 'v_y0de',
- 'v_46u5',
- 'v_u49b',
- 'f_9fvy',
- 'f_mgwx',
- 'f_ogrm',
- 'f_hjo7',
- 'f_ljyd'
- ]
- disabled: true
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/team-folders/VyHuynh/Vy's Model/Ecommerce/ecommerce_order_items.model.aml b/team-folders/VyHuynh/Vy's Model/Ecommerce/ecommerce_order_items.model.aml
deleted file mode 100644
index c7d15074..00000000
--- a/team-folders/VyHuynh/Vy's Model/Ecommerce/ecommerce_order_items.model.aml
+++ /dev/null
@@ -1,27 +0,0 @@
-Model vyht_ecommerce_order_items {
- type: 'table'
- label: 'Order Items'
- description: ''
- data_source_name: 'demodb'
- dimension order_id {
- label: 'Order Id'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.order_id }};;
- }
- dimension product_id {
- label: 'Product Id'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.product_id }};;
- }
- dimension quantity {
- label: 'Quantity'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.quantity }};;
- }
-
- owner: 'vy.ht@holistics.io'
- table_name: '"ecommerce"."order_items"'
-}
diff --git a/team-folders/VyHuynh/Vy's Model/Ecommerce/ecommerce_orders_1.model.aml b/team-folders/VyHuynh/Vy's Model/Ecommerce/ecommerce_orders_1.model.aml
deleted file mode 100644
index 2e818cdf..00000000
--- a/team-folders/VyHuynh/Vy's Model/Ecommerce/ecommerce_orders_1.model.aml
+++ /dev/null
@@ -1,45 +0,0 @@
-Model vyht_ecommerce_orders_1 {
- type: 'table'
- label: 'Orders'
- description: ''
- data_source_name: 'demodb'
- dimension id {
- label: 'Id'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.id }};;
- }
- dimension status {
- label: 'Status'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.status }};;
- }
- dimension created_at {
- label: 'Created At'
- type: 'datetime'
- hidden: false
- definition: @sql {{ #SOURCE.created_at }};;
- }
- dimension user_id {
- label: 'User Id'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.user_id }};;
- }
- dimension discount {
- label: 'Discount'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.discount }};;
- }
- dimension delivery_attempts {
- label: 'Delivery Attempts'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.delivery_attempts }};;
- }
-
- owner: 'vy.ht@holistics.io'
- table_name: '"ecommerce"."orders"'
-}
diff --git a/team-folders/VyHuynh/Vy's Model/Ecommerce/ecommerce_products.model.aml b/team-folders/VyHuynh/Vy's Model/Ecommerce/ecommerce_products.model.aml
deleted file mode 100644
index b63359c7..00000000
--- a/team-folders/VyHuynh/Vy's Model/Ecommerce/ecommerce_products.model.aml
+++ /dev/null
@@ -1,57 +0,0 @@
-Model vyht_ecommerce_products {
- type: 'table'
- label: 'Products'
- description: ''
- data_source_name: 'demodb'
- dimension id {
- label: 'Id'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.id }};;
- }
- dimension category_id {
- label: 'Category Id'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.category_id }};;
- }
- dimension name {
- label: 'Name'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.name }};;
- }
- dimension merchant_id {
- label: 'Merchant Id'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.merchant_id }};;
- }
- dimension created_at {
- label: 'Created At'
- type: 'datetime'
- hidden: false
- definition: @sql {{ #SOURCE.created_at }};;
- }
- dimension price {
- label: 'Price'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.price }};;
- }
- dimension cost {
- label: 'Cost'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.cost }};;
- }
- dimension product_image_url {
- label: 'Product Image Url'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.product_image_url }};;
- }
-
- owner: 'vy.ht@holistics.io'
- table_name: '"ecommerce"."products"'
-}
diff --git a/team-folders/VyHuynh/Vy's Model/Ecommerce/ecommerce_users_1.model.aml b/team-folders/VyHuynh/Vy's Model/Ecommerce/ecommerce_users_1.model.aml
deleted file mode 100644
index 6f14d287..00000000
--- a/team-folders/VyHuynh/Vy's Model/Ecommerce/ecommerce_users_1.model.aml
+++ /dev/null
@@ -1,69 +0,0 @@
-Model vyht_ecommerce_users_1 {
- type: 'table'
- label: 'Users'
- description: ''
- data_source_name: 'demodb'
- dimension id {
- label: 'Id'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.id }};;
- }
- dimension sign_up_date {
- label: 'Sign Up Date'
- type: 'date'
- hidden: false
- definition: @sql {{ #SOURCE.sign_up_date }};;
- }
- dimension sign_up_at {
- label: 'Sign Up At'
- type: 'datetime'
- hidden: false
- definition: @sql {{ #SOURCE.sign_up_at }};;
- }
- dimension first_name {
- label: 'First Name'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.first_name }};;
- }
- dimension last_name {
- label: 'Last Name'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.last_name }};;
- }
- dimension email {
- label: 'Email'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.email }};;
- }
- dimension birth_date {
- label: 'Birth Date'
- type: 'date'
- hidden: false
- definition: @sql {{ #SOURCE.birth_date }};;
- }
- dimension gender {
- label: 'Gender'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.gender }};;
- }
- dimension city_id {
- label: 'City Id'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.city_id }};;
- }
- dimension full_name {
- label: 'Full Name'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.full_name }};;
- }
-
- owner: 'vy.ht@holistics.io'
- table_name: '"ecommerce"."users"'
-}
diff --git a/team-folders/VyHuynh/Vy's Model/vy_test_dataset.dataset.aml b/team-folders/VyHuynh/Vy's Model/vy_test_dataset.dataset.aml
deleted file mode 100644
index 2e516f59..00000000
--- a/team-folders/VyHuynh/Vy's Model/vy_test_dataset.dataset.aml
+++ /dev/null
@@ -1,13 +0,0 @@
-Dataset vy_test_dataset {
- label: 'vy_test_dataset'
- description: ''
- data_source_name: 'demodb'
- models: [
- test_data_axis_scale_csv
- ,
- test_data_null_dim_value_csv
- ,
- vy_sales_revenue_demo_csv
- ]
- relationships: []
-}
\ No newline at end of file
diff --git a/team-folders/khai/Active dates/dim_students.model.aml b/team-folders/khai/Active dates/dim_students.model.aml
deleted file mode 100644
index 46e310ac..00000000
--- a/team-folders/khai/Active dates/dim_students.model.aml
+++ /dev/null
@@ -1,95 +0,0 @@
-Model dim_students {
- type: 'query'
- label: 'Dim Students'
- description: ''
- data_source_name: 'demodb'
- dimension student_number {
- label: 'Student Number'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.student_number }};;
- }
- dimension student_name {
- label: 'Student Name'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.student_name }};;
- }
- dimension date_of_birth {
- label: 'Date Of Birth'
- type: 'date'
- hidden: false
- definition: @sql {{ #SOURCE.date_of_birth }};;
- }
- dimension gender {
- label: 'Gender'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.gender }};;
- }
- dimension ethnicity {
- label: 'Ethnicity'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.ethnicity }};;
- }
- dimension grade_level {
- label: 'Grade Level'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.grade_level }};;
- }
- dimension enrollment_start_date {
- label: 'Enrollment Start Date'
- type: 'date'
- hidden: false
- definition: @sql {{ #SOURCE.enrollment_start_date }};;
- }
- dimension enrollment_end_date {
- label: 'Enrollment End Date'
- type: 'date'
- hidden: false
- definition: @sql {{ #SOURCE.enrollment_end_date }};;
- }
- dimension membership_value {
- label: 'Membership Value'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.membership_value }};;
- }
-
- param date_selected {
- label: 'Date Selected'
- type: 'date'
- }
-
- owner: 'khai.to@holistics.io'
- query: @sql
- SELECT *
- FROM (VALUES
- (1001, 'Alice Johnson', '2009-03-12'::date, 'F', 'White', 9, '2023-08-15'::date, '2024-06-10'::date, 1),
- (1002, 'Brian Lee', '2008-11-25'::date, 'M', 'Asian', 10, '2023-08-15'::date, '2024-06-10'::date, 1),
- (1003, 'Carmen Rivera', '2010-06-03'::date, 'F', 'Hispanic/Latino', 8, '2023-09-01'::date, '2024-06-10'::date, 1),
- (1004, 'David Nguyen', '2009-01-18'::date, 'M', 'Asian', 9, '2023-08-15'::date, '2024-01-20'::date, 0),
- (1005, 'Emily Chen', '2010-09-07'::date, 'F', 'Asian', 8, '2024-01-10'::date, '2024-06-10'::date, 1),
- (1006, 'Frank Okafor', '2008-04-22'::date, 'M', 'Black', 10, '2023-08-15'::date, '2024-06-10'::date, 1),
- (1007, 'Grace Kim', '2009-07-30'::date, 'F', 'Asian', 9, '2023-08-15'::date, '2023-12-15'::date, 0),
- (1007, 'Grace Kim', '2009-07-30'::date, 'F', 'Asian', 9, '2024-01-08'::date, '2024-06-10'::date, 1),
- (1008, 'Henry Martinez', '2011-02-14'::date, 'M', 'Hispanic/Latino', 7, '2024-02-01'::date, '2024-06-10'::date, 1),
- (1009, 'Isla Thompson', '2009-12-01'::date, 'F', 'White', 9, '2023-08-15'::date, '2024-06-10'::date, 1),
- (1010, 'James Wright', '2010-05-19'::date, 'M', 'Black', 8, '2023-09-01'::date, '2024-03-15'::date, 0),
- (1011, 'Keiko Tanaka', '2008-08-08'::date, 'F', 'Asian', 10, '2023-08-15'::date, '2024-06-10'::date, 1),
- (1012, 'Liam Patel', '2009-10-11'::date, 'M', 'Asian', 9, '2023-08-15'::date, '2023-11-30'::date, 0),
- (1012, 'Liam Patel', '2009-10-11'::date, 'M', 'Asian', 9, '2024-03-01'::date, '2024-06-10'::date, 1),
- (1013, 'Maya Singh', '2011-04-27'::date, 'F', 'Asian', 7, '2024-01-10'::date, '2024-06-10'::date, 1),
- (1014, 'Noah Brown', '2010-01-05'::date, 'M', 'White', 8, '2023-08-15'::date, '2024-06-10'::date, 1),
- (1015, 'Olivia Davis', '2009-06-16'::date, 'F', 'Black', 9, '2023-09-15'::date, '2024-02-28'::date, 0),
- (1016, 'Pedro Gomez', '2008-12-09'::date, 'M', 'Hispanic/Latino', 10, '2023-08-15'::date, '2024-06-10'::date, 1),
- (1017, 'Quinn Murphy', '2010-03-21'::date, 'M', 'White', 8, '2024-01-10'::date, '2024-06-10'::date, 1),
- (1018, 'Rosa Fernandez', '2011-08-13'::date, 'F', 'Hispanic/Latino', 7, '2023-08-15'::date, '2024-06-10'::date, 1),
- (1019, 'Sam Wilson', '2009-11-02'::date, 'M', 'Two or More Races', 9, '2023-10-01'::date, '2024-04-30'::date, 0),
- (1020, 'Tara Reeves', '2010-07-24'::date, 'F', 'White', 8, '2023-08-15'::date, '2024-06-10'::date, 1)
- ) AS dim_students(student_number, student_name, date_of_birth, gender, ethnicity, grade_level, enrollment_start_date, enrollment_end_date, membership_value);;
- models: [
- ]
-}
diff --git a/team-folders/khai/Active dates/fct_attendance.model.aml b/team-folders/khai/Active dates/fct_attendance.model.aml
deleted file mode 100644
index ab706792..00000000
--- a/team-folders/khai/Active dates/fct_attendance.model.aml
+++ /dev/null
@@ -1,130 +0,0 @@
-Model fct_attendance {
- type: 'query'
- label: 'Fct Attendance'
- description: ''
- data_source_name: 'demodb'
- dimension student_number {
- label: 'Student Number'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.student_number }};;
- }
- dimension date_day {
- label: 'Date Day'
- type: 'date'
- hidden: false
- definition: @sql {{ #SOURCE.date_day }};;
- }
- dimension is_present {
- label: 'Is Present'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.is_present }};;
- }
- dimension is_tardy {
- label: 'Is Tardy'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.is_tardy }};;
- }
- dimension absence_reason {
- label: 'Absence Reason'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.absence_reason }};;
- }
- dimension period {
- label: 'Period'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.period }};;
- }
-
- owner: 'khai.to@holistics.io'
- query: @sql
- SELECT *
- FROM (VALUES
- (1001, '2023-10-02'::date, 1, 1, NULL, 1),
- (1001, '2023-10-03'::date, 1, 0, NULL, 1),
- (1001, '2023-10-04'::date, 1, 0, NULL, 1),
- (1001, '2023-10-05'::date, 0, 0, 'Illness', 1),
- (1001, '2023-10-06'::date, 1, 1, NULL, 1),
- (1002, '2023-10-02'::date, 1, 0, NULL, 2),
- (1002, '2023-10-03'::date, 1, 0, NULL, 2),
- (1002, '2023-10-04'::date, 1, 0, NULL, 2),
- (1002, '2023-10-05'::date, 1, 0, NULL, 2),
- (1002, '2023-10-06'::date, 1, 0, NULL, 2),
- (1003, '2023-10-02'::date, 1, 0, NULL, 3),
- (1003, '2023-10-03'::date, 1, 0, NULL, 3),
- (1003, '2023-10-04'::date, 1, 0, NULL, 3),
- (1003, '2023-10-05'::date, 1, 0, NULL, 3),
- (1003, '2023-10-06'::date, 1, 0, NULL, 3),
- (1004, '2023-10-02'::date, 1, 1, NULL, 1),
- (1004, '2023-10-03'::date, 1, 0, NULL, 1),
- (1004, '2023-10-04'::date, 0, 0, 'Illness', 1),
- (1004, '2023-10-05'::date, 1, 0, NULL, 1),
- (1004, '2023-10-06'::date, 1, 0, NULL, 1),
- (1006, '2023-10-02'::date, 1, 0, NULL, 4),
- (1006, '2023-10-03'::date, 1, 0, NULL, 4),
- (1006, '2023-10-04'::date, 1, 1, NULL, 4),
- (1006, '2023-10-05'::date, 1, 1, NULL, 4),
- (1006, '2023-10-06'::date, 1, 0, NULL, 4),
- (1007, '2023-10-02'::date, 1, 0, NULL, 1),
- (1007, '2023-10-03'::date, 1, 0, NULL, 1),
- (1007, '2023-10-04'::date, 0, 0, 'Illness', 1),
- (1007, '2023-10-05'::date, 1, 0, NULL, 1),
- (1007, '2023-10-06'::date, 1, 0, NULL, 1),
- (1009, '2023-10-02'::date, 1, 0, NULL, 2),
- (1009, '2023-10-03'::date, 1, 0, NULL, 2),
- (1009, '2023-10-04'::date, 1, 0, NULL, 2),
- (1009, '2023-10-05'::date, 1, 0, NULL, 2),
- (1009, '2023-10-06'::date, 1, 0, NULL, 2),
- (1010, '2023-10-02'::date, 1, 0, NULL, 3),
- (1010, '2023-10-03'::date, 0, 0, 'Medical Appointment', 3),
- (1010, '2023-10-04'::date, 1, 0, NULL, 3),
- (1010, '2023-10-05'::date, 0, 0, 'Unexcused', 3),
- (1010, '2023-10-06'::date, 1, 0, NULL, 3),
- (1011, '2023-10-02'::date, 1, 0, NULL, 4),
- (1011, '2023-10-03'::date, 1, 0, NULL, 4),
- (1011, '2023-10-04'::date, 1, 0, NULL, 4),
- (1011, '2023-10-05'::date, 0, 0, 'Family Emergency', 4),
- (1011, '2023-10-06'::date, 1, 1, NULL, 4),
- (1012, '2023-10-02'::date, 1, 1, NULL, 1),
- (1012, '2023-10-03'::date, 1, 0, NULL, 1),
- (1012, '2023-10-04'::date, 1, 1, NULL, 1),
- (1012, '2023-10-05'::date, 1, 0, NULL, 1),
- (1012, '2023-10-06'::date, 1, 0, NULL, 1),
- (1014, '2023-10-02'::date, 1, 1, NULL, 2),
- (1014, '2023-10-03'::date, 1, 0, NULL, 2),
- (1014, '2023-10-04'::date, 1, 0, NULL, 2),
- (1014, '2023-10-05'::date, 1, 1, NULL, 2),
- (1014, '2023-10-06'::date, 1, 0, NULL, 2),
- (1015, '2023-10-02'::date, 0, 0, 'Medical Appointment', 3),
- (1015, '2023-10-03'::date, 0, 0, 'Family Emergency', 3),
- (1015, '2023-10-04'::date, 1, 1, NULL, 3),
- (1015, '2023-10-05'::date, 1, 0, NULL, 3),
- (1015, '2023-10-06'::date, 1, 0, NULL, 3),
- (1016, '2023-10-02'::date, 1, 0, NULL, 4),
- (1016, '2023-10-03'::date, 0, 0, 'Illness', 4),
- (1016, '2023-10-04'::date, 1, 0, NULL, 4),
- (1016, '2023-10-05'::date, 1, 0, NULL, 4),
- (1016, '2023-10-06'::date, 0, 0, 'Medical Appointment', 4),
- (1018, '2023-10-02'::date, 1, 0, NULL, 1),
- (1018, '2023-10-03'::date, 1, 1, NULL, 1),
- (1018, '2023-10-04'::date, 1, 0, NULL, 1),
- (1018, '2023-10-05'::date, 0, 0, 'Family Emergency', 1),
- (1018, '2023-10-06'::date, 1, 0, NULL, 1),
- (1019, '2023-10-02'::date, 1, 0, NULL, 2),
- (1019, '2023-10-03'::date, 1, 0, NULL, 2),
- (1019, '2023-10-04'::date, 1, 0, NULL, 2),
- (1019, '2023-10-05'::date, 1, 0, NULL, 2),
- (1019, '2023-10-06'::date, 1, 0, NULL, 2),
- (1020, '2023-10-02'::date, 1, 0, NULL, 3),
- (1020, '2023-10-03'::date, 1, 0, NULL, 3),
- (1020, '2023-10-04'::date, 1, 0, NULL, 3),
- (1020, '2023-10-05'::date, 1, 0, NULL, 3),
- (1020, '2023-10-06'::date, 1, 1, NULL, 3)
- ) AS fct_attendance(student_number, date_day, is_present, is_tardy, absence_reason, period);;
- models: [
- ]
-}
diff --git a/team-folders/khai/Active dates/students_attendance.dataset.aml b/team-folders/khai/Active dates/students_attendance.dataset.aml
deleted file mode 100644
index 1f51cbd3..00000000
--- a/team-folders/khai/Active dates/students_attendance.dataset.aml
+++ /dev/null
@@ -1,12 +0,0 @@
-Dataset students_attendance {
- label: 'students_attendance'
- description: ''
- data_source_name: 'demodb'
- models: [
- dim_students,
- fct_attendance
- ]
- relationships: [
- relationship(fct_attendance.student_number > dim_students.student_number, true)
- ]
-}
\ No newline at end of file
diff --git a/team-folders/khai/Active dates/students_attendance.page.aml b/team-folders/khai/Active dates/students_attendance.page.aml
deleted file mode 100644
index c22f618b..00000000
--- a/team-folders/khai/Active dates/students_attendance.page.aml
+++ /dev/null
@@ -1,181 +0,0 @@
-Dashboard students_attendance_2 {
- title: 'students_attendance'
- description: ''
- owner: 'khai.to@holistics.io'
- view: CanvasLayout {
- label: 'View 1'
- width: 860
- height: 1000
- grid_size: 20
- auto_expand_vertically: true
- mobile {
- mode: 'auto'
- }
- block v_mw9p {
- position: pos(20, 120, 820, 420)
- layer: 1
- }
- block f_date_selected {
- position: pos(20, 20, 300, 80)
- layer: 1
- }
- block v_ar8f {
- position: pos(20, 560, 820, 420)
- layer: 1
- }
- }
- theme: H.themes.vanilla
- block v_mw9p: VizBlock {
- label: 'Student Name, Date Of Birth and 3 more'
- viz: DataTable {
- dataset: students_attendance
- conditions: [
- '''(
- dim_students.enrollment_start_date <= (dim_students.date_selected | first())
- or
- dim_students.enrollment_start_date matches (dim_students.date_selected | first())
-)
-and dim_students.enrollment_end_date > (dim_students.date_selected | first())'''
- ]
- theme {
-
- }
- fields: [
- VizFieldFull {
- ref: r(dim_students.student_name)
- format {
- type: 'text'
- }
- },
- VizFieldFull {
- ref: r(dim_students.date_of_birth)
- format {
- type: 'date'
- }
- },
- VizFieldFull {
- ref: r(dim_students.grade_level)
- format {
- type: 'number'
- pattern: 'inherited'
- }
- },
- VizFieldFull {
- ref: r(dim_students.enrollment_start_date)
- format {
- type: 'date'
- pattern: 'yyyy-LL-dd'
- }
- uname: 'dim_students_enrollment_start_date'
- },
- VizFieldFull {
- ref: r(dim_students.enrollment_end_date)
- format {
- type: 'date'
- pattern: 'yyyy-LL-dd'
- }
- uname: 'dim_students_enrollment_end_date'
- }
- ]
- settings {
- show_row_number: true
- row_limit: 5000
- aggregate_awareness {
- enabled: true
- debug_comments: true
- }
- column_styles: [
- ColumnStyle {
- key: 'dim_students_enrollment_end_date'
- width: 165
- },
- ColumnStyle {
- key: 'dim_students_enrollment_start_date'
- width: 171
- }
- ]
- }
- }
- }
- block f_date_selected: FilterBlock {
- label: 'Date Selected'
- type: 'field'
- source: FieldFilterSource {
- dataset: students_attendance
- field: r(dim_students.date_selected)
- }
- default {
- operator: 'matches'
- value: '2023-12-15 - 2024-03-03'
- }
- }
- block v_ar8f: VizBlock {
- label: 'Student Name, Date Of Birth and 3 more copy'
- viz: DataTable {
- dataset: students_attendance
- conditions: [
- '''dim_students.enrollment_start_date <= (dim_students.date_selected | first())
-and
-dim_students.enrollment_end_date >= (dim_students.date_selected | first())
-and
-dim_students.enrollment_end_date is not (dim_students.date_selected | first())'''
- ]
- theme {
- }
- fields: [
- VizFieldFull {
- ref: r(dim_students.student_name)
- format {
- type: 'text'
- }
- },
- VizFieldFull {
- ref: r(dim_students.date_of_birth)
- format {
- type: 'date'
- }
- },
- VizFieldFull {
- ref: r(dim_students.grade_level)
- format {
- type: 'number'
- pattern: 'inherited'
- }
- },
- VizFieldFull {
- ref: r(dim_students.enrollment_start_date)
- format {
- type: 'date'
- }
- uname: 'dim_students_enrollment_start_date'
- },
- VizFieldFull {
- ref: r(dim_students.enrollment_end_date)
- format {
- type: 'date'
- }
- uname: 'dim_students_enrollment_end_date'
- }
- ]
- settings {
- show_row_number: true
- row_limit: 5000
- aggregate_awareness {
- enabled: true
- debug_comments: true
- }
- column_styles: [
- ColumnStyle {
- key: 'dim_students_enrollment_end_date'
- width: 165
- },
- ColumnStyle {
- key: 'dim_students_enrollment_start_date'
- width: 171
- }
- ]
- }
- }
- }
- interactions: []
-}
\ No newline at end of file
diff --git a/team-folders/khai/Dynamic Dim/dynamic_dim_model.model.aml b/team-folders/khai/Dynamic Dim/dynamic_dim_model.model.aml
index 0cbb64d3..37501983 100644
--- a/team-folders/khai/Dynamic Dim/dynamic_dim_model.model.aml
+++ b/team-folders/khai/Dynamic Dim/dynamic_dim_model.model.aml
@@ -88,6 +88,12 @@ Model dynamic_dim_model {
definition: @sql {{ #SOURCE.country_name }};;
}
+ param dim_choice {
+ label: 'Dim Choice'
+ type: 'text'
+ allowed_values: ['Countries', 'Cities', 'Gender']
+ }
+
dimension dynamic_dim {
label: 'Dynamic Breakdown Dimension'
type: 'text'
@@ -101,16 +107,6 @@ Model dynamic_dim_model {
) ;;
}
- param dim_choice {
- label: 'Dim Choice'
- type: 'text'
- allowed_values: [
- 'Countries',
- 'Cities',
- 'Gender'
- ]
- }
-
owner: 'khai.to@holistics.io'
query: @sql
select
@@ -142,11 +138,4 @@ Model dynamic_dim_model {
ecommerce_countries,
ecommerce_order_items
]
- measure total_quantity {
- label: "Total Quantity"
- type: "number"
- description: ""
- definition: @aql sum(dynamic_dim_model.quantity);;
- format: "#,###,\"K\""
- }
-}
\ No newline at end of file
+}
diff --git a/team-folders/khai/Dynamic Dim/dynamic_field_selection.page.aml b/team-folders/khai/Dynamic Dim/dynamic_field_selection.page.aml
index 0915af17..66cff781 100644
--- a/team-folders/khai/Dynamic Dim/dynamic_field_selection.page.aml
+++ b/team-folders/khai/Dynamic Dim/dynamic_field_selection.page.aml
@@ -14,10 +14,6 @@ Dashboard dynamic_field_selection {
position: pos(760, 20, 200, 100)
layer: 2
}
- block v_nq5f {
- position: pos(20, 400, 980, 400)
- layer: 1
- }
width: 1020
}
@@ -66,60 +62,4 @@ Dashboard dynamic_field_selection {
input_type: 'single'
}
}
- block v_nq5f: VizBlock {
- label: 'Metrics by Country copy'
- viz: ColumnChart {
- dataset: khai_ecommerce
- calculation test {
- label: 'Test'
- formula: @aql case(
- when: (param_model.metric_selection | first()) == 'Revenue'
- , then: 'Revenue'
- , when: (param_model.metric_selection | first()) == 'Total Orders'
- , then: 'Total Orders'
- , when: (param_model.metric_selection | first()) == 'Total Users'
- , then: 'Total Users'
-);;
- calc_type: 'dimension'
- data_type: 'text'
- model: countries
- }
- x_axis: VizFieldFull {
- ref: r(countries.name)
- format {
- type: 'text'
- }
- }
- legend: VizFieldFull {
- ref: ref('countries', 'test')
- format {
- type: 'number'
- pattern: 'inherited'
- }
- }
- y_axis {
- series {
- field: VizFieldFull {
- label: ' '
- ref: r(khai_ecommerce.dynamic_metric)
- format {
- type: 'number'
- pattern: 'inherited'
- }
- }
- settings {
- color_palette: 0
- }
- }
- }
- settings {
- row_limit: 5000
- x_axis_show_null_datetime: false
- aggregate_awareness {
- enabled: true
- debug_comments: true
- }
- }
- }
- }
}
\ No newline at end of file
diff --git a/team-folders/khai/datasets/khai_ecommerce.dataset.aml b/team-folders/khai/datasets/khai_ecommerce.dataset.aml
index 4a8670da..39d802ee 100644
--- a/team-folders/khai/datasets/khai_ecommerce.dataset.aml
+++ b/team-folders/khai/datasets/khai_ecommerce.dataset.aml
@@ -20,7 +20,7 @@ Func time_compare(metric_name: String, metric_label: String, format: String) {
Dataset khai_ecommerce {
__engine__: 'aql'
- label: 'Ecommerce (from Khai)'
+ label: 'Khai Ecommerce'
description: "This is Dataset for AQL testing"
data_source_name: "demodb"
models: [
@@ -33,108 +33,40 @@ Dataset khai_ecommerce {
cities,
khai_date_d,
param_model
- ,
- khai_categories
- ,
- time_type
]
relationships: [
- relationship(orders.user_id > users.id, true, 'two_way'),
- relationship(order_items.order_id > orders.id, true, 'two_way'),
- relationship(cities.country_code > countries.code, true, 'two_way'),
- relationship(users.city_id > cities.id, true, 'two_way'),
- relationship(order_items.product_id > products.id, true, 'two_way'),
- relationship(products.merchant_id > merchants.id, true, 'two_way'),
- relationship(merchants.city_id > cities.id, true, 'two_way'),
- relationship(orders.created_date > khai_date_d.date_key, true, 'two_way')
+ relationship(orders.user_id > users.id, true),
+ relationship(order_items.order_id > orders.id, true),
+ relationship(cities.country_code > countries.code, true),
+ relationship(users.city_id > cities.id, true),
+ relationship(order_items.product_id > products.id, true),
+ relationship(products.merchant_id > merchants.id, true),
+ relationship(merchants.city_id > cities.id, true)
,
- relationship(products.category_id > khai_categories.id, true, 'two_way')
+ relationship(orders.created_date > khai_date_d.date_key, true)
+ ,
+ relationship(merchants.admin_id - users.id, true)
]
owner: 'khai.to+demo4@holistics.io'
- permission vendor_access {
- field: r(countries.name)
- operator: 'matches_user_attribute'
- value: 'country_attribute' // user attribute
- }
-
- dimension user_acquired_at {
- model: users
- label: 'User Acquired At'
- type: 'datetime'
- definition: @aql min(orders.created_at) | dimensionalize(users.id) ;;
- }
-
- dimension user_order_frequency {
- model: users
- label: 'User Order Frequency'
- type: 'text'
- hidden: false
- definition: @aql
- case(
- when: total_orders < 10, then: '< 10 orders'
- , when: total_orders > 10 and total_orders < 50, then: 'between 10 and 50 orders'
- , when: total_orders > 50, then: '> 50 orders'
- , else: null
- )
- | where(orders.created_at matches (param_model.date_param | first()))
- | dimensionalize(users.id)
- ;;
- }
-
metric revenue {
label: 'Revenue'
type: 'number'
definition: @aql sum(order_items, order_items.quantity * products.price) ;;
- format: "[\$\$]#,###"
}
metric total_orders {
label: 'Total Orders'
type: 'number'
definition: @aql count(orders.id) ;;
- format: "#,###"
- }
-
- metric total_delivered_orders {
- label: "Total Delivered Orders"
- type: "number"
- hidden: false
- description: "Count of all orders that were successfully delivered."
- definition: @aql total_orders | where(orders.status is 'delivered');;
- }
-
- metric total_refunded_orders {
- label: "Total Refunded Orders"
- type: "number"
- hidden: false
- description: "Count of all orders that were refunded after fulfillment."
- definition: @aql total_orders | where(orders.status is 'refunded');;
- }
- metric total_cancelled_orders {
- label: "Total Cancelled Orders"
- type: "number"
- hidden: false
- description: "Count of orders that were cancelled before fulfillment."
- definition: @aql total_orders | where(orders.status is 'cancelled');;
- }
-
- metric cancelled_order_ratio {
- label: "Cancelled Order Ratio"
- type: "number"
- hidden: false
- description: "Percentage of orders that were cancelled - Total number of cancelled orders/Total numbers of orders"
- definition: @aql total_cancelled_orders / total_orders;;
- format: "#,###0.00%"
}
metric total_users {
label: 'Total Users'
type: 'number'
definition: @aql count(users.id) ;;
- format: "#,###"
}
metric dynamic_metric {
@@ -216,5 +148,4 @@ Dataset khai_ecommerce {
metric total_cancelled_orders_time_compare: time_compare('total_cancelled_orders', 'Total Cancelled Orders', '#,###')
metric cancelled_order_ratio_time_compare: time_compare('cancelled_order_ratio', 'Cancelled Orders Ratio', '#,###0.00%')
-
}
\ No newline at end of file
diff --git a/team-folders/khai/dynamic_dim_ecommerce_dashboard.page.aml b/team-folders/khai/dynamic_dim_ecommerce_dashboard.page.aml
index 7c8750f9..5961f0ae 100644
--- a/team-folders/khai/dynamic_dim_ecommerce_dashboard.page.aml
+++ b/team-folders/khai/dynamic_dim_ecommerce_dashboard.page.aml
@@ -1,8 +1,8 @@
Dashboard dynamic_dim_ecommerce_dashboard {
- title: "Phuong's test dashboard"
+ title: 'Dynamic Dim Ecommerce Dashboard'
view: CanvasLayout {
label: 'View 1'
- height: 1980
+ height: 840
grid_size: 20
block v1 {
position: pos(20, 140, 540, 420)
@@ -16,47 +16,6 @@ Dashboard dynamic_dim_ecommerce_dashboard {
position: pos(20, 20, 300, 100)
layer: 2
}
- block v_i7uw {
- position: pos(20, 680, 580, 400)
- layer: 3
- }
- block d_z1xt {
- position: pos(20, 580, 300, 80)
- layer: 4
- }
- block v_6whf {
- position: pos(620, 680, 540, 420)
- layer: 1
- }
- block v_dbfr {
- position: pos(20, 1140, 580, 400)
- layer: 5
- }
- block v_x9r9 {
- position: pos(620, 1140, 580, 400)
- layer: 5
- }
- block v_7k7m {
- position: pos(20, 1560, 580, 400)
- layer: 5
- }
- block v_6gfd {
- position: pos(1200, 140, 600, 400)
- layer: 6
- }
- block f_59es {
- position: pos(1200, 20, 300, 100)
- layer: 1
- }
- block v_mq0d {
- position: pos(1200, 580, 600, 400)
- layer: 6
- }
- block v_cx20 {
- position: pos(1240, 1060, 740, 460)
- layer: 5
- }
- width: 2020
}
theme: H.themes.classic
block v1: VizBlock {
@@ -137,7 +96,7 @@ Dashboard dynamic_dim_ecommerce_dashboard {
type: 'field'
source: FieldFilterSource {
dataset: demo_ecommerce
- field: r(param_model_nam.dim_selections)
+ field: ref('param_model_nam', 'dim_selections')
}
default {
operator: 'is'
@@ -147,505 +106,4 @@ Dashboard dynamic_dim_ecommerce_dashboard {
input_type: 'single'
}
}
- block v_i7uw: VizBlock {
- label: 'New relative_period formula'
- viz: DataTable {
- dataset: khai_ecommerce
- calculation last_period {
- label: 'Last Period'
- formula: @aql relative_period(revenue, orders.created_at, -1);;
- calc_type: 'measure'
- data_type: 'number'
- }
- fields: [
- VizFieldFull {
- ref: r(orders.created_at)
- transformation: 'datetrunc week'
- format {
- type: 'date'
- pattern: 'wwww'
- }
- uname: 'datetrunc_week_created_at_1'
- },
- VizFieldFull {
- ref: r(khai_ecommerce.revenue)
- format {
- type: 'number'
- pattern: 'inherited'
- }
- },
- VizFieldFull {
- ref: 'last_period'
- format {
- type: 'number'
- pattern: 'inherited'
- }
- }
- ]
- settings {
- show_row_number: true
- sorts: [
- SortSetting {
- key: 'datetrunc_week_created_at_1'
- direction: 'asc'
- }
- ]
- row_limit: 5000
- aggregate_awareness {
- enabled: true
- debug_comments: true
- }
- }
- }
- }
- block d_z1xt: DateDrillBlock {
- label: 'Date Drill'
- }
- block v_6whf: VizBlock {
- label: 'Total orders overtime'
- viz: CombinationChart {
- dataset: demo_ecommerce
- x_axis: VizFieldFull {
- ref: r(order_master.order_created_at)
- transformation: 'datetrunc month'
- format {
- type: 'date'
- pattern: 'LLL yyyy'
- }
- }
- y_axis {
- series {
- mark_type: 'column'
- field: VizFieldFull {
- ref: r(demo_ecommerce.total_orders)
- format {
- type: 'number'
- pattern: 'inherited'
- }
- }
- }
- series {
- field: VizFieldFull {
- label: 'Trend line of Total Orders'
- ref: r(demo_ecommerce.total_orders)
- format {
- type: 'number'
- pattern: 'inherited'
- }
- analytic: RegressionLine {
- type: 'linear'
- }
- }
- }
- }
- settings {
- row_limit: 5000
- x_axis_show_null_datetime: false
- aggregate_awareness {
- enabled: true
- debug_comments: true
- }
- }
- }
- }
- block v_dbfr: VizBlock {
- label: 'Total Orders, MovAvg of Total Orders, and Reference line of Total Orders by Month Order Created At'
- viz: CombinationChart {
- dataset: demo_ecommerce_internal_training
- x_axis: VizFieldFull {
- ref: r(order_master.order_created_at)
- transformation: 'datetrunc month'
- format {
- type: 'date'
- pattern: 'LLL yyyy'
- }
- }
- y_axis {
- series {
- mark_type: 'line'
- field: VizFieldFull {
- ref: r(demo_ecommerce_internal_training.total_orders)
- format {
- type: 'number'
- pattern: 'inherited'
- }
- }
- settings {
- line_style: 'dashed'
- line_interpolation: 'smooth'
- }
- }
- series {
- mark_type: 'line'
- field: VizFieldFull {
- label: 'MovAvg of Total Orders'
- ref: r(demo_ecommerce_internal_training.total_orders)
- format {
- type: 'number'
- pattern: 'inherited'
- }
- analytic: MovingCalculationField {
- type: 'avg'
- order: 'row'
- range {
- previous: 2
- next: 0
- }
- }
- }
- settings {
- color: '#A50E43'
- line_style: 'dotted'
- }
- }
- series {
- field: VizFieldFull {
- label: 'Reference line of Total Orders'
- ref: r(demo_ecommerce_internal_training.total_orders)
- format {
- type: 'number'
- pattern: 'inherited'
- }
- analytic: ReferenceLine {
- type: 'avg'
- }
- }
- }
- }
- settings {
- row_limit: 5000
- x_axis_show_null_datetime: false
- aggregate_awareness {
- enabled: true
- debug_comments: true
- }
- }
- }
- }
- block v_x9r9: VizBlock {
- label: 'Total Orders and PoT Total Orders by Month Order Created At and Status'
- viz: CombinationChart {
- dataset: demo_ecommerce_internal_training
- x_axis: VizFieldFull {
- ref: r(order_master.order_created_at)
- transformation: 'datetrunc month'
- format {
- type: 'date'
- pattern: 'LLL yyyy'
- }
- }
- legend: VizFieldFull {
- ref: r(order_master.status)
- format {
- type: 'text'
- }
- }
- y_axis {
- series {
- mark_type: 'column'
- field: VizFieldFull {
- ref: r(demo_ecommerce_internal_training.total_orders)
- format {
- type: 'number'
- pattern: 'inherited'
- }
- }
- }
- }
- y_axis {
- settings {
- alignment: 'right'
- }
- series {
- mark_type: 'line'
- field: VizFieldFull {
- label: 'PoT Total Orders'
- ref: r(demo_ecommerce_internal_training.total_orders)
- format {
- type: 'number'
- pattern: '#,###%'
- }
- analytic: PercentOfTotalField {
- of_all: 'grand_total'
- }
- }
- settings {
- line_style: 'dashed'
- point {
- value: 'cancelled'
- line_style: 'dashed'
- }
- point {
- value: 'delivered'
- line_style: 'dashed'
- }
- point {
- value: 'refunded'
- line_style: 'dashed'
- }
- }
- }
- }
- settings {
- row_limit: 5000
- x_axis_show_null_datetime: false
- aggregate_awareness {
- enabled: true
- debug_comments: true
- }
- }
- }
- }
- block v_7k7m: VizBlock {
- label: 'Total Orders and Total Orders (prev. 1y) by Month Order Created At'
- viz: CombinationChart {
- dataset: demo_ecommerce_internal_training
- x_axis: VizFieldFull {
- ref: r(order_master.order_created_at)
- transformation: 'datetrunc month'
- format {
- type: 'date'
- pattern: 'LLL yyyy'
- }
- }
- y_axis {
- series {
- mark_type: 'column'
- field: VizFieldFull {
- ref: r(demo_ecommerce_internal_training.total_orders)
- format {
- type: 'number'
- pattern: 'inherited'
- }
- }
- }
- series {
- mark_type: 'line'
- field: VizFieldFull {
- label: 'Total Orders (prev. 1y)'
- ref: r(demo_ecommerce_internal_training.total_orders)
- format {
- type: 'number'
- pattern: 'inherited'
- }
- analytic: PeriodOverPeriodComparison {
- time_dimension: r(order_master.order_created_at)
- display: 'value'
- comparison_period: 'relative to previous 1 year'
- }
- }
- settings {
- line_style: 'dashed'
- }
- }
- }
- settings {
- row_limit: 5000
- x_axis_show_null_datetime: false
- aggregate_awareness {
- enabled: true
- debug_comments: true
- }
- }
- }
- }
- block v_6gfd: VizBlock {
- label: 'Continent Name and dynamic metric'
- viz: DataTable {
- dataset: demo_ecommerce
- calculation metric_faf1b2b {
- label: 'dynamic metric - text'
- formula: @aql
-case(
- when: 'pot' in param_model_nam.metric_selections,
- then: concat(
- cast(round(percent_of_total * 100, 1), 'text'),
- '%'
- ),
-
- when: 'total orders' in param_model_nam.metric_selections,
- then: concat(
- '',
- cast(round(total_orders, 0), 'text')
- ),
-
- when: 'aov' in param_model_nam.metric_selections,
- then: concat(
- '$',
- cast(round(order_master.aov, 0), 'text')
- ),
-
- when: 'revenue' in param_model_nam.metric_selections,
- then: concat(
- '$',
- cast(round(order_master.revenue, 0), 'text')
- ),
- )
-;;
- calc_type: 'measure'
- data_type: 'text'
- }
- fields: [
- VizFieldFull {
- ref: r(ecommerce_countries.continent_name)
- format {
- type: 'text'
- }
- },
- VizFieldFull {
- ref: 'metric_faf1b2b'
- format {
- type: 'text'
- }
- }
- ]
- settings {
- show_row_number: true
- row_limit: 5000
- aggregate_awareness {
- enabled: true
- debug_comments: true
- }
- }
- }
- }
- block f_59es: FilterBlock {
- label: 'Dynamic metric'
- type: 'field'
- source: FieldFilterSource {
- dataset: demo_ecommerce
- field: r(param_model_nam.metric_selections)
- }
- default {
- operator: 'is'
- value: 'Country Names'
- }
- settings {
- input_type: 'single'
- }
- }
- block v_mq0d: VizBlock {
- label: 'Continent Name and dynamic metric copy'
- viz: DataTable {
- dataset: demo_ecommerce
- calculation metric_faf1b2b {
- label: 'dynamic metric - raw'
- formula: @aql
-case(
- when: 'pot' in param_model_nam.metric_selections,
- then: percent_of_total
- ,
-
- when: 'total orders' in param_model_nam.metric_selections,
- then: total_orders
- ,
-
- when: 'aov' in param_model_nam.metric_selections,
- then: order_master.aov
- ,
-
- when: 'revenue' in param_model_nam.metric_selections,
- then: order_master.revenue
- ,
- )
-;;
- calc_type: 'measure'
- data_type: 'number'
- }
- fields: [
- VizFieldFull {
- ref: r(ecommerce_countries.continent_name)
- format {
- type: 'text'
- }
- },
- VizFieldFull {
- ref: 'metric_faf1b2b'
- format {
- type: 'text'
- }
- }
- ]
- settings {
- show_row_number: true
- row_limit: 5000
- aggregate_awareness {
- enabled: true
- debug_comments: true
- }
- }
- }
- }
- block v_cx20: VizBlock {
- label: 'Bubble chart'
- viz: BubbleChart {
- dataset: demo_ecommerce_internal_training
- x_col: VizFieldFull {
- ref: r(order_master.order_created_at)
- transformation: 'datetrunc year'
- format {
- type: 'date'
- pattern: 'yyyy'
- }
- }
- y_col: VizFieldFull {
- ref: r(ecommerce_countries.continent_name)
- format {
- type: 'text'
- }
- }
- z_col: VizFieldFull {
- ref: r(demo_ecommerce_internal_training.total_orders)
- format {
- type: 'number'
- pattern: 'inherited'
- }
- }
- settings {
- row_limit: 5000
- aggregate_awareness {
- enabled: true
- debug_comments: true
- }
- }
- }
- }
- interactions: [
- FilterInteraction {
- from: 'f1'
- to: [
- CustomMapping {
- block: [
- 'v_6gfd',
- 'v_mq0d',
- 'f_59es'
- ]
- disabled: true
- }
- ]
- },
- FilterInteraction {
- from: 'f_59es'
- to: [
- CustomMapping {
- block: [
- 'v1',
- 'v2',
- 'v_6whf',
- 'f1'
- ]
- disabled: true
- }
- ]
- },
- DateDrillInteraction {
- from: 'd_z1xt'
- to: [
- CustomMapping {
- block: 'v_i7uw'
- field: ref('orders', 'created_at')
- }
- ]
- }
- ]
}
\ No newline at end of file
diff --git a/team-folders/khai/json_handle/ds_json_products.dataset.aml b/team-folders/khai/json_handle/ds_json_products.dataset.aml
deleted file mode 100644
index df38c379..00000000
--- a/team-folders/khai/json_handle/ds_json_products.dataset.aml
+++ /dev/null
@@ -1,11 +0,0 @@
-Dataset ds_json_products {
- label: 'Ds Json Products'
- description: ''
- data_source_name: 'demodb'
- models: [
- json_product_info
- ]
- relationships: [
- ]
- owner: 'khai.to@holistics.io'
-}
\ No newline at end of file
diff --git a/team-folders/khai/json_handle/json_product_info.model.aml b/team-folders/khai/json_handle/json_product_info.model.aml
deleted file mode 100644
index b1462c07..00000000
--- a/team-folders/khai/json_handle/json_product_info.model.aml
+++ /dev/null
@@ -1,29 +0,0 @@
-Model json_product_info {
- type: 'query'
- label: 'Json Product Info'
- description: ''
- data_source_name: 'demodb'
- dimension product_data {
- label: 'Product Data'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.product_data }};;
- }
-
- owner: 'khai.to@holistics.io'
- query: @sql
- SELECT product_data
- FROM (
- VALUES
- ('{"product_id":1,"name":"Wireless Headphones","category":"Electronics","price":79.99,"stock_quantity":150,"description":"Premium bluetooth headphones with noise cancellation"}'::jsonb),
- ('{"product_id":2,"name":"Smart Watch","category":"Electronics","price":249.99,"stock_quantity":85,"description":"Fitness tracking smartwatch with heart rate monitor"}'::jsonb),
- ('{"product_id":3,"name":"Laptop Backpack","category":"Accessories","price":45.00,"stock_quantity":200,"description":"Durable laptop backpack with multiple compartments"}'::jsonb),
- ('{"product_id":4,"name":"USB-C Cable","category":"Accessories","price":12.99,"stock_quantity":500,"description":"Fast charging USB-C cable 6ft length"}'::jsonb),
- ('{"product_id":5,"name":"Coffee Maker","category":"Home & Kitchen","price":89.99,"stock_quantity":60,"description":"Programmable coffee maker with thermal carafe"}'::jsonb),
- ('{"product_id":6,"name":"Yoga Mat","category":"Sports","price":29.99,"stock_quantity":120,"description":"Non-slip exercise yoga mat with carrying strap"}'::jsonb),
- ('{"product_id":7,"name":"Running Shoes","category":"Sports","price":119.99,"stock_quantity":75,"description":"Lightweight running shoes with cushioned sole"}'::jsonb),
- ('{"product_id":8,"name":"Desk Lamp","category":"Home & Kitchen","price":34.99,"stock_quantity":95,"description":"LED desk lamp with adjustable brightness"}'::jsonb)
- ) AS products(product_data);;
- models: [
- ]
-}
diff --git a/team-folders/khai/khai_test.page.aml b/team-folders/khai/khai_test.page.aml
index ef3dc0af..ce14f285 100644
--- a/team-folders/khai/khai_test.page.aml
+++ b/team-folders/khai/khai_test.page.aml
@@ -1,179 +1,12 @@
Dashboard khai_test {
title: 'Khai Test'
- view: TabLayout {
+ view: CanvasLayout {
label: 'View 1'
- tab tab1: CanvasLayout {
- label: 'Tab 1'
- height: 820
- grid_size: 20
- block v1 {
- position: pos(20, 160, 1140, 500)
- layer: 1
- }
- block f_ml3q {
- position: pos(20, 20, 300, 80)
- layer: 2
- }
- block f_kmoy {
- position: pos(340, 20, 300, 80)
- layer: 3
- }
- block f_vs3y {
- position: pos(660, 20, 300, 80)
- layer: 4
- }
- block f_j1la {
- position: pos(20, 700, 300, 80)
- layer: 5
- }
- block v_6g2o {
- position: pos(360, 680, 580, 120)
- layer: 6
- }
- }
- tab tab2: CanvasLayout {
- label: 'Tab 2'
- width: 1300
- height: 800
- grid_size: 20
- auto_expand_vertically: true
- block v_s6re {
- position: pos(20, 20, 1240, 540)
- layer: 1
- }
- block f_z363 {
- position: pos(20, 580, 300, 80)
- layer: 2
- }
- block f_pofb {
- position: pos(340, 580, 300, 80)
- layer: 3
- }
- block f_uuo1 {
- position: pos(660, 580, 300, 80)
- layer: 4
- }
- block f_m383 {
- position: pos(980, 580, 300, 80)
- layer: 5
- }
- mobile {
- mode: 'auto'
- }
- }
- tab tab_uidb: CanvasLayout {
- label: 'dynamic top n'
- width: 780
- height: 560
- grid_size: 20
- auto_expand_vertically: true
- block v_52wr {
- position: pos(20, 120, 740, 420)
- layer: 1
- }
- block f_wimh {
- position: pos(20, 20, 300, 80)
- layer: 2
- }
- mobile {
- mode: 'auto'
- }
- }
- tab tab_laxz: CanvasLayout {
- label: 'topn-rank'
- width: 880
- height: 860
- grid_size: 20
- auto_expand_vertically: true
- mobile {
- mode: 'auto'
- }
- block v_1boj {
- position: pos(20, 120, 860, 720)
- }
- block f_jccu {
- position: pos(20, 20, 300, 80)
- layer: 1
- }
- block f_irwp {
- position: pos(340, 20, 300, 80)
- }
- }
- tab tab_ovke: CanvasLayout {
- label: 'dynamic-pop'
- width: 1300
- height: 680
- grid_size: 20
- auto_expand_vertically: true
- block v_rqnl {
- position: pos(40, 100, 1240, 540)
- }
- block f_oit3 {
- position: pos(40, 20, 300, 60)
- }
- block f_th9g {
- position: pos(480, 20, 200, 60)
- }
- block f_1rlj {
- position: pos(680, 20, 120, 60)
- }
- block t_fz4z {
- position: pos(380, 20, 100, 60)
- }
- mobile {
- mode: 'auto'
- }
- }
- tab tab_cqbs: CanvasLayout {
- label: 'high-or-low'
- width: 1020
- height: 800
- grid_size: 20
- auto_expand_vertically: true
- block v_c5p0 {
- position: pos(60, 140, 940, 420)
- layer: 1
- }
- block f_jmgl {
- position: pos(60, 40, 300, 80)
- layer: 2
- }
- mobile {
- mode: 'auto'
- }
- }
- tab tab_3lk7: CanvasLayout {
- label: 'finance-type'
- width: 1000
- height: 360
- grid_size: 20
- auto_expand_vertically: true
- block v_okde {
- position: pos(40, 40, 940, 240)
- layer: 1
- }
- mobile {
- mode: 'auto'
- }
- }
- tab tab_g7f9: CanvasLayout {
- label: 'dynamic currency'
- width: 1340
- height: 680
- grid_size: 20
- auto_expand_vertically: true
- mobile {
- mode: 'auto'
- }
- block v_dn8j {
- position: pos(300, 20, 1000, 640)
- }
- block f_slux {
- position: pos(20, 20, 240, 80)
- }
- block f_408l {
- position: pos(20, 120, 240, 80)
- }
+ height: 560
+ grid_size: 20
+ block v1 {
+ position: pos(20, 20, 1160, 520)
+ layer: 1
}
tab tab_maea: CanvasLayout {
label: 'Untitled'
@@ -644,216 +477,9 @@ Dashboard khai_test {
settings {
show_data_label_by: 'value'
}
- series {
- mark_type: 'line'
- field: VizFieldFull {
- ref: r(khai_ecommerce.revenue)
- format {
- type: 'number'
- pattern: '[$$]#,###'
- }
- }
- }
- }
- y_axis {
- settings {
- alignment: 'right'
- show_data_label_by: 'value'
- }
- series {
- mark_type: 'line'
- field: VizFieldFull {
- ref: 'previous_revenue'
- format {
- type: 'number'
- pattern: '[$$]#,###'
- }
- }
- settings {
- line_style: 'dashed'
- }
- }
- }
- settings {
- row_limit: 5000
- x_axis_show_null_datetime: false
- aggregate_awareness {
- enabled: true
- debug_comments: true
- }
- }
- }
- settings {
- hide_label: true
- }
- }
- block f_oit3: FilterBlock {
- label: 'Date'
- type: 'field'
- source: FieldFilterSource {
- dataset: khai_ecommerce
- field: r(khai_date_d.date_key)
- }
- default {
- operator: 'matches'
- value: '2024 to now'
- }
- settings {
- hide_label: true
- }
- }
- block f_th9g: FilterBlock {
- label: 'Previous'
- type: 'field'
- source: FieldFilterSource {
- dataset: khai_ecommerce
- field: r(param_model.number_param)
- }
- default {
- operator: 'is'
- value: '1'
- }
- settings {
- hide_label: true
- hide_controls: true
- }
- }
- block f_1rlj: FilterBlock {
- label: 'Year or Month'
- type: 'field'
- source: FieldFilterSource {
- dataset: khai_ecommerce
- field: r(param_model.date_grain)
- }
- default {
- operator: 'is'
- value: 'year'
- }
- settings {
- hide_label: true
- hide_controls: true
- }
- }
- block t_fz4z: TextBlock {
- content: @md #### Previous;;
- }
- block v_1boj: VizBlock {
- label: 'Full Name and Total Orders rank'
- viz: PivotTable {
- dataset: khai_ecommerce
- calculation rank_orders {
- label: 'Rank Orders'
- formula: @aql dense_rank(
- order: count(orders.id) | desc(),
- partition: (khai_date_d.date_key | year())
-);;
- calc_type: 'measure'
- data_type: 'number'
- }
- conditions: [
- 'rank_orders <= first(param_model.number_param)'
- ]
- rows: [
- VizFieldFull {
- ref: r(khai_date_d.date_key)
- transformation: 'datetrunc year'
- format {
- type: 'date'
- pattern: 'yyyy'
- }
- },
- VizFieldFull {
- ref: r(cities.name)
- format {
- type: 'text'
- }
- }
- ]
- values: [
- VizFieldFull {
- ref: r(orders.total_orders)
- format {
- type: 'number'
- pattern: 'inherited'
- }
- },
- VizFieldFull {
- ref: 'rank_orders'
- format {
- type: 'number'
- pattern: 'inherited'
- }
- uname: 'custom_rank_orders_1'
- }
- ]
- settings {
- pagination_size: 1000
- show_row_total: true
- show_column_total: true
- sorts: [
- SortSetting {
- key: 'custom_rank_orders_1'
- direction: 'asc'
- }
- ]
- row_limit: 5000
- aggregate_awareness {
- enabled: true
- debug_comments: true
- }
- }
- }
- }
- block f_jccu: FilterBlock {
- label: 'Top N copy'
- type: 'field'
- source: FieldFilterSource {
- dataset: khai_ecommerce
- field: r(param_model.number_param)
- }
- default {
- operator: 'is'
- value: '6'
- }
- }
- block f_irwp: FilterBlock {
- label: 'Khai Date D Date Key'
- type: 'field'
- source: FieldFilterSource {
- dataset: khai_ecommerce
- field: r(khai_date_d.date_key)
- }
- default {
- operator: 'matches'
- value: '2024 to now'
- }
- }
- block v_dn8j: VizBlock {
- label: 'GMV (Converted) by Quarter Date Key and Status'
- viz: ColumnChart {
- dataset: khai_ecommerce
- x_axis: VizFieldFull {
- ref: r(khai_date_d.date_key)
- transformation: 'datetrunc quarter'
- format {
- type: 'date'
- pattern: 'yyyy Qq'
- }
- }
- legend: VizFieldFull {
- ref: r(orders.status)
- format {
- type: 'text'
- }
- }
- y_axis {
- settings {
- show_data_label_by: 'value'
- stack_series_by: 'value'
- }
series {
field: VizFieldFull {
- ref: r(khai_ecommerce.gmv_converted)
+ ref: 'total_quantity'
format {
type: 'number'
pattern: 'inherited'
diff --git a/team-folders/khai/models/base/categories.model.aml b/team-folders/khai/models/base/categories.model.aml
index 4bbf59bf..c6d5a1a2 100644
--- a/team-folders/khai/models/base/categories.model.aml
+++ b/team-folders/khai/models/base/categories.model.aml
@@ -2,7 +2,7 @@ Model khai_categories {
type: 'table'
label: 'Categories'
description: ''
- data_source_name: 'demodb'
+ data_source_name: 'demo_public'
dimension id {
label: 'Id'
type: 'number'
@@ -24,4 +24,4 @@ Model khai_categories {
owner: 'khai.to+demo4@holistics.io'
table_name: '"ecommerce"."categories"'
-}
\ No newline at end of file
+}
diff --git a/team-folders/khai/models/base/cities.model.aml b/team-folders/khai/models/base/cities.model.aml
index 6fa50373..003f85f5 100644
--- a/team-folders/khai/models/base/cities.model.aml
+++ b/team-folders/khai/models/base/cities.model.aml
@@ -21,6 +21,12 @@ Model cities {
hidden: false
definition: @sql {{ #SOURCE.country_code }};;
}
+ measure total_city {
+ label: 'Total City'
+ type: 'text'
+ hidden: false
+ definition: @aql count(cities.id) ;;
+ }
measure total_city {
label: 'Total City'
diff --git a/team-folders/khai/models/base/orders.model.aml b/team-folders/khai/models/base/orders.model.aml
index c6893e51..e5bceff9 100644
--- a/team-folders/khai/models/base/orders.model.aml
+++ b/team-folders/khai/models/base/orders.model.aml
@@ -6,7 +6,6 @@ Model orders {
dimension id {
label: 'Id'
type: 'number'
- primary_key: true
hidden: false
definition: @sql {{ #SOURCE.id }};;
}
diff --git a/team-folders/khai/models/base/users.model.aml b/team-folders/khai/models/base/users.model.aml
index 5cbe2465..5e67421c 100644
--- a/team-folders/khai/models/base/users.model.aml
+++ b/team-folders/khai/models/base/users.model.aml
@@ -8,7 +8,6 @@ Model users {
type: 'number'
hidden: false
definition: @sql {{ #SOURCE.id }};;
- primary_key: true
}
dimension sign_up_date {
label: 'Sign Up Date'
@@ -65,19 +64,10 @@ Model users {
definition: @sql {{ #SOURCE.full_name }};;
}
- dimension email_pii {
- label: 'Email Pii'
- description: 'The email for the user. [sensitive data may be restricted]'
- type: 'text'
- hidden: false
- definition: @aql
- case(
- when:
- in('some_email@test.com', H.current_user.h_email),
- then: users.email,
- else: '(redacted)'
- )
- ;;
+ measure total_users {
+ label: 'Total Users'
+ type: 'number'
+ definition: @aql count(users.id);;
}
measure total_users {
@@ -88,4 +78,4 @@ Model users {
owner: 'khai.to+demo4@holistics.io'
table_name: '"ecommerce"."users"'
-}
\ No newline at end of file
+}
diff --git a/team-folders/khai/models/param_model.model.aml b/team-folders/khai/models/param_model.model.aml
index cb6494d1..7cc59f90 100644
--- a/team-folders/khai/models/param_model.model.aml
+++ b/team-folders/khai/models/param_model.model.aml
@@ -16,33 +16,6 @@ Model param_model {
allowed_values: ['Revenue', 'Total Orders', 'Total Users']
}
- param date_param {
- label: 'Date Param'
- type: 'datetime'
- }
-
- param number_param {
- label: 'Number Param'
- type: 'number'
- }
-
- param param_slider {
- label: 'Slider Parameter'
- type: 'number'
- }
-
- param date_grain {
- label: 'Date Grain'
- type: 'text'
- allowed_values: ['month', 'year']
- }
-
- param currency {
- label: 'Display Currency'
- type: 'text'
- allowed_values: ['πΊπΈ USD', 'π²πΎ MYR', 'πΈπ¬ SGD', 'πΉπ THB', 'π»π³ VND', 'π¦πΊ AUD']
- }
-
owner: 'khai.to@holistics.io'
query: @sql select 1;;
models: [
diff --git a/team-folders/khai/models/time_type.model.aml b/team-folders/khai/models/time_type.model.aml
deleted file mode 100644
index dacbdcba..00000000
--- a/team-folders/khai/models/time_type.model.aml
+++ /dev/null
@@ -1,24 +0,0 @@
-Model time_type {
- type: 'query'
- label: 'Time Type'
- description: ''
- data_source_name: 'demodb'
- dimension time_type {
- label: 'Time Type'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.time_type }};;
- }
-
- owner: 'khai.to@holistics.io'
- query: @sql
- SELECT time_type FROM (VALUES
- ('1. Week'),
- ('2. MTD'),
- ('3. MTD LY'),
- ('4. YTD'),
- ('5. YTD LY')
- ) AS t(time_type);;
- models: [
- ]
-}
diff --git a/team-folders/khai/role-playing-dim/buyers.model.aml b/team-folders/khai/role-playing-dim/buyers.model.aml
index 91aeed77..9b28681b 100644
--- a/team-folders/khai/role-playing-dim/buyers.model.aml
+++ b/team-folders/khai/role-playing-dim/buyers.model.aml
@@ -4,12 +4,4 @@ Model buyers = users.extend({
label: 'User Name'
description: 'Contains name of both Buyers & Sellers'
}
-})
-
-Model sellerss = users.extend({
- label: 'Sellers'
- dimension full_name {
- label: 'User Name'
- description: 'Contains name of both Buyers & Sellers'
- }
})
\ No newline at end of file
diff --git a/team-folders/khai/role-playing-dim/buyers_sellers_transactions.dataset.aml b/team-folders/khai/role-playing-dim/buyers_sellers_transactions.dataset.aml
index ca748425..d0fd4fb1 100644
--- a/team-folders/khai/role-playing-dim/buyers_sellers_transactions.dataset.aml
+++ b/team-folders/khai/role-playing-dim/buyers_sellers_transactions.dataset.aml
@@ -5,8 +5,7 @@ Dataset buyers_sellers_transactions {
models: [
transactions_buyers_sellers,
buyers,
- sellers,
- sellerss
+ sellers
]
relationships: [
relationship(transactions_buyers_sellers.seller_id > sellers.id, true),
diff --git a/team-folders/khai/sales_manager_ecommerce_dashboard.page.aml b/team-folders/khai/sales_manager_ecommerce_dashboard.page.aml
deleted file mode 100644
index c0b7f63e..00000000
--- a/team-folders/khai/sales_manager_ecommerce_dashboard.page.aml
+++ /dev/null
@@ -1,93 +0,0 @@
-Dashboard sales_manager_ecommerce_dashboard {
- title: 'Sales Manager Ecommerce Dashboard'
- owner: 'thinh.nt+explorer@holistics.io'
- block v_0icq: VizBlock {
- label: 'Revenue, Total Users, and Revenue Per Active Customers by Country Name'
- viz: PivotTable {
- dataset: khai_ecommerce
- rows: [
- VizFieldFull {
- label: 'Country Name'
- ref: r(countries.name)
- format {
- type: 'text'
- }
- }
- ]
- values: [
- VizFieldFull {
- ref: r(khai_ecommerce.revenue)
- format {
- type: 'number'
- pattern: 'inherited'
- }
- },
- VizFieldFull {
- ref: r(khai_ecommerce.total_users)
- format {
- type: 'number'
- pattern: 'inherited'
- }
- },
- VizFieldFull {
- ref: r(khai_ecommerce.revenue_per_active_customers)
- format {
- type: 'number'
- pattern: '[$$]#,###0.00'
- group_separator: ','
- decimal_separator: '.'
- }
- }
- ]
- settings {
- show_row_total: true
- show_column_total: true
- row_limit: 5000
- aggregate_awareness {
- enabled: true
- debug_comments: true
- }
- }
- }
- }
- block v_c5oo: VizBlock {
- label: 'Revenue Per Active Customers'
- viz: MetricKpi {
- dataset: khai_ecommerce
- value: VizFieldFull {
- ref: r(khai_ecommerce.revenue_per_active_customers)
- format {
- type: 'number'
- pattern: 'inherited'
- }
- }
- settings {
- aggregate_awareness {
- enabled: true
- debug_comments: true
- }
- alignment: 'left'
- }
- }
- settings {
- hide_label: true
- }
- }
- view: CanvasLayout {
- label: 'View 1'
- width: 960
- height: 480
- grid_size: 20
- auto_expand_vertically: true
- block v_0icq {
- position: pos(40, 40, 620, 420)
- }
- block v_c5oo {
- position: pos(680, 40, 260, 120)
- }
- mobile {
- mode: 'auto'
- }
- }
- theme: H.themes.vanilla
-}
\ No newline at end of file
diff --git a/team-folders/khai/support classover/studen_teacher_classover.dataset.aml b/team-folders/khai/support classover/studen_teacher_classover.dataset.aml
deleted file mode 100644
index 2029d7eb..00000000
--- a/team-folders/khai/support classover/studen_teacher_classover.dataset.aml
+++ /dev/null
@@ -1,11 +0,0 @@
-Dataset studen_teacher_classover {
- label: 'Studen Teacher Classover'
- description: ''
- data_source_name: 'demodb'
- models: [
- teacher_student
- ]
- relationships: [
- ]
- owner: 'khai.to@holistics.io'
-}
diff --git a/team-folders/khai/support classover/teacher_student.model.aml b/team-folders/khai/support classover/teacher_student.model.aml
deleted file mode 100644
index 01bacc5f..00000000
--- a/team-folders/khai/support classover/teacher_student.model.aml
+++ /dev/null
@@ -1,56 +0,0 @@
-Model teacher_student {
- type: 'query'
- label: 'Teacher Student'
- description: ''
- data_source_name: 'demodb'
- dimension teacher_name {
- label: 'Teacher Name'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.teacher_name }};;
- }
- dimension lesson_sn {
- label: 'Lesson Sn'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.lesson_sn }};;
- }
- dimension duration {
- label: 'Duration'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.duration }};;
- }
- dimension student {
- label: 'Student'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.student }};;
- }
- dimension rating {
- label: 'Rating'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.rating }};;
- }
- dimension start_at {
- label: "Start At"
- type: "datetime"
- hidden: false
- definition: @sql {{ #SOURCE.start_at }};;
- }
-
- owner: 'khai.to@holistics.io'
- query: @sql SELECT *
-FROM (
- VALUES
- ('aaaa', 1, 0.5, 'A', 3, '2022-03-21 10:00:00'::TIMESTAMP),
- ('aaaa', 1, 0.5, 'B', 4, '2022-03-21 10:00:00'::TIMESTAMP),
- ('aaaa', 1, 0.5, 'C', 5, '2022-03-21 10:00:00'::TIMESTAMP),
- ('aaaa', 2, 1.0, 'A', 4, '2022-04-05 10:00:00'::TIMESTAMP),
- ('aaaa', 2, 1.0, 'B', 5, '2022-04-05 10:00:00'::TIMESTAMP),
- ('bbbb', 3, 1.0, 'D', 5, '2022-06-05 10:00:00'::TIMESTAMP)
-) AS t(teacher_name, lesson_sn, duration, student, rating, start_at);;
- models: [
- ]
-}
\ No newline at end of file
diff --git a/team-folders/khai/testing_reuse_block.page.aml b/team-folders/khai/testing_reuse_block.page.aml
index 1789b264..95a0a358 100644
--- a/team-folders/khai/testing_reuse_block.page.aml
+++ b/team-folders/khai/testing_reuse_block.page.aml
@@ -13,15 +13,7 @@ Dashboard testing_reuse_block {
position: pos(20, 20, 1160, 560)
layer: 1
}
- block f_buya {
- position: pos(20, 600, 300, 80)
- layer: 2
- }
}
theme: H.themes.vanilla
- block v1: block_cohort_retention(
- 'quarter',
- 'Baking and Cooking'
- )
}
\ No newline at end of file
diff --git a/team-folders/khai/time_comparison.page.aml b/team-folders/khai/time_comparison.page.aml
deleted file mode 100644
index 1c13fb20..00000000
--- a/team-folders/khai/time_comparison.page.aml
+++ /dev/null
@@ -1,102 +0,0 @@
-Dashboard time_comparison {
- title: 'time_comparison'
- description: ''
- owner: 'khai.to@holistics.io'
- block v_2i3x: VizBlock {
- label: 'GMV (time compare), NMV (time compare) and 5 more by Time Type'
- viz: PivotTable {
- dataset: khai_ecommerce
- columns: [
- VizFieldFull {
- ref: r(time_type.time_type)
- format {
- type: 'text'
- }
- }
- ]
- values: [
- VizFieldFull {
- ref: r(khai_ecommerce.gmv_time_compare)
- format {
- type: 'number'
- pattern: 'inherited'
- }
- },
- VizFieldFull {
- ref: r(khai_ecommerce.nmv_time_compare)
- format {
- type: 'number'
- pattern: 'inherited'
- }
- },
- VizFieldFull {
- ref: r(khai_ecommerce.aov_time_compare)
- format {
- type: 'number'
- pattern: 'inherited'
- }
- },
- VizFieldFull {
- ref: r(khai_ecommerce.total_orders_compare)
- format {
- type: 'number'
- pattern: 'inherited'
- }
- },
- VizFieldFull {
- ref: r(khai_ecommerce.total_delivered_orders_time_compare)
- format {
- type: 'number'
- pattern: 'inherited'
- }
- },
- VizFieldFull {
- ref: r(khai_ecommerce.total_cancelled_orders_time_compare)
- format {
- type: 'number'
- pattern: 'inherited'
- }
- },
- VizFieldFull {
- ref: r(khai_ecommerce.cancelled_order_ratio_time_compare)
- format {
- type: 'number'
- pattern: 'inherited'
- }
- }
- ]
- settings {
- row_limit: 5000
- aggregate_awareness {
- enabled: true
- debug_comments: true
- }
- value_labels_position {
- placement: 'rows'
- }
- column_styles: [
- ColumnStyle {
- key: 'h__row_value_label_placeholder'
- width: 255.68179321289062
- }
- ]
- }
- }
- }
-
- view: CanvasLayout {
- label: 'View 1'
- width: 1220
- height: 340
- grid_size: 20
- auto_expand_vertically: true
- block v_2i3x {
- position: pos(20, 20, 1180, 300)
- layer: 1
- }
- mobile {
- mode: 'auto'
- }
- }
- theme: excel_style
-}
\ No newline at end of file
diff --git a/team-folders/khai/timo_referral_program/dashboards/timo_referral_program_dashboard.page.aml b/team-folders/khai/timo_referral_program/dashboards/timo_referral_program_dashboard.page.aml
deleted file mode 100644
index e3a9b898..00000000
--- a/team-folders/khai/timo_referral_program/dashboards/timo_referral_program_dashboard.page.aml
+++ /dev/null
@@ -1,114 +0,0 @@
-Dashboard timo_referral_program_dashboard {
- title: 'Timo Referral Program Dashboard'
- description: ''
- block title: TextBlock {
- content: @md # Your title goes here ;;
- }
- block v_3yn5: VizBlock {
- label: 'Invitees, Fund Id and 5 more'
- viz: DataTable {
- dataset: timo_referral_program
- calculation total_invitees {
- label: 'Total Invitees'
- formula: @aql count(timo_invitees.user_id) | keep_grains(timo_invitees, timo_fund_info);;
- calc_type: 'measure'
- data_type: 'number'
- }
- filter {
- field: r(timo_invitees.fund_master)
- operator: 'is'
- value: true
- }
- filter {
- field: r(timo_inviters.fund_master)
- operator: 'is'
- value: false
- }
- fields: [
- VizFieldFull {
- label: 'Invitees'
- ref: r(timo_invitees.user_id)
- format {
- type: 'text'
- }
- },
- VizFieldFull {
- ref: r(timo_fund_info.fund_id)
- format {
- type: 'text'
- }
- },
- VizFieldFull {
- ref: r(timo_fund_info.fund_type)
- format {
- type: 'text'
- }
- },
- VizFieldFull {
- label: 'Fund Created At'
- ref: r(timo_fund_info.created_at)
- format {
- type: 'datetime'
- }
- },
- VizFieldFull {
- ref: r(timo_invitees.checking_created_at)
- format {
- type: 'datetime'
- }
- },
- VizFieldFull {
- ref: r(timo_inviters.user_id)
- aggregation: 'count'
- format {
- type: 'number'
- pattern: 'inherited'
- }
- uname: 'count_user_id_1'
- },
- VizFieldFull {
- ref: 'total_invitees'
- format {
- type: 'number'
- pattern: 'inherited'
- }
- hidden: true
- }
- ]
- settings {
- show_row_number: true
- sorts: [
- SortSetting {
- key: 'count_user_id_1'
- direction: 'desc'
- }
- ]
- row_limit: 5000
- aggregate_awareness {
- enabled: true
- debug_comments: true
- }
- }
- }
- }
-
- view: CanvasLayout {
- label: 'View 1'
- width: 1300
- height: 560
- grid_size: 20
- auto_expand_vertically: true
- block title {
- position: pos(20, 20, 1260, 60)
- }
- block v_3yn5 {
- position: pos(20, 80, 1260, 460)
- layer: 1
- }
- mobile {
- mode: 'auto'
- }
- }
-
- theme: H.themes.vanilla
-}
\ No newline at end of file
diff --git a/team-folders/khai/timo_referral_program/datasets/timo_referral_program.dataset.aml b/team-folders/khai/timo_referral_program/datasets/timo_referral_program.dataset.aml
deleted file mode 100644
index 2ad489bf..00000000
--- a/team-folders/khai/timo_referral_program/datasets/timo_referral_program.dataset.aml
+++ /dev/null
@@ -1,15 +0,0 @@
-Dataset timo_referral_program {
- label: 'Timo Referral Program'
- description: ''
- data_source_name: 'demodb'
- models: [
- timo_invitees,
- timo_inviters,
- timo_fund_info
- ]
- relationships: [
- relationship(timo_inviters.fund_id > timo_fund_info.fund_id, true),
- relationship(timo_invitees.fund_id > timo_fund_info.fund_id, true)
- ]
- owner: 'khai.to@holistics.io'
-}
\ No newline at end of file
diff --git a/team-folders/khai/timo_referral_program/models/base/ap_bi.model.aml b/team-folders/khai/timo_referral_program/models/base/ap_bi.model.aml
deleted file mode 100644
index 62da8834..00000000
--- a/team-folders/khai/timo_referral_program/models/base/ap_bi.model.aml
+++ /dev/null
@@ -1,56 +0,0 @@
-Model ap_bi {
- type: 'query'
- label: 'Ap Bi'
- description: ''
- data_source_name: 'demodb'
- dimension kyc_id_deid {
- label: 'Kyc Id Deid'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.kyc_id_deid }};;
- }
- dimension checking_created_at {
- label: 'Checking Created At'
- type: 'datetime'
- hidden: false
- definition: @sql {{ #SOURCE.checking_created_at }};;
- }
-
- owner: 'khai.to@holistics.io'
- query: @sql
- -- ap_bi.customer_info_short
- SELECT * FROM (VALUES
- ('USER_001', '2023-12-15 08:30:00'::timestamp),
- ('USER_002', '2024-01-20 10:15:00'::timestamp),
- ('USER_003', '2024-02-28 14:45:00'::timestamp),
- ('USER_004', '2024-03-25 11:20:00'::timestamp),
- ('USER_005', '2024-04-10 16:30:00'::timestamp),
- ('USER_006', '2024-05-20 09:45:00'::timestamp),
- ('USER_007', '2024-06-25 12:00:00'::timestamp),
- ('USER_008', '2024-07-30 15:15:00'::timestamp),
- ('USER_010', '2024-08-15 13:30:00'::timestamp),
- ('USER_011', '2024-09-05 10:00:00'::timestamp),
- ('USER_012', '2024-10-12 14:20:00'::timestamp),
- ('USER_013', '2024-05-01 11:45:00'::timestamp),
- ('USER_014', '2024-11-25 16:00:00'::timestamp),
- ('USER_100', '2023-11-01 09:00:00'::timestamp),
- ('USER_101', '2023-10-15 14:30:00'::timestamp),
- ('USER_102', '2023-09-20 11:15:00'::timestamp),
- ('USER_103', '2024-02-01 16:45:00'::timestamp),
- ('USER_104', '2024-01-10 08:20:00'::timestamp),
- ('USER_105', '2024-03-15 13:50:00'::timestamp),
- ('USER_106', '2024-04-20 10:30:00'::timestamp),
- ('USER_107', '2024-05-25 15:40:00'::timestamp),
- ('USER_108', '2024-06-30 12:25:00'::timestamp),
- ('USER_109', '2024-07-05 17:10:00'::timestamp),
- ('USER_110', '2024-07-15 09:35:00'::timestamp),
- ('USER_111', '2024-08-20 14:05:00'::timestamp),
- ('USER_112', '2024-09-10 11:50:00'::timestamp),
- ('USER_113', '2024-04-05 16:25:00'::timestamp),
- ('USER_114', '2024-10-30 13:15:00'::timestamp),
- ('USER_115', '2024-03-01 10:00:00'::timestamp),
- ('USER_116', '2024-04-15 12:30:00'::timestamp)
- ) AS customer_info_short(kyc_id_deid, checking_created_at);;
- models: [
- ]
-}
diff --git a/team-folders/khai/timo_referral_program/models/base/referral_db.model.aml b/team-folders/khai/timo_referral_program/models/base/referral_db.model.aml
deleted file mode 100644
index 0d0f5de5..00000000
--- a/team-folders/khai/timo_referral_program/models/base/referral_db.model.aml
+++ /dev/null
@@ -1,42 +0,0 @@
-Model referral_db {
- type: 'query'
- label: 'Referral Db'
- description: ''
- data_source_name: 'demodb'
- dimension invited_user_id_deid {
- label: 'Invited User Id Deid'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.invited_user_id_deid }};;
- }
- dimension referrer_user_id_deid {
- label: 'Referrer User Id Deid'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.referrer_user_id_deid }};;
- }
-
- owner: 'khai.to@holistics.io'
- query: @sql
- -- referral_db.referral_invitee
- SELECT * FROM (VALUES
- ('USER_001', 'USER_100'),
- ('USER_002', 'USER_101'),
- ('USER_003', 'USER_102'),
- ('USER_004', 'USER_103'),
- ('USER_005', 'USER_104'),
- ('USER_006', 'USER_105'),
- ('USER_006', 'USER_116'),
- ('USER_007', 'USER_106'),
- ('USER_007', 'USER_107'),
- ('USER_008', 'USER_108'),
- ('USER_008', 'USER_109'),
- ('USER_010', 'USER_110'),
- ('USER_011', 'USER_111'),
- ('USER_012', 'USER_112'),
- ('USER_013', 'USER_113'),
- ('USER_014', 'USER_114')
- ) AS referral_invitee(invited_user_id_deid, referrer_user_id_deid);;
- models: [
- ]
-}
diff --git a/team-folders/khai/timo_referral_program/models/base/timo_application_db.model.aml b/team-folders/khai/timo_referral_program/models/base/timo_application_db.model.aml
deleted file mode 100644
index 6a92123e..00000000
--- a/team-folders/khai/timo_referral_program/models/base/timo_application_db.model.aml
+++ /dev/null
@@ -1,70 +0,0 @@
-Model timo_application_db {
- type: 'query'
- label: 'Timo Application Db'
- description: ''
- data_source_name: 'demodb'
- dimension user_id_deid {
- label: 'User Id Deid'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.user_id_deid }};;
- }
- dimension fund_id {
- label: 'Fund Id'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.fund_id }};;
- }
- dimension fund_type {
- label: 'Fund Type'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.fund_type }};;
- }
- dimension master {
- label: 'Master'
- type: 'truefalse'
- hidden: false
- definition: @sql {{ #SOURCE.master }};;
- }
- dimension created_at {
- label: 'Created At'
- type: 'datetime'
- hidden: false
- definition: @sql {{ #SOURCE.created_at }};;
- }
-
- owner: 'khai.to@holistics.io'
- query: @sql -- timo_application_db.social_joint_fund
-SELECT * FROM (VALUES
- ('USER_001', 'FUND_A', 'FAMILY', true, '2024-01-15 10:00:00'::timestamp),
- ('USER_100', 'FUND_A', 'FAMILY', false, '2024-01-20 14:30:00'::timestamp),
- ('USER_002', 'FUND_B', 'FRIENDS', true, '2024-02-01 09:15:00'::timestamp),
- ('USER_101', 'FUND_B', 'FRIENDS', false, '2024-02-05 16:45:00'::timestamp),
- ('USER_003', 'FUND_C', 'COUPLE', true, '2024-03-01 11:30:00'::timestamp),
- ('USER_004', 'FUND_D', 'FAMILY', false, '2024-04-01 12:00:00'::timestamp),
- ('USER_103', 'FUND_E', 'INVESTMENT', false, '2024-04-03 13:30:00'::timestamp),
- ('USER_115', 'FUND_E', 'INVESTMENT', true, '2024-04-02 10:00:00'::timestamp),
- ('USER_105', 'FUND_F', 'FRIENDS', false, '2024-05-25 10:00:00'::timestamp),
- ('USER_006', 'FUND_F', 'FRIENDS', true, '2024-06-01 15:00:00'::timestamp),
- ('USER_116', 'FUND_F', 'FRIENDS', true, '2024-05-20 09:00:00'::timestamp),
- ('USER_007', 'FUND_G', 'FAMILY', true, '2024-07-01 09:00:00'::timestamp),
- ('USER_106', 'FUND_G', 'FAMILY', false, '2024-07-05 11:30:00'::timestamp),
- ('USER_107', 'FUND_G', 'FAMILY', false, '2024-07-08 14:15:00'::timestamp),
- ('USER_008', 'FUND_H', 'EMERGENCY', true, '2024-08-01 08:00:00'::timestamp),
- ('USER_108', 'FUND_H', 'EMERGENCY', false, '2024-08-03 17:00:00'::timestamp),
- ('USER_010', 'FUND_I', 'INVESTMENT', true, '2024-09-01 13:00:00'::timestamp),
- ('USER_110', 'FUND_I', 'INVESTMENT', false, '2024-09-10 10:30:00'::timestamp),
- ('USER_011', 'FUND_J', 'SAVINGS', true, '2024-10-01 14:00:00'::timestamp),
- ('USER_111', 'FUND_J', 'SAVINGS', false, '2024-10-01 09:00:00'::timestamp),
- ('USER_012', 'FUND_K1', 'FAMILY', true, '2024-11-01 10:00:00'::timestamp),
- ('USER_012', 'FUND_K2', 'INVESTMENT', true, '2024-11-05 11:00:00'::timestamp),
- ('USER_112', 'FUND_K1', 'FAMILY', false, '2024-11-10 15:00:00'::timestamp),
- ('USER_013', 'FUND_L', 'VACATION', true, '2024-06-01 12:00:00'::timestamp),
- ('USER_113', 'FUND_M', 'VACATION', false, '2024-09-15 16:30:00'::timestamp),
- ('USER_014', 'FUND_M', 'EMERGENCY', true, '2024-12-01 09:30:00'::timestamp),
- ('USER_114', 'FUND_M', 'EMERGENCY', false, '2024-12-02 14:15:00'::timestamp)
-) AS social_joint_fund(user_id_deid, fund_id, fund_type, master, created_at);;
- models: [
- ]
-}
\ No newline at end of file
diff --git a/team-folders/khai/timo_referral_program/models/transform/timo_fund_info.model.aml b/team-folders/khai/timo_referral_program/models/transform/timo_fund_info.model.aml
deleted file mode 100644
index da0f6d76..00000000
--- a/team-folders/khai/timo_referral_program/models/transform/timo_fund_info.model.aml
+++ /dev/null
@@ -1,38 +0,0 @@
-Model timo_fund_info {
- type: 'query'
- label: 'Timo Fund Info'
- description: ''
- data_source_name: 'demodb'
- dimension fund_id {
- label: 'Fund Id'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.fund_id }};;
- }
- dimension fund_type {
- label: 'Fund Type'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.fund_type }};;
- }
- dimension created_at {
- label: "Created At"
- type: "datetime"
- hidden: false
- definition: @sql {{ #SOURCE.created_at }};;
- primary_key: false
- }
-
- owner: 'khai.to@holistics.io'
- query: @sql SELECT
- {{ #timo_application_db.fund_id }},
- {{ #timo_application_db.fund_type }},
- {{ #timo_application_db.created_at }}
-FROM {{ #timo_application_db }}
-WHERE {{ #timo_application_db.master }} = true
-GROUP BY 1, 2, 3
-ORDER BY 1;;
- models: [
- timo_application_db
- ]
-}
\ No newline at end of file
diff --git a/team-folders/khai/timo_referral_program/models/transform/timo_invitees.model.aml b/team-folders/khai/timo_referral_program/models/transform/timo_invitees.model.aml
deleted file mode 100644
index 2f222ba6..00000000
--- a/team-folders/khai/timo_referral_program/models/transform/timo_invitees.model.aml
+++ /dev/null
@@ -1,55 +0,0 @@
-Model timo_invitees {
- type: 'query'
- label: 'Timo Invitees'
- description: ''
- data_source_name: 'demodb'
- dimension user_id {
- label: 'User Id'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.user_id }};;
- }
- dimension fund_id {
- label: 'Fund Id'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.fund_id }};;
- }
- dimension fund_master {
- label: 'Fund Master'
- type: 'truefalse'
- hidden: false
- definition: @sql {{ #SOURCE.fund_master }};;
- }
- dimension invitee_created_at {
- label: 'Invitee Created At'
- type: 'datetime'
- hidden: false
- definition: @sql {{ #SOURCE.invitee_created_at }};;
- }
- dimension checking_created_at {
- label: 'Checking Created At'
- type: 'datetime'
- hidden: false
- definition: @sql {{ #SOURCE.checking_created_at }};;
- }
-
- owner: 'khai.to@holistics.io'
- query: @sql
- SELECT
- {{ #referral_db.invited_user_id_deid }} as user_id,
- {{ #timo_application_db.fund_id }},
- {{ #timo_application_db.master }} as fund_master,
- {{ #timo_application_db.created_at }} as invitee_created_at,
- {{ #ap_bi.checking_created_at }}
- FROM {{ #referral_db }}
- INNER JOIN {{ #timo_application_db }}
- ON {{ #referral_db.invited_user_id_deid }} = {{ #timo_application_db.user_id_deid }}
- INNER JOIN {{ #ap_bi }}
- ON {{ #referral_db.invited_user_id_deid }} = {{ #ap_bi.kyc_id_deid }};;
- models: [
- ap_bi,
- referral_db,
- timo_application_db
- ]
-}
diff --git a/team-folders/khai/timo_referral_program/models/transform/timo_inviters.model.aml b/team-folders/khai/timo_referral_program/models/transform/timo_inviters.model.aml
deleted file mode 100644
index 2c40fb22..00000000
--- a/team-folders/khai/timo_referral_program/models/transform/timo_inviters.model.aml
+++ /dev/null
@@ -1,55 +0,0 @@
-Model timo_inviters {
- type: 'query'
- label: 'Timo Inviters'
- description: ''
- data_source_name: 'demodb'
- dimension user_id {
- label: 'User Id'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.user_id }};;
- }
- dimension fund_id {
- label: 'Fund Id'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.fund_id }};;
- }
- dimension fund_master {
- label: 'Fund Master'
- type: 'truefalse'
- hidden: false
- definition: @sql {{ #SOURCE.fund_master }};;
- }
- dimension inviter_created_at {
- label: 'Inviter Created At'
- type: 'datetime'
- hidden: false
- definition: @sql {{ #SOURCE.inviter_created_at }};;
- }
- dimension checking_created_at {
- label: 'Checking Created At'
- type: 'datetime'
- hidden: false
- definition: @sql {{ #SOURCE.checking_created_at }};;
- }
-
- owner: 'khai.to@holistics.io'
- query: @sql
- SELECT
- {{ #referral_db.referrer_user_id_deid }} as user_id,
- {{ #timo_application_db.fund_id }},
- {{ #timo_application_db.master }} as fund_master,
- {{ #timo_application_db.created_at }} as inviter_created_at,
- {{ #ap_bi.checking_created_at }}
- FROM {{ #referral_db }}
- INNER JOIN {{ #timo_application_db }}
- ON {{ #referral_db.referrer_user_id_deid }} = {{ #timo_application_db.user_id_deid }}
- INNER JOIN {{ #ap_bi }}
- ON {{ #referral_db.referrer_user_id_deid }} = {{ #ap_bi.kyc_id_deid }};;
- models: [
- ap_bi,
- referral_db,
- timo_application_db
- ]
-}
diff --git a/team-folders/tai/dashboards/tai_cohort_retention.page.aml b/team-folders/tai/dashboards/tai_cohort_retention.page.aml
deleted file mode 100644
index 7df012e6..00000000
--- a/team-folders/tai/dashboards/tai_cohort_retention.page.aml
+++ /dev/null
@@ -1,400 +0,0 @@
-Dashboard tai_cohort_retention {
- title: 'Cohort Retention (from Khai)'
-
- view: CanvasLayout {
- label: 'View 1'
- height: 1840
- grid_size: 20
- mobile {
- mode: 'auto'
- }
- block v1 {
- position: pos(20, 20, 2180, 520)
- layer: 1
- }
- block v_grip {
- position: pos(40, 640, 280, 520)
- }
- block v_xt6f {
- position: pos(320, 640, 1520, 520)
- }
- width: 2220
- }
-
- theme: H.themes.vanilla
- block v1: VizBlock {
- label: 'Cohort Retention'
- viz: PivotTable {
- dataset: khai_ecommerce
- calculation first_acquired_at {
- label: 'First Acquired At'
- formula: @aql dimensionalize(
- min(orders.created_at),
- users.id
-);;
- calc_type: 'dimension'
- data_type: 'datetime'
- model: users
- }
- calculation months_from_first_orders {
- label: 'Months From First Orders'
- formula: @aql date_diff(
- 'month',
- users.first_acquired_at,
- orders.created_at
-);;
- calc_type: 'dimension'
- data_type: 'number'
- model: orders
- }
- calculation total_users_retention {
- label: 'Total Users Retention'
- formula: @aql (total_users * 1.0)
-/
-(total_users | of_all(orders.months_from_first_orders));;
- calc_type: 'measure'
- data_type: 'number'
- }
- filter {
- field: ref('users', 'first_acquired_at')
- operator: 'matches'
- value: 'last year to current year'
- }
- theme {
- table {
- general {
- borders {
- outer: true
- vertical: true
- }
- }
- }
- }
- rows: [
- VizFieldFull {
- ref: ref('users', 'first_acquired_at')
- transformation: 'datetrunc month'
- format {
- type: 'date'
- pattern: 'LLL yyyy'
- }
- }
- ]
- columns: [
- VizFieldFull {
- ref: ref('orders', 'months_from_first_orders')
- format {
- type: 'number'
- pattern: 'inherited'
- }
- }
- ]
- values: [
- VizFieldFull {
- ref: 'total_users_retention'
- format {
- type: 'number'
- pattern: '#,###0.00%'
- group_separator: ','
- decimal_separator: '.'
- }
- uname: 'custom_total_users_retention'
- },
- VizFieldFull {
- ref: r(khai_ecommerce.total_users)
- format {
- type: 'number'
- pattern: 'inherited'
- }
- }
- ]
- settings {
- conditional_formats: [
- ConditionalFormat {
- key: 'custom_total_users_retention'
- format: ScaleFormat {
- min {
- value: 0.2
- color: '#FFFFFF'
- }
- max {
- value: 0.7
- color: '#47B881'
- }
- }
- }
- ]
- row_limit: 5000
- aggregate_awareness {
- enabled: true
- debug_comments: true
- }
- column_styles: [
- ColumnStyle {
- key: 'custom_total_users_retention'
- width: 74
- }
- ]
- }
- }
- }
- block v_grip: VizBlock {
- label: 'Cohort Retention copy'
- theme {
- border {
- border_width: 0
- }
- padding: 0
- }
- viz: PivotTable {
- dataset: khai_ecommerce
- calculation first_acquired_at {
- label: 'First Acquired At'
- formula: @aql dimensionalize(
- min(orders.created_at),
- users.id
-);;
- calc_type: 'dimension'
- data_type: 'datetime'
- model: users
- }
- calculation months_from_first_orders {
- label: 'Months From First Orders'
- formula: @aql date_diff(
- 'month',
- users.first_acquired_at,
- orders.created_at
-);;
- calc_type: 'dimension'
- data_type: 'number'
- model: orders
- }
- calculation total_users_retention {
- label: 'Total Users Retention'
- formula: @aql (total_users * 1.0)
-/
-(total_users | of_all(orders.months_from_first_orders));;
- calc_type: 'measure'
- data_type: 'number'
- }
- filter {
- field: ref('users', 'first_acquired_at')
- operator: 'matches'
- value: 'last year to current year'
- }
- filter {
- field: ref('orders', 'months_from_first_orders')
- operator: 'less_than'
- value: '1'
- }
- theme {
- table {
- general {
- borders {
- outer: true
- vertical: true
- }
- }
- }
- }
- rows: [
- VizFieldFull {
- ref: ref('users', 'first_acquired_at')
- transformation: 'datetrunc month'
- format {
- type: 'date'
- pattern: 'LLL yyyy'
- }
- }
- ]
- columns: [
- VizFieldFull {
- ref: ref('orders', 'months_from_first_orders')
- format {
- type: 'number'
- pattern: 'inherited'
- }
- }
- ]
- values: [
- VizFieldFull {
- ref: 'total_users_retention'
- format {
- type: 'number'
- pattern: '#,###0.00%'
- group_separator: ','
- decimal_separator: '.'
- }
- uname: 'custom_total_users_retention'
- },
- VizFieldFull {
- ref: r(khai_ecommerce.total_users)
- format {
- type: 'number'
- pattern: 'inherited'
- }
- uname: 'custom_total_users'
- }
- ]
- settings {
- conditional_formats: [
- ConditionalFormat {
- key: 'custom_total_users_retention'
- format: ScaleFormat {
- min {
- value: 0.2
- color: '#FFFFFF'
- }
- max {
- value: 0.7
- color: '#47B881'
- }
- }
- }
- ]
- row_limit: 5000
- aggregate_awareness {
- enabled: true
- debug_comments: true
- }
- column_styles: [
- ColumnStyle {
- key: 'custom_total_users_retention'
- width: 91
- },
- ColumnStyle {
- key: 'custom_total_users'
- width: 84
- }
- ]
- }
- }
- settings {
- hide_label: true
- }
- }
- block v_xt6f: VizBlock {
- label: 'Cohort Retention copy copy'
- theme {
- border {
- border_width: 0
- }
- padding: 0
- }
- viz: PivotTable {
- dataset: khai_ecommerce
- calculation first_acquired_at {
- label: 'First Acquired At'
- formula: @aql dimensionalize(
- min(orders.created_at),
- users.id
-);;
- calc_type: 'dimension'
- data_type: 'datetime'
- model: users
- }
- calculation months_from_first_orders {
- label: 'Months From First Orders'
- formula: @aql date_diff(
- 'month',
- users.first_acquired_at,
- orders.created_at
-);;
- calc_type: 'dimension'
- data_type: 'number'
- model: orders
- }
- calculation total_users_retention {
- label: 'Total Users Retention'
- formula: @aql (total_users * 1.0)
-/
-(total_users | of_all(orders.months_from_first_orders));;
- calc_type: 'measure'
- data_type: 'number'
- }
- filter {
- field: ref('users', 'first_acquired_at')
- operator: 'matches'
- value: 'last year to current year'
- }
- filter {
- field: ref('orders', 'months_from_first_orders')
- operator: 'greater_than'
- value: '0'
- }
- theme {
- table {
- general {
- borders {
- outer: true
- vertical: true
- }
- }
- }
- }
- rows: [
- VizFieldFull {
- ref: ref('users', 'first_acquired_at')
- transformation: 'datetrunc month'
- format {
- type: 'date'
- pattern: 'LLL yyyy'
- }
- hidden: true
- }
- ]
- columns: [
- VizFieldFull {
- ref: ref('orders', 'months_from_first_orders')
- format {
- type: 'number'
- pattern: 'inherited'
- }
- }
- ]
- values: [
- VizFieldFull {
- ref: 'total_users_retention'
- format {
- type: 'number'
- pattern: '#,###0.00%'
- group_separator: ','
- decimal_separator: '.'
- }
- uname: 'custom_total_users_retention'
- }
- ]
- settings {
- conditional_formats: [
- ConditionalFormat {
- key: 'custom_total_users_retention'
- format: ScaleFormat {
- min {
- value: 0.2
- color: '#FFFFFF'
- }
- max {
- value: 0.7
- color: '#47B881'
- }
- }
- }
- ]
- row_limit: 5000
- aggregate_awareness {
- enabled: true
- debug_comments: true
- }
- column_styles: [
- ColumnStyle {
- key: 'custom_total_users_retention'
- width: 111
- }
- ]
- }
- }
- settings {
- hide_label: true
- }
- }
-}
\ No newline at end of file
diff --git a/team-folders/tai/embed_portal.embed.aml b/team-folders/tai/embed_portal.embed.aml
index 54d61a28..98e48566 100644
--- a/team-folders/tai/embed_portal.embed.aml
+++ b/team-folders/tai/embed_portal.embed.aml
@@ -4,4 +4,4 @@
// test_zoom
// ]
// initial_object: test_zoom
-// }
\ No newline at end of file
+// }
diff --git a/team-folders/tai/modeling/galaxy/ecommerce_dim_dates.model.aml b/team-folders/tai/modeling/galaxy/ecommerce_dim_dates.model.aml
deleted file mode 100644
index 5851794f..00000000
--- a/team-folders/tai/modeling/galaxy/ecommerce_dim_dates.model.aml
+++ /dev/null
@@ -1,105 +0,0 @@
-Model ecommerce_dim_dates {
- type: 'table'
- label: 'Dim Dates'
- description: ''
- data_source_name: 'demodb'
- dimension date_key {
- label: 'Date Key'
- type: 'date'
- hidden: false
- definition: @sql {{ #SOURCE.date_key }};;
- }
- dimension day_of_week {
- label: 'Day Of Week'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.day_of_week }};;
- }
- dimension day_of_month {
- label: 'Day Of Month'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.day_of_month }};;
- }
- dimension day_of_year {
- label: 'Day Of Year'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.day_of_year }};;
- }
- dimension weekday_name {
- label: 'Weekday Name'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.weekday_name }};;
- }
- dimension weekday_name_abbr {
- label: 'Weekday Name Abbr'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.weekday_name_abbr }};;
- }
- dimension week_number {
- label: 'Week Number'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.week_number }};;
- }
- dimension week_number_iso {
- label: 'Week Number Iso'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.week_number_iso }};;
- }
- dimension year_week_iso {
- label: 'Year Week Iso'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.year_week_iso }};;
- }
- dimension month_name {
- label: 'Month Name'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.month_name }};;
- }
- dimension month_name_abbr {
- label: 'Month Name Abbr'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.month_name_abbr }};;
- }
- dimension month_number {
- label: 'Month Number'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.month_number }};;
- }
- dimension year_month {
- label: 'Year Month'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.year_month }};;
- }
- dimension quarter {
- label: 'Quarter'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.quarter }};;
- }
- dimension year_quarter {
- label: 'Year Quarter'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.year_quarter }};;
- }
- dimension year {
- label: 'Year'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.year }};;
- }
-
- owner: 'tai.nguyen@holistics.io'
- table_name: '"ecommerce"."dim_dates"'
-}
diff --git a/team-folders/tai/modeling/galaxy/ecommerce_dim_products.model.aml b/team-folders/tai/modeling/galaxy/ecommerce_dim_products.model.aml
deleted file mode 100644
index c0b66390..00000000
--- a/team-folders/tai/modeling/galaxy/ecommerce_dim_products.model.aml
+++ /dev/null
@@ -1,45 +0,0 @@
-Model ecommerce_dim_products {
- type: 'table'
- label: 'Dim Products'
- description: ''
- data_source_name: 'demodb'
- dimension id {
- label: 'Id'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.id }};;
- }
- dimension category_id {
- label: 'Category Id'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.category_id }};;
- }
- dimension name {
- label: 'Name'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.name }};;
- }
- dimension merchant_id {
- label: 'Merchant Id'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.merchant_id }};;
- }
- dimension price {
- label: 'Price'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.price }};;
- }
- dimension created_at {
- label: 'Created At'
- type: 'datetime'
- hidden: false
- definition: @sql {{ #SOURCE.created_at }};;
- }
-
- owner: 'tai.nguyen@holistics.io'
- table_name: '"ecommerce"."dim_products"'
-}
diff --git a/team-folders/tai/modeling/galaxy/ecommerce_fct_inventory.model.aml b/team-folders/tai/modeling/galaxy/ecommerce_fct_inventory.model.aml
deleted file mode 100644
index 218c15ad..00000000
--- a/team-folders/tai/modeling/galaxy/ecommerce_fct_inventory.model.aml
+++ /dev/null
@@ -1,34 +0,0 @@
-Model ecommerce_fct_inventory {
- type: 'table'
- table_name: 'ecommerce.inventory'
- data_source_name: 'demodb'
-
- dimension id {
- label: 'Inventory ID'
- type: 'number'
- primary_key: true
- hidden: true
- }
-
- dimension product_id {
- label: 'Product ID'
- type: 'number'
- hidden: true
- }
-
- dimension created_at {
- label: 'Created At'
- type: 'datetime'
- }
-
- dimension quantity_available {
- label: 'Quantity Available'
- type: 'number'
- }
-
- measure total_quantity {
- label: 'Total Available Quantity'
- type: 'number'
- definition: @aql sum(ecommerce_fct_inventory.quantity_available);;
- }
-}
\ No newline at end of file
diff --git a/team-folders/tai/modeling/galaxy/ecommerce_fct_order_items.model.aml b/team-folders/tai/modeling/galaxy/ecommerce_fct_order_items.model.aml
deleted file mode 100644
index f5e5a35d..00000000
--- a/team-folders/tai/modeling/galaxy/ecommerce_fct_order_items.model.aml
+++ /dev/null
@@ -1,87 +0,0 @@
-Model ecommerce_fct_order_items {
- type: 'table'
- label: 'Fct Order Items'
- description: ''
- data_source_name: 'demodb'
- dimension id {
- label: 'Id'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.id }};;
- }
- dimension order_id {
- label: 'Order Id'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.order_id }};;
- }
- dimension product_id {
- label: 'Product Id'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.product_id }};;
- }
- dimension user_id {
- label: 'User Id'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.user_id }};;
- }
- dimension category_id {
- label: 'Category Id'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.category_id }};;
- }
- dimension merchant_id {
- label: 'Merchant Id'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.merchant_id }};;
- }
- dimension merchant_city_id {
- label: 'Merchant City Id'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.merchant_city_id }};;
- }
- dimension merchant_country_code {
- label: 'Merchant Country Code'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.merchant_country_code }};;
- }
- dimension created_at {
- label: 'Created At'
- type: 'datetime'
- hidden: false
- definition: @sql {{ #SOURCE.created_at }};;
- }
- dimension created_date {
- label: 'Created Date'
- type: 'date'
- hidden: false
- definition: @sql {{ #SOURCE.created_date }};;
- }
- dimension quantity {
- label: 'Quantity'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.quantity }};;
- }
- dimension value {
- label: 'Value'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.value }};;
- }
- dimension discount_value {
- label: 'Discount Value'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.discount_value }};;
- }
-
- owner: 'tai.nguyen@holistics.io'
- table_name: '"ecommerce"."fct_order_items"'
-}
diff --git a/team-folders/tai/modeling/galaxy/ecommerce_fct_orders.model.aml b/team-folders/tai/modeling/galaxy/ecommerce_fct_orders.model.aml
deleted file mode 100644
index f2742c62..00000000
--- a/team-folders/tai/modeling/galaxy/ecommerce_fct_orders.model.aml
+++ /dev/null
@@ -1,63 +0,0 @@
-Model ecommerce_fct_orders {
- type: 'table'
- label: 'Fct Orders'
- description: ''
- data_source_name: 'demodb'
- dimension id {
- label: 'Id'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.id }};;
- }
- dimension user_id {
- label: 'User Id'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.user_id }};;
- }
- dimension user_city_id {
- label: 'User City Id'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.user_city_id }};;
- }
- dimension user_country_code {
- label: 'User Country Code'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.user_country_code }};;
- }
- dimension status {
- label: 'Status'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.status }};;
- }
- dimension created_at {
- label: 'Created At'
- type: 'datetime'
- hidden: false
- definition: @sql {{ #SOURCE.created_at }};;
- }
- dimension created_date {
- label: 'Created Date'
- type: 'date'
- hidden: false
- definition: @sql {{ #SOURCE.created_date }};;
- }
- dimension discount {
- label: 'Discount'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.discount }};;
- }
- dimension delivery_attempts {
- label: 'Delivery Attempts'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.delivery_attempts }};;
- }
-
- owner: 'tai.nguyen@holistics.io'
- table_name: '"ecommerce"."fct_orders"'
-}
diff --git a/team-folders/tai/modeling/galaxy/tai_galaxy_ecommerce.dataset.aml b/team-folders/tai/modeling/galaxy/tai_galaxy_ecommerce.dataset.aml
deleted file mode 100644
index 7bd5df9b..00000000
--- a/team-folders/tai/modeling/galaxy/tai_galaxy_ecommerce.dataset.aml
+++ /dev/null
@@ -1,20 +0,0 @@
-Dataset tai_galaxy_ecommerce {
- label: 'tai_galaxy_ecommerce'
- description: ''
- data_source_name: 'demodb'
- models: [
- ecommerce_fct_orders,
- ecommerce_dim_products,
- ecommerce_fct_order_items,
- ecommerce_dim_dates,
- ecommerce_fct_inventory
- ]
- relationships: [
- relationship(ecommerce_fct_order_items.product_id > ecommerce_dim_products.id, true),
- relationship(ecommerce_fct_order_items.created_at > ecommerce_dim_dates.date_key, true),
- relationship(ecommerce_fct_orders.created_at > ecommerce_dim_dates.date_key, true),
- relationship(ecommerce_fct_order_items.order_id > ecommerce_fct_orders.id, true),
- relationship(ecommerce_fct_inventory.product_id > ecommerce_dim_products.id, true)
-
- ]
-}
\ No newline at end of file
diff --git a/team-folders/tai/test_extend/tai_ecom_external.page.aml b/team-folders/tai/test_extend/tai_ecom_external.page.aml
deleted file mode 100644
index e9417819..00000000
--- a/team-folders/tai/test_extend/tai_ecom_external.page.aml
+++ /dev/null
@@ -1,43 +0,0 @@
-const hide_position = pos(-200, 0, 0, 0)
-
-Dashboard tai_ecom_external = tai_ecom.extend({
- view: tai_ecom.view.extend({
- // hide country filter
- block filter_by_country {
- position: hide_position
- }
- block filter_by_country_text {
- position: hide_position
- }
- block filter_by_country_wrapper {
- position: hide_position
- }
-
- // hide city filter
- block filter_by_city {
- position: hide_position
- }
- block filter_by_city_text {
- position: hide_position
- }
- block filter_by_city_wrapper {
- position: hide_position
- }
-
- // hide age group
- block filter_by_age_group {
- position: hide_position
- }
- block filter_by_age_group_text {
- position: hide_position
- }
- block filter_by_age_group_wrapper {
- position: hide_position
- }
-
- // move users vs order growth
- block users_vs_orders_growth {
- position: pos(60, 2860, 560, 400)
- }
- })
-})
\ No newline at end of file
diff --git a/team-folders/thong/thong_test_pop.dataset.aml b/team-folders/thong/thong_test_pop.dataset.aml
deleted file mode 100644
index 6c9b6f80..00000000
--- a/team-folders/thong/thong_test_pop.dataset.aml
+++ /dev/null
@@ -1,11 +0,0 @@
-Dataset thong_test_pop_ds {
- label: 'Thong Test Pop'
- description: ''
- data_source_name: 'demo_bigquery'
- models: [
- thong_test_pop
- ]
- relationships: [
- ]
- owner: 'thong.do@holistics.io'
-}
diff --git a/team-folders/thong/thong_test_pop.model.aml b/team-folders/thong/thong_test_pop.model.aml
deleted file mode 100644
index 793efd1b..00000000
--- a/team-folders/thong/thong_test_pop.model.aml
+++ /dev/null
@@ -1,39 +0,0 @@
-Model thong_test_pop {
- type: 'query'
- label: 'Thong Test Pop'
- description: ''
- data_source_name: 'demo_bigquery'
- dimension month {
- label: 'Month'
- type: 'date'
- hidden: false
- definition: @sql {{ #SOURCE.month }};;
- }
- dimension total_sales {
- label: 'Total Sales'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.total_sales }};;
- }
-
- owner: 'thong.do@holistics.io'
- query: @sql
- WITH months AS (
- SELECT
- month_date,
- OFFSET AS idx
- FROM UNNEST(
- GENERATE_DATE_ARRAY(DATE '2025-09-01', DATE '2027-08-01', INTERVAL 1 MONTH)
- ) AS month_date WITH OFFSET
- )
- SELECT
- month_date AS month, -- stays as DATE type
- CASE
- WHEN MOD(idx, 5) = 0 THEN NULL
- ELSE 5000 + idx * 1000
- END AS total_sales
- FROM months
- ORDER BY month_date;;;
- models: [
- ]
-}
diff --git a/team-folders/thong/thong_test_pop.page.aml b/team-folders/thong/thong_test_pop.page.aml
deleted file mode 100644
index 6e8f1293..00000000
--- a/team-folders/thong/thong_test_pop.page.aml
+++ /dev/null
@@ -1,131 +0,0 @@
-Dashboard thong_test_pop_db {
- title: 'Thong Test Pop'
- description: ''
-
- view: CanvasLayout {
- label: 'View 1'
- width: 1300
- height: 800
- grid_size: 20
- auto_expand_vertically: true
- mobile {
- mode: 'auto'
- }
- block v_8qxy {
- position: pos(20, 20, 620, 420)
- layer: 1
- }
- block v_zvas {
- position: pos(660, 20, 620, 420)
- layer: 1
- }
- }
-
- theme: H.themes.vanilla
- block v_8qxy: VizBlock {
- label: 'Sum of Total Sales and Sum of Total Sales (prev. 1y) by Month Month'
- viz: LineChart {
- dataset: thong_test_pop_ds
- x_axis: VizFieldFull {
- ref: r(thong_test_pop.month)
- transformation: 'datetrunc month'
- format {
- type: 'date'
- pattern: 'LLL yyyy'
- }
- }
- y_axis {
- series {
- field: VizFieldFull {
- ref: r(thong_test_pop.total_sales)
- aggregation: 'sum'
- format {
- type: 'number'
- pattern: 'inherited'
- }
- }
- }
- series {
- field: VizFieldFull {
- label: 'Sum of Total Sales (prev. 1y)'
- ref: r(thong_test_pop.total_sales)
- aggregation: 'sum'
- format {
- type: 'number'
- pattern: 'inherited'
- }
- analytic: PeriodOverPeriodComparison {
- time_dimension: r(thong_test_pop.month)
- display: 'value'
- comparison_period: 'relative to previous 1 year'
- }
- }
- settings {
- line_style: 'dashed'
- }
- }
- }
- settings {
- row_limit: 5000
- x_axis_show_null_datetime: false
- aggregate_awareness {
- enabled: true
- debug_comments: true
- }
- }
- }
- }
- block v_zvas: VizBlock {
- label: 'Month Month, Sum of Total Sales, and Sum of Total Sales (prev. 1m)'
- viz: DataTable {
- dataset: thong_test_pop_ds
- fields: [
- VizFieldFull {
- ref: r(thong_test_pop.month)
- transformation: 'datetrunc month'
- format {
- type: 'date'
- pattern: 'LLL yyyy'
- }
- uname: 'datetrunc_month_month_1'
- },
- VizFieldFull {
- ref: r(thong_test_pop.total_sales)
- aggregation: 'sum'
- format {
- type: 'number'
- pattern: 'inherited'
- }
- },
- VizFieldFull {
- label: 'Sum of Total Sales (prev. 1m)'
- ref: r(thong_test_pop.total_sales)
- aggregation: 'sum'
- format {
- type: 'number'
- pattern: 'inherited'
- }
- analytic: PeriodOverPeriodComparison {
- time_dimension: r(thong_test_pop.month)
- display: 'value'
- comparison_period: 'relative to previous 1 month'
- }
- }
- ]
- settings {
- show_row_number: true
- sorts: [
- SortSetting {
- key: 'datetrunc_month_month_1'
- direction: 'desc'
- }
- ]
- row_limit: 5000
- aggregate_awareness {
- enabled: true
- debug_comments: true
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/team-folders/tri.dvm/datasets/bhx_demo_ecommerce.dataset.aml b/team-folders/tri.dvm/datasets/bhx_demo_ecommerce.dataset.aml
deleted file mode 100644
index 88ce38b9..00000000
--- a/team-folders/tri.dvm/datasets/bhx_demo_ecommerce.dataset.aml
+++ /dev/null
@@ -1,425 +0,0 @@
-Dataset bhx_demo_ecommerce {
- label: '[Tri-Demo] BHX Ecommerce Dataset'
- description: 'BHX Demo Ecommerce Dataset by tridvm'
- data_source_name: 'demodb'
- models: [
- bhx_ecommerce_products,
- bhx_ecommerce_merchants,
- bhx_ecommerce_countries,
- bhx_ecommerce_orders,
- bhx_ecommerce_users,
- bhx_ecommerce_order_items,
- bhx_ecommerce_cities,
- bhx_map_categories,
- bhx_param_model_demo,
- bhx_dim_dates,
- bhx_ecommerce_product_images
- ]
- relationships: [
- relationship(bhx_ecommerce_order_items.order_id > bhx_ecommerce_orders.id, true),
- relationship(bhx_ecommerce_orders.user_id > bhx_ecommerce_users.id, true),
- relationship(bhx_ecommerce_users.city_id > bhx_ecommerce_cities.id, true),
- relationship(bhx_ecommerce_cities.country_code > bhx_ecommerce_countries.code, true),
- relationship(bhx_ecommerce_order_items.product_id > bhx_ecommerce_products.id, true),
- relationship(bhx_ecommerce_products.id - bhx_ecommerce_product_images.product_id, true),
- relationship(bhx_ecommerce_products.merchant_id > bhx_ecommerce_merchants.id, true),
- // relationship(bhx_ecommerce_products_map_categories, true),
- // relationship(bhx_ecommerce_orders_dim_dates, true),
- ]
-
- // view {
- // model bhx_ecommerce_orders {
-
- // }
-
-
-
- // model bhx_ecommerce_users {
- // // field id
- // field users_signed_up_count
- // }
-
- // group transaction_abc {
- // metric total_users
- // }
- // }
-
- dimension cohort_month {
- model: bhx_ecommerce_users
- label: "Cohort Month"
- type: 'date'
- definition: @aql min(bhx_ecommerce_orders.created_at | month()) | dimensionalize(bhx_ecommerce_users.id);;
- }
-
- dimension month_number {
- model: bhx_ecommerce_orders
- label: 'Month Number'
- type: 'number'
- definition: @aql date_diff('month', bhx_ecommerce_users.cohort_month, (bhx_ecommerce_orders.created_at | month())) ;;
- }
-
- dimension cohort_size {
- model: bhx_ecommerce_orders
- label: 'Cohort Size'
- type: 'number'
- definition: @aql count_distinct(order_master.user_id) | exact_grains(order_master.cohort_month) ;;
- }
-
- dimension total_orders_all_time {
- model: bhx_ecommerce_users
- label: 'Total Orders (Users)'
- type: 'number'
- definition: @aql total_orders | dimensionalize(bhx_ecommerce_users.id);;
- }
-
- dimension is_buyer {
- model: bhx_ecommerce_users
- label: 'Is Buyer'
- type: 'truefalse'
- definition: @aql bhx_ecommerce_users.total_orders_all_time > 0;;
- }
-
- dimension is_repeated_buyer {
- model: bhx_ecommerce_users
- label: 'Is Repeated Buyer'
- type: 'truefalse'
- definition: @aql bhx_ecommerce_users.total_orders_all_time > 1;;
- }
-
- dimension product_performance_analysis {
- model: bhx_ecommerce_products
- label: 'Product Performance Analysis'
- type: 'text'
- definition: @aql concat(
- 'https://claude.ai/new?q=write+an_analysis+for+',
- bhx_ecommerce_products.name,
- '.+The+GMV+for+this+product+is+',
- cast(gmv, 'text'),
- '+and+the+AOV+for+this+product+is+',
- cast(aov, 'text'),
- )
- ;;
- }
-
- dimension product_image {
- model: bhx_ecommerce_product_images
- label: 'Product Image'
- type: 'text'
- definition: @aql concat('
') ;;
- }
-
- dimension breakdown_dim {
- label: 'Dynamic Breakdown Dimension'
- description: 'The dimension will be automatically switched among Country, Age Group, Order Status. By default, it will be Country'
- type: 'text'
- model: bhx_ecommerce_orders
- definition: @aql case(
- when: 'Country Names' in param_model_demo.dim_selections
- , then: bhx_ecommerce_countries.name
-
- , when: 'Age Demographic' in param_model_demo.dim_selections
- , then: bhx_ecommerce_users.age_group
-
- , when: 'Order Status' in param_model_demo.dim_selections
- , then: bhx_ecommerce_orders.status
-
- , else: bhx_ecommerce_countries.name
- ) ;;
- }
- metric total_users {
- label: 'Total Users'
- type: 'number'
- hidden: false
- description: "Total number of users"
- definition: @aql count(bhx_ecommerce_users.id) ;;
- format: ""
- }
-
- // metric total_orders {
- // label: "Total Orders"
- // type: "number"
- // hidden: false
- // description: ""
- // definition: @aql count(bhx_ecommerce_orders.id);;
- // }
-
- // metric gmv {
- // label: "GMV - Gross Merchandise Value"
- // type: "number"
- // hidden: false
- // description: "GMV - Gross Merchandise Value: Total value of all orders before discount."
- // definition: @aql bhx_ecommerce_order_items | sum(bhx_ecommerce_order_items.quantity * bhx_ecommerce_products.price);;
- // format: "[\$\$]#,###0"
- // }
-
- // metric total_discount {
- // label: "Total Discount"
- // type: "number"
- // hidden: false
- // description: "Total Discount: Total discount value of all orders."
- // definition: @aql gmv - revenue;;
- // format: "[\$\$]#,###0"
- // }
-
- // metric nmv {
- // label: "NMV - Net Merchandise Value (Post-Discount & Fulfillment)"
- // type: "number"
- // hidden: false
- // description: "Fulfilled order value after discount. Excludes cancelled/refunded orders.\n\nRepresents the total paid value of fulfilled orders, excluding cancelled and refunded orders, and adjusted for any discounts applied.\n\nThis reflects what customers actually paid for successfully completed transactions, and serves as the revenue base before applying commission."
- // definition: @aql (bhx_ecommerce_order_items | sum(bhx_ecommerce_order_items.quantity * bhx_ecommerce_products.price * (1 - bhx_ecommerce_orders.discount))) | where(bhx_ecommerce_orders.status not in ['cancelled', 'refunded']);;
- // format: "[\$\$]#,###0"
- // }
-
- // metric revenue {
- // label: "Total Revenue (Platform)"
- // type: "number"
- // hidden: false
- // description: "Represents the total revenue earned by the platform based on fulfilled order value (NMV), multiplied by a commission rate.\nAs of May 2025, this demo assumes a 50% commission margin.\nFormula: revenue = NMV Γ revenue_commission"
- // definition: @aql nmv * revenue_commission;;
- // format: "[\$\$]#,###0"
- // }
-
- // metric aov {
- // label: "AOV - Average Order Value"
- // type: "number"
- // description: "AOV - Average Order Value: Average value per order (GMV / number of orders)."
- // hidden: false
- // definition: @aql gmv / total_orders;;
- // format: "[\$\$]#,###0"
- // }
-
- // metric total_orders_across_all {
- // label: "Total Orders Across All"
- // type: "number"
- // hidden: false
- // description: ""
- // definition: @aql total_orders | of_all(bhx_ecommerce_orders);;
- // }
-
- // metric percent_of_total {
- // label: "Percent Of Total Orders"
- // type: "number"
- // hidden: false
- // description: ""
- // definition: @aql total_orders * 1.0 / total_orders_across_all;;
- // format: "#,###0.00%"
- // }
-
- // metric total_delivered_orders {
- // label: "Total Delivered Orders"
- // type: "number"
- // hidden: false
- // description: ""
- // definition: @aql total_orders | where(bhx_ecommerce_orders.status is 'delivered');;
- // }
-
- // metric total_refunded_orders {
- // label: "Total Refunded Orders"
- // type: "number"
- // hidden: false
- // description: ""
- // definition: @aql total_orders | where(bhx_ecommerce_orders.status is 'refunded');;
- // }
-
- // metric total_cancelled_orders {
- // label: "Total Cancelled Orders"
- // type: "number"
- // hidden: false
- // description: ""
- // definition: @aql total_orders | where(bhx_ecommerce_orders.status is 'cancelled');;
- // }
-
- // metric cancelled_orders_ratio {
- // label: "Cancelled Order Ratio"
- // type: "number"
- // hidden: false
- // description: "Percentage of orders that were cancelled - Total number of cancelled orders/Total numbers of orders"
- // definition: @aql total_cancelled_orders / total_orders;;
- // format: "#,###0.00%"
- // }
-
- // metric cancelled_value {
- // label: "Cancelled Value"
- // type: "number"
- // hidden: false
- // description: "Total Value of Cancelled Orders"
- // definition: @aql gmv | where(bhx_ecommerce_orders.status is 'cancelled');;
- // format: "[\$\$]#,###0"
- // }
-
- // metric cancelled_value_ratio {
- // label: "Cancelled Value Ratio"
- // type: "number"
- // hidden: false
- // description: "Percentage of order values that were cancelled - Total value of cancelled orders/Total revenue"
- // definition: @aql cancelled_value / gmv;;
- // format: "#,###0.00%"
- // }
-
- // metric delivered_value {
- // label: "Delivered Value"
- // type: "number"
- // hidden: false
- // description: "Total Value of Delivered Orders"
- // definition: @aql gmv | where(bhx_ecommerce_orders.status is 'delivered');;
- // format: "[\$\$]#,###0"
- // }
-
- // metric refunded_value {
- // label: "Refunded Value"
- // type: "number"
- // hidden: false
- // description: "Total Value of Refunded Orders"
- // definition: @aql gmv | where(bhx_ecommerce_orders.status is 'refunded');;
- // format: "[\$\$]#,###0"
- // }
-
-
- // metric retention {
- // label: 'Cohort Retention'
- // type: 'number'
- // definition: @aql (total_users * 1.0) / (total_users | of_all(bhx_ecommerce_orders.month_number)) ;;
- // format: "#,###0.00%"
- // }
-
- // metric total_buyers {
- // label: "Total Buyers"
- // type: "number"
- // hidden: false
- // description: ""
- // definition: @aql count(bhx_ecommerce_users.id) | where(bhx_ecommerce_users.is_buyer is true);;
- // }
-
- // metric total_repeated_buyers {
- // label: "Total Repeated Buyers"
- // type: "number"
- // hidden: false
- // description: ""
- // definition: @aql count(bhx_ecommerce_users.id) | where(bhx_ecommerce_users.is_repeated_buyer is true);;
- // }
-
-
- // metric running_total {
- // label: "Running Total Orders"
- // type: "number"
- // hidden: false
- // description: ""
- // definition: @aql running_total(total_orders, bhx_ecommerce_orders.created_at | year());;
- // }
-
- // metric dynamic_metric {
- // label: 'Dynamic Metric (no format)'
- // type: 'number'
- // description: 'This dynamic metric doesnt take the format into considering, theyre all in their raw form'
- // definition: @aql
- // case(
-
- // when: 'total users' in param_model_demo.metric_selections
- // , then: bhx_ecommerce_users.total_users
-
- // , when: 'total orders' in param_model_demo.metric_selections
- // , then: total_orders
-
- // , when: 'platform revenue' in param_model_demo.metric_selections
- // , then: revenue
-
- // , when: 'GMV' in param_model_demo.metric_selections
- // , then: gmv
-
- // , when: 'NMV' in param_model_demo.metric_selections
- // , then: nmv
-
- // , when: 'AOV' in param_model_demo.metric_selections
- // , then: aov
-
- // )
- // ;;
- // }
-
- // metric dynamic_metric_currency {
- // label: 'Dynamic Metric (Currency)'
- // type: 'number'
- // description: 'Only contains list of metrics with currency (Revenue, GMV, NMV, AOV)'
- // definition: @aql
- // case(
- // when: 'platform revenue' in param_model_demo.metric_selections_currency
- // , then: revenue
-
- // , when: 'GMV' in param_model_demo.metric_selections_currency
- // , then: gmv
-
- // , when: 'NMV' in param_model_demo.metric_selections_currency
- // , then: nmv
-
- // , when: 'AOV' in param_model_demo.metric_selections_currency
- // , then: aov
-
- // )
- // ;;
- // format: "[\$\$]#,###0"
- // }
-
- // metric revenue_commission {
- // label: "Revenue Commission Rate (Demo from May 2025)"
- // type: "number"
- // hidden: false
- // description: "Commission margin (%) our platform earns on NMV transactions. Set to 50% as of May 2025 for demonstration purposes. Used in revenue calculation: revenue = NMV Γ commission_rate."
- // definition: @aql 0.5;;
- // format: "#,###%"
- // }
-
- // metric running_total_orders {
- // label: "Running Total Orders"
- // type: "number"
- // hidden: false
- // description: "Cumulative total of orders over time, aggregated by year to show growth trends."
- // definition: @aql running_total(total_orders, bhx_ecommerce_orders.created_at | year());;
- // }
- // metric abc {
- // label: "abc"
- // type: "number"
- // hidden: false
- // description: ""
- // definition: @aql bhx_ecommerce_products.profit | running_total();;
- // }
- // metric avxb {
- // label: "Avxb"
- // type: "number"
- // description: ""
- // definition: @aql bhx_ecommerce_orders.delivered_orders_count - bhx_ecommerce_orders.cancelled_orders_count + 10044;;
- // }
- // metric aaa {
- // label: "A"
- // type: "number"
- // description: ""
- // definition: @aql 1;;
- // }
- // metric rt {
- // label: "A"
- // type: "number"
- // description: ""
- // definition: @aql 1;;
- // }
- // metric b {
- // label: "undefined"
- // type: "number"
- // description: ""
- // definition: @aql 11;;
- // }
- // metric ad {
- // label: "1"
- // type: "number"
- // description: ""
- // definition: @aql 1;;
- // }
- // metric metric_c8e74d8 {
- // label: "Count of Products Category Id"
- // type: "number"
- // hidden: false
- // description: ""
- // definition: @aql count(bhx_ecommerce_products.category_id);;
- // }
-
-
- owner: 'tri.dvm@holistics.io'
-}
\ No newline at end of file
diff --git a/team-folders/tri.dvm/models/derived-models/bhx_dim_dates.model.aml b/team-folders/tri.dvm/models/derived-models/bhx_dim_dates.model.aml
deleted file mode 100644
index 391fa3e3..00000000
--- a/team-folders/tri.dvm/models/derived-models/bhx_dim_dates.model.aml
+++ /dev/null
@@ -1,125 +0,0 @@
-Model bhx_dim_dates {
- type: 'query'
- label: 'Dim Dates'
- description: ''
- data_source_name: 'demodb'
- dimension date_key {
- label: 'Date Key'
- type: 'datetime'
- hidden: false
- definition: @sql {{ #SOURCE.date_key }};;
- }
- dimension day_of_week {
- label: 'Day Of Week'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.day_of_week }};;
- }
- dimension day_of_month {
- label: 'Day Of Month'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.day_of_month }};;
- }
- dimension day_of_year {
- label: 'Day Of Year'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.day_of_year }};;
- }
- dimension weekday_name {
- label: 'Weekday Name'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.weekday_name }};;
- }
- dimension weekday_name_abbr {
- label: 'Weekday Name Abbr.'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.weekday_name_abbr }};;
- }
- dimension week_number {
- label: 'Week Number'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.week_number }};;
- }
- dimension week_number_iso {
- label: 'Week Number ISO'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.week_number_iso }};;
- }
- dimension year_week_iso {
- label: 'Year Week ISO'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.year_week_iso }};;
- }
- dimension month_name {
- label: 'Month Name'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.month_name }};;
- }
- dimension month_name_abbr {
- label: 'Month Name Abbr.'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.month_name_abbr }};;
- }
- dimension month_number {
- label: 'Month Number'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.month_number }};;
- }
- dimension year_month {
- label: 'Year Month'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.year_month }};;
- }
- dimension quarter {
- label: 'Quarter'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.quarter }};;
- }
- dimension year_quarter {
- label: 'Year Quarter'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.year_quarter }};;
- }
- dimension year {
- label: 'Year'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.year }};;
- }
-
- owner: 'ha.pham+demo4@holistics.io'
- query: @sql
- SELECT
- date_key
- , to_char(date_key, 'ID') as day_of_week
- , to_char(date_key, 'DD') as day_of_month
- , to_char(date_key, 'DDD') as day_of_year
- , to_char(date_key, 'Day') as weekday_name
- , to_char(date_key, 'Dy') as weekday_name_abbr
- , to_char(date_key, 'WW') as week_number
- , to_char(date_key, 'IW') as week_number_iso
- , to_char(date_key, 'YYYYIW') as year_week_iso
- , to_char(date_key, 'Month') as month_name
- , to_char(date_key, 'Mon') as month_name_abbr
- , to_char(date_key, 'MM') as month_number
- , to_char(date_key, 'YYYYMM') as year_month
- , to_char(date_key, 'Q') as quarter
- , to_char(date_key, 'YYYY') || 'Q' || to_char(date_key, 'Q') as year_quarter
- , to_char(date_key, 'YYYY') as year
- FROM generate_series ('2013-01-01' :: date, current_date ,'1 day' :: interval) date_key;;
- models: [
- ]
-}
\ No newline at end of file
diff --git a/team-folders/tri.dvm/models/derived-models/bhx_ecommerce_product_images.model.aml b/team-folders/tri.dvm/models/derived-models/bhx_ecommerce_product_images.model.aml
deleted file mode 100644
index 24b67782..00000000
--- a/team-folders/tri.dvm/models/derived-models/bhx_ecommerce_product_images.model.aml
+++ /dev/null
@@ -1,26 +0,0 @@
-Model bhx_ecommerce_product_images {
- type: 'table'
- label: 'Product Images'
- description: ''
- data_source_name: 'demodb'
- dimension product_id {
- label: 'Product Id'
- type: 'number'
- definition: @sql {{ #SOURCE.product_id }};;
- }
- dimension product_name {
- label: 'Product Name'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.product_name }};;
- }
- dimension url {
- label: 'Url'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.url }};;
- }
-
- owner: 'triet.lq@holistics.io'
- table_name: '"ecommerce"."product_images"'
-}
diff --git a/team-folders/tri.dvm/models/derived-models/bhx_map_categories.model.aml b/team-folders/tri.dvm/models/derived-models/bhx_map_categories.model.aml
deleted file mode 100644
index e75289e7..00000000
--- a/team-folders/tri.dvm/models/derived-models/bhx_map_categories.model.aml
+++ /dev/null
@@ -1,41 +0,0 @@
-Model bhx_map_categories {
- type: 'query'
- label: 'Map Categories'
- description: ''
- data_source_name: 'demodb'
- owner: 'tri.dvm@holistics.io'
-
- models: [
- ecommerce_categories
- ]
-
- query: @sql
- select
- cat.id as category_id
- , cat.name as category
- , pcat.name as parent_category
- from {{#ecommerce_categories cat}}
- left join {{#ecommerce_categories pcat}} on cat.parent_id = pcat.id
- where cat.parent_id is not null;;
-
- dimension category_id {
- label: 'Category Id'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.category_id }};;
- }
- dimension category {
- label: 'Category'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.category }};;
- }
- dimension parent_category {
- label: 'Parent Category'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.parent_category }};;
- }
-
-
-}
\ No newline at end of file
diff --git a/team-folders/tri.dvm/models/others/bhx_param_model_demo.model.aml b/team-folders/tri.dvm/models/others/bhx_param_model_demo.model.aml
deleted file mode 100644
index 349a7aab..00000000
--- a/team-folders/tri.dvm/models/others/bhx_param_model_demo.model.aml
+++ /dev/null
@@ -1,30 +0,0 @@
-Model bhx_param_model_demo {
- type: 'query'
- label: 'Param Model'
- description: ''
- data_source_name: 'demodb'
- owner: 'tri.dvm@holistics.io'
-
- query: @sql select 1;;
- models: [
- ]
-
- param metric_selections {
- label: 'metric selections'
- type: 'text'
- allowed_values: ['total users','total orders','platform revenue', 'GMV', 'NMV', 'AOV']
- }
-
- param metric_selections_currency {
- label: 'metric selections (currency)'
- type: 'text'
- allowed_values: ['platform revenue', 'GMV', 'NMV', 'AOV']
- }
-
-
- param dim_selections {
- label: 'dim selections'
- type: 'text'
- allowed_values: ['Age Demographic','Product Categories','Country Names','Order Status']
- }
-}
diff --git a/team-folders/tri.dvm/models/table-models/bhx_ecommerce_cities.model.aml b/team-folders/tri.dvm/models/table-models/bhx_ecommerce_cities.model.aml
deleted file mode 100644
index 13a74994..00000000
--- a/team-folders/tri.dvm/models/table-models/bhx_ecommerce_cities.model.aml
+++ /dev/null
@@ -1,35 +0,0 @@
-Model bhx_ecommerce_cities {
- type: 'table'
- label: 'Cities'
- description: ''
- data_source_name: 'demodb'
- owner: 'tri.dvm@holistics.io'
- table_name: '"ecommerce"."cities"'
-
- dimension id {
- label: 'Id'
- type: 'number'
- hidden: true
- definition: @sql {{ #SOURCE.id }};;
- }
- dimension name {
- label: 'City Name'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.name }};;
- }
- dimension country_code {
- label: 'Country Code'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.country_code }};;
- }
-
- dimension map_search {
- label: 'Map Search'
- type: 'text'
- definition: @aql concat(
- 'https://www.google.com/maps/search/',ecommerce_cities.name
- );;
- }
-}
\ No newline at end of file
diff --git a/team-folders/tri.dvm/models/table-models/bhx_ecommerce_countries.model.aml b/team-folders/tri.dvm/models/table-models/bhx_ecommerce_countries.model.aml
deleted file mode 100644
index 6bce4af3..00000000
--- a/team-folders/tri.dvm/models/table-models/bhx_ecommerce_countries.model.aml
+++ /dev/null
@@ -1,58 +0,0 @@
-Model bhx_ecommerce_countries {
- type: 'table'
- label: 'Countries'
- description: ''
- data_source_name: 'demodb'
- table_name: '"ecommerce"."countries"'
- owner: 'tri.dvm@holistics.io'
-
- param dynamic_metric {
- label: 'Dynamic Metric'
- type: 'text'
- description: 'Dynamic metric values'
- allowed_values: ['Total Users', 'Total Orders', 'Total Revenue']
- }
-
- dimension code {
- label: 'Country Code'
- type: 'text'
- }
- dimension name {
- label: 'Country Name'
- type: 'text'
- }
- dimension continent_name {
- label: 'Continent Name'
- type: 'text'
- }
-
- dimension origin {
- label: "Origin"
- type: "text"
- definition: @sql case
- when {{ name }} = 'India' then 'Singapore'
- when {{ name }} = 'South Korea' then 'Germany'
- when {{ name }} = 'United States' then 'Australia'
- when {{ name }} = 'Australia' then 'Indonesia'
- when {{ name }} = 'France' then 'Indonesia'
- when {{ name }} = 'South Korea' then 'Germany'
- when {{ name }} = 'Indonesia' then 'South Korea'
- when {{ name }} = 'Singapore' then 'India'
- when {{ name }} = 'Germany' then 'China'
- when {{ name }} = 'United Kingdom' then 'Vietnam'
- when {{ name }} = 'Vietnam' then 'United Sates'
-end;;
- description: "Grouping of the age demographics by age group\nUnder 20\n21-30\n31-40\nAbove 40"
- }
-
- // dimension open_ai_search {
- // label: 'Open AI Search'
- // type: 'text'
- // definition: @aql concat(
- // 'https://chat.openai.com/chat?q=give+me+pictures+of+and+tell+me+what+special+about+',ecommerce_countries.name
- // );;
- // }
-}
-
-
-
diff --git a/team-folders/tri.dvm/models/table-models/bhx_ecommerce_merchants.model.aml b/team-folders/tri.dvm/models/table-models/bhx_ecommerce_merchants.model.aml
deleted file mode 100644
index d903c046..00000000
--- a/team-folders/tri.dvm/models/table-models/bhx_ecommerce_merchants.model.aml
+++ /dev/null
@@ -1,39 +0,0 @@
-Model bhx_ecommerce_merchants {
- type: 'table'
- label: 'Merchants'
- description: ''
- data_source_name: 'demodb'
- owner: 'tri.dvm@holistics.io'
- table_name: '"ecommerce"."merchants"'
-
- dimension id {
- label: 'Id'
- type: 'number'
- hidden: true
- definition: @sql {{ #SOURCE.id }};;
- }
- dimension name {
- label: 'Name'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.name }};;
- }
- dimension city_id {
- label: 'City Id'
- type: 'number'
- hidden: true
- definition: @sql {{ #SOURCE.city_id }};;
- }
- dimension admin_id {
- label: 'Admin Id'
- type: 'number'
- hidden: true
- definition: @sql {{ #SOURCE.admin_id }};;
- }
- dimension created_at {
- label: 'Created At'
- type: 'date'
- hidden: false
- definition: @sql {{ #SOURCE.created_at }};;
- }
-}
\ No newline at end of file
diff --git a/team-folders/tri.dvm/models/table-models/bhx_ecommerce_order_items.model.aml b/team-folders/tri.dvm/models/table-models/bhx_ecommerce_order_items.model.aml
deleted file mode 100644
index 610a8772..00000000
--- a/team-folders/tri.dvm/models/table-models/bhx_ecommerce_order_items.model.aml
+++ /dev/null
@@ -1,27 +0,0 @@
-Model bhx_ecommerce_order_items {
- type: 'table'
- label: 'Order Items'
- description: ''
- data_source_name: 'demodb'
- owner: 'tri.dvm@holistics.io'
- table_name: '"ecommerce"."order_items"'
-
- dimension order_id {
- label: 'Order Id'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.order_id }};;
- }
- dimension product_id {
- label: 'Product Id'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.product_id }};;
- }
- dimension quantity {
- label: 'Quantity'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.quantity }};;
- }
-}
\ No newline at end of file
diff --git a/team-folders/tri.dvm/models/table-models/bhx_ecommerce_orders.model.aml b/team-folders/tri.dvm/models/table-models/bhx_ecommerce_orders.model.aml
deleted file mode 100644
index 3f8c5b68..00000000
--- a/team-folders/tri.dvm/models/table-models/bhx_ecommerce_orders.model.aml
+++ /dev/null
@@ -1,124 +0,0 @@
-Model bhx_ecommerce_orders {
- type: 'table'
- label: 'Orders'
- description: ''
- data_source_name: "demodb"
- table_name: '"ecommerce"."orders"'
- owner: 'tri.dvm@holistics.io'
-
-
- dimension id {
- label: 'Id'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.id }};;
- }
- dimension status {
- label: 'Status'
- type: 'text'
- definition: @sql {{ #SOURCE.status }};;
- description: "Delivered / Refunded / Canceled"
- }
- dimension created_at {
- label: 'Created At'
- type: 'datetime'
- hidden: false
- definition: @sql {{ #SOURCE.created_at }};;
- }
- dimension user_id {
- label: 'User Id'
- type: 'number'
- hidden: true
- definition: @sql {{ #SOURCE.user_id }};;
- }
- dimension discount {
- label: 'Discount'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.discount }};;
- }
- dimension delivery_attempts {
- label: 'Delivery Attempts'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.delivery_attempts }};;
- }
- dimension created_date {
- label: 'Created Date'
- type: 'date'
- definition: @sql {{ #SOURCE.created_at }}::date;;
- description: "Date-stamp of the order when it was created"
- }
- dimension order_month {
- label: "Order Month"
- type: "text"
- definition: @sql LPAD((DATE_PART('month', {{ created_at }}))::text, 2, '0') || ' ' || TO_CHAR({{ created_at }}, 'Month');;
- description: "Month created of order"
- }
- // measure cumm_orders {
- // label: 'Cumulative Orders'
- // type: 'number'
- // definition: @aql running_total(ecommerce_orders.total_order, ecommerce_orders.order_month) ;;
- // description: "The cumulative total of orders."
- // aggregation_type: "custom"
- // }
- // measure delivered_orders_count {
- // label: "Delivered Orders Count"
- // type: "number"
- // definition: @sql count( case when {{#SOURCE.status}} = 'delivered' then 1 else null end);;
- // description: "The total number of orders we delivered this period."
- // aggregation_type: "custom"
- // }
- // measure cancelled_orders_count {
- // label: 'Cancelled Orders Count'
- // type: 'number'
- // definition: @sql count( case when {{#SOURCE.status}} = 'cancelled' then 1 else null end);;
- // description: "The total number of orders we canceled this period."
- // aggregation_type: "custom"
- // }
- // measure refunded_orders_count {
- // label: 'Refunded Orders Count'
- // type: 'number'
- // definition: @sql count(distinct case when {{status}} = 'refunded' then {{id}} else null end);;
- // description: "The total number of orders we refunded this period."
- // aggregation_type: "custom"
- // }
- // measure total_order {
- // label: "Total Orders Count"
- // type: "number"
- // definition: @sql {{ id }};;
- // description: "The total number of orders"
- // aggregation_type: "count"
- // }
- // measure total_orders_count {
- // label: "Total Orders Count"
- // type: "number"
- // definition: @sql {{ id }};;
- // aggregation_type: "count"
- // }
-
- // measure first_order_date {
- // label: "First Order Date"
- // type: "datetime"
- // definition: @sql min({{ created_at }}) ;;
- // }
-
- // measure days_since_last_order {
- // label: "Days Since Last Order"
- // type: "number"
- // definition: @sql DATE_PART('Day', CURRENT_TIMESTAMP - max({{ created_at }}));;
- // aggregation_type: "custom"
- // }
-
- // measure orders_2023 {
- // label: '2023'
- // type: "number"
- // definition: @aql count(ecommerce_orders.id) | where(ecommerce_orders.created_at matches @2023) ;;
- // }
-
- // measure orders_2024 {
- // label: '2024'
- // type: "number"
- // definition: @aql count(ecommerce_orders.id) | where(ecommerce_orders.created_at matches @2024) ;;
- // }
-}
\ No newline at end of file
diff --git a/team-folders/tri.dvm/models/table-models/bhx_ecommerce_products.model.aml b/team-folders/tri.dvm/models/table-models/bhx_ecommerce_products.model.aml
deleted file mode 100644
index b9bd6a30..00000000
--- a/team-folders/tri.dvm/models/table-models/bhx_ecommerce_products.model.aml
+++ /dev/null
@@ -1,85 +0,0 @@
-Model bhx_ecommerce_products {
- type: 'table'
- label: 'Products'
- description: ''
- data_source_name: 'demodb'
- owner: 'tri.dvm@holistics.io'
- table_name: '\"ecommerce\".\"products\"'
-
- dimension id {
- label: 'Product ID'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.id }};;
- }
- dimension category_id {
- label: 'Category Id'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.category_id }};;
- }
- dimension name {
- label: 'Product Name'
- type: 'text'
- definition: @sql {{ #SOURCE.name }};;
- description: "Name of the product"
- }
- dimension merchant_id {
- label: 'Merchant Id'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.merchant_id }};;
- }
- dimension price {
- label: 'Price'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.price }};;
- }
- dimension created_at {
- label: 'Created At'
- type: 'datetime'
- hidden: false
- definition: @sql {{ #SOURCE.created_at }};;
- }
- dimension product_google_link {
- label: "Product (image)"
- type: "text"
- definition: @sql CONCAT('
',{{ name }},' ');;
- }
-
- dimension cost {
- label: 'Cost'
- type: 'number'
- definition: @sql ROUND({{price}}*0.3) ;;
- }
-
- dimension product_merchant {
- label: 'Product Name (from Merchant)'
- type: 'text'
- description: "different merchants can list same product name => this fields show the Product name listed by which specific merchant"
- hidden: false
- definition: @sql {{ #SOURCE.product_merchant }} ;;
- }
-
- measure total_cost {
- label: 'Total cost'
- type: 'number'
- definition: @aql coalesce(sum(bhx_ecommerce_products.cost), 0);;
- format: "[$$]#,###0.0"
- }
-
- measure total_price {
- label: 'Total price'
- type: 'number'
- definition: @aql coalesce(sum(bhx_ecommerce_products.price), 0);;
- format: "[$$]#,###0.0"
- }
-
- measure profit {
- label: 'Profit'
- type: 'number'
- definition: @aql bhx_ecommerce_products.total_price - bhx_ecommerce_products.total_cost;;
- format: "[$$]#,###0.0"
- }
-}
\ No newline at end of file
diff --git a/team-folders/tri.dvm/models/table-models/bhx_ecommerce_user_agg_stats.model.aml b/team-folders/tri.dvm/models/table-models/bhx_ecommerce_user_agg_stats.model.aml
deleted file mode 100644
index 43ebabc8..00000000
--- a/team-folders/tri.dvm/models/table-models/bhx_ecommerce_user_agg_stats.model.aml
+++ /dev/null
@@ -1,69 +0,0 @@
-Model bhx_amql_demo_ecommerce_users {
- type: 'table'
- label: 'Users'
- description: ''
- data_source_name: 'demodb'
- owner: 'tri.dvm@holistics.io'
- table_name: '"amql_demo_ecommerce"."users"'
-
- dimension id {
- label: 'Id'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.id }};;
- }
- dimension sign_up_date {
- label: 'Sign Up Date'
- type: 'date'
- hidden: false
- definition: @sql {{ #SOURCE.sign_up_date }};;
- }
- dimension sign_up_at {
- label: 'Sign Up At'
- type: 'datetime'
- hidden: false
- definition: @sql {{ #SOURCE.sign_up_at }};;
- }
- dimension first_name {
- label: 'First Name'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.first_name }};;
- }
- dimension last_name {
- label: 'Last Name'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.last_name }};;
- }
- dimension email {
- label: 'Email'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.email }};;
- }
- dimension birth_date {
- label: 'Birth Date'
- type: 'date'
- hidden: false
- definition: @sql {{ #SOURCE.birth_date }};;
- }
- dimension gender {
- label: 'Gender'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.gender }};;
- }
- dimension city_id {
- label: 'City Id'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.city_id }};;
- }
- dimension full_name {
- label: 'Full Name'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.full_name }};;
- }
-}
diff --git a/team-folders/tri.dvm/models/table-models/bhx_ecommerce_users.model.aml b/team-folders/tri.dvm/models/table-models/bhx_ecommerce_users.model.aml
deleted file mode 100644
index e431a6f7..00000000
--- a/team-folders/tri.dvm/models/table-models/bhx_ecommerce_users.model.aml
+++ /dev/null
@@ -1,191 +0,0 @@
-Model bhx_ecommerce_users {
- type: 'table'
- label: "Users"
- description: "Contains information about users in the ecommerce platform "
- data_source_name: "demodb"
- owner: "tri.dvm@holistics.io"
- table_name: '\"ecommerce\".\"users\"'
-
- dimension id {
- label: 'Id'
- type: 'number'
- hidden: false
- definition: @sql {{ #SOURCE.id }};;
- description: "this is ID"
- }
-
-
- dimension sign_up_date {
- label: "Sign Up Date"
- type: "date"
- definition: @sql {{ #SOURCE.sign_up_date }};;
- description: "This is signup date"
- }
-
- dimension email_user {
- label: 'Email User'
- type: 'text'
- definition: @aql concat(
- 'mailto:', bhx_ecommerce_users.email
- );;
- }
-
- dimension phone {
- label: 'Call User'
- type: 'text'
- definition: @aql concat(
- 'tel:', '5126329032'
- );;
- }
-
- dimension visit_time {
- label: 'Visit Time'
- type: 'text'
- definition: @sql to_char({{ sign_up_date }}, 'Month') ;;
- }
-
- dimension linkedin_search {
- label: 'linkedin_search'
- type: 'text'
- definition: @aql concat(
- 'https://www.linkedin.com/search/results/all/?keywords=',bhx_ecommerce_countries.full_name
- );;
- }
-
- dimension sign_up_at {
- label: 'Sign Up At'
- type: 'datetime'
- hidden: false
- definition: @sql {{ #SOURCE.sign_up_at }};;
- }
- dimension first_name {
- label: "First Name"
- type: "text"
- definition: @sql {{ #SOURCE.first_name }};;
- description: "User First Name"
- }
- dimension last_name {
- label: 'Last Name'
- type: 'text'
- definition: @sql {{ #SOURCE.last_name }};;
- description: "User Last Name"
- }
- dimension email {
- label: "Email"
- type: "text"
- hidden: true
- definition: @sql {{ #SOURCE.email }};;
- description: "Email address"
- }
-
-
- dimension email_pii {
- label: 'Email'
- type: 'text'
- definition: @aml
- case (
- when:
- in(1, H.current_user.pii_access),
- then: bhx_ecommerce_users.email,
- else: '(redacted)'
- );;
- }
-
-
-
- dimension birth_date {
- label: "Birth Date"
- type: "date"
- hidden: true
- definition: @sql {{ #SOURCE.birth_date }};;
- description: "user birthday"
- }
-
- dimension gender {
- label: 'Gender'
- type: 'text'
- description: 'Available values: Female, Male'
- hidden: false
- definition: @sql case
- when {{#SOURCE.gender}} = 'f' then 'Female'
- when {{#SOURCE.gender}} = 'm' then 'Male'
- else null
-end;;
-
- }
- dimension city_id {
- label: 'City Id'
- type: 'number'
- hidden: true
- definition: @sql {{ #SOURCE.city_id }};;
- }
-
- dimension full_name {
- label: 'Full Name'
- type: 'text'
- hidden: false
- definition: @sql {{ #SOURCE.full_name }};;
- }
-
-
- // Custom fields
- dimension age {
- label: 'Age'
- type: 'number'
- hidden: false
- definition: @sql date_part('year', current_date) - date_part('year', {{ birth_date }});;
- }
- dimension age_group {
- label: "Age Demographic"
- type: "text"
- definition: @sql
- case
- when {{ age }} < 20 then '1. Under 20'
- when {{ age }} >= 20 and {{ age }} < 30 then '2. From 20 to 29'
- when {{ age }} >= 30 and {{ age }} < 40 then '3. From 30 to 39'
- when {{ age }} >= 40 and {{ age }} <540 then '3. From 40 to 49'
- when {{ age }} >= 50 then '5. 50 and up'
-end;;
- description: "Grouping of the age demographics by age group\nUnder 20\n21-30\n31-40\nAbove 40"
- }
-
-
- dimension date_datum {
- label: "Date Datum"
- type: "date"
- definition: @sql case
- when {{ id }} is not null then to_date('2022-11-25', 'YYYY-MM-DD')
- else to_date('2022-11-25', 'YYYY-MM-DD')
-end;;
- format: "LLL dd yyyy"
- }
-
-
- measure users_signed_up_count {
- label: 'Users Signed Up'
- type: 'number'
- definition: @sql {{ id }};;
- aggregation_type: 'count'
- }
- measure total_users {
- label: "Total Users"
- type: "number"
- definition: @sql count({{ id }});;
- hidden: false
- }
-
- measure total_users_aql {
- label: "Total Users (AQL)"
- type: "number"
- definition: @aql count(bhx_ecommerce_users.id);;
- hidden: false
- }
-
- measure date_datum_2 {
- label: "Date Datum 2"
- type: "date"
- definition: @sql cast('2022-11-25' as date);;
- aggregation_type: "custom"
- format: "LLL dd yyyy"
- }
-}
\ No newline at end of file
diff --git a/team-folders/tri.dvm/themes/untitled.aml b/team-folders/tri.dvm/themes/untitled.aml
deleted file mode 100644
index 497b66ca..00000000
--- a/team-folders/tri.dvm/themes/untitled.aml
+++ /dev/null
@@ -1,96 +0,0 @@
-PageTheme abc {
- title: 'Holistics Emerald Vibrant'
-background {
- bg_color: "#ffaa00"
- }
-canvas {
- border {
- border_width: 1
-border_radius: 16
-border_color: '#e5e7eb'
-border_style: 'solid'
- }
-background {
- bg_color: '#ffffff'
- }
-shadow: 'sm'
- }
-block {
- label {
- font_family: 'Inter'
-font_color: '#191d25'
-font_size: 40
-font_weight: 'semibold'
- }
-text {
- font_family: 'Inter'
-font_color: '#232334'
-font_size: 18
-font_weight: 'normal'
- }
-border {
- border_width: 1
-border_radius: 16
-border_color: '#e5e7eb'
-border_style: 'solid'
- }
-background {
- bg_color: '#f2f8fa'
- }
-padding: 16
-shadow: 'sm'
- }
-custom_css: @css @import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap")
-/* Vibrant page background, gradient header style */
-.vibrant-page-bg { background: rgba(4,120,87,0.10); }
-.brand-header {
- display: flex;
- justify-content: space-between;
- align-items: center;
- width:100%; height:100%;
- background_color: "#ffaa00";
- background_image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100%25' height='100%25' viewBox='0 0 1600 800'%3E%3Cg %3E%3Cpath fill='%23ffb100' d='M486 705.8c-109.3-21.8-223.4-32.2-335.3-19.4C99.5 692.1 49 703 0 719.8V800h843.8c-115.9-33.2-230.8-68.1-347.6-92.2C492.8 707.1 489.4 706.5 486 705.8z'/%3E%3Cpath fill='%23ffb800' d='M1600 0H0v719.8c49-16.8 99.5-27.8 150.7-33.5c111.9-12.7 226-2.4 335.3 19.4c3.4 0.7 6.8 1.4 10.2 2c116.8 24 231.7 59 347.6 92.2H1600V0z'/%3E%3Cpath fill='%23ffbe00' d='M478.4 581c3.2 0.8 6.4 1.7 9.5 2.5c196.2 52.5 388.7 133.5 593.5 176.6c174.2 36.6 349.5 29.2 518.6-10.2V0H0v574.9c52.3-17.6 106.5-27.7 161.1-30.9C268.4 537.4 375.7 554.2 478.4 581z'/%3E%3Cpath fill='%23ffc500' d='M0 0v429.4c55.6-18.4 113.5-27.3 171.4-27.7c102.8-0.8 203.2 22.7 299.3 54.5c3 1 5.9 2 8.9 3c183.6 62 365.7 146.1 562.4 192.1c186.7 43.7 376.3 34.4 557.9-12.6V0H0z'/%3E%3Cpath fill='%23ffcc00' d='M181.8 259.4c98.2 6 191.9 35.2 281.3 72.1c2.8 1.1 5.5 2.3 8.3 3.4c171 71.6 342.7 158.5 531.3 207.7c198.8 51.8 403.4 40.8 597.3-14.8V0H0v283.2C59 263.6 120.6 255.7 181.8 259.4z'/%3E%3Cpath fill='%23ffd914' d='M1600 0H0v136.3c62.3-20.9 127.7-27.5 192.2-19.2c93.6 12.1 180.5 47.7 263.3 89.6c2.6 1.3 5.1 2.6 7.7 3.9c158.4 81.1 319.7 170.9 500.3 223.2c210.5 61 430.8 49 636.6-16.6V0z'/%3E%3Cpath fill='%23ffe529' d='M454.9 86.3C600.7 177 751.6 269.3 924.1 325c208.6 67.4 431.3 60.8 637.9-5.3c12.8-4.1 25.4-8.4 38.1-12.9V0H288.1c56 21.3 108.7 50.6 159.7 82C450.2 83.4 452.5 84.9 454.9 86.3z'/%3E%3Cpath fill='%23ffef3d' d='M1600 0H498c118.1 85.8 243.5 164.5 386.8 216.2c191.8 69.2 400 74.7 595 21.1c40.8-11.2 81.1-25.2 120.3-41.7V0z'/%3E%3Cpath fill='%23fff852' d='M1397.5 154.8c47.2-10.6 93.6-25.3 138.6-43.8c21.7-8.9 43-18.8 63.9-29.5V0H643.4c62.9 41.7 129.7 78.2 202.1 107.4C1020.4 178.1 1214.2 196.1 1397.5 154.8z'/%3E%3Cpath fill='%23ffff66' d='M1315.3 72.4c75.3-12.6 148.9-37.1 216.8-72.4h-723C966.8 71 1144.7 101 1315.3 72.4z'/%3E%3C/g%3E%3C/svg%3E");
- background_attachment: fixed;
- background_size: cover;
-}
-.brand-header-logo { min-height:64px; max-height:72px; }
-.brand-header-tagline { color: #fff; font-size:40px; font-weight:600; text-align:right; max-width:70%; margin:0; }
-.dac-canvas { background: #ffffff; border-radius: 16px; box-shadow: 0 1px 2px 0 rgba(51, 65, 85, 0.04); border: 1px solid #e5e7eb; }
-.dac-viz-block { border-radius: 16px; background: #f2f8fa; box-shadow: 0 1px 2px 0 rgba(51, 65, 85, 0.04); border: 1px solid #e5e7eb; }
-.dac-viz-block-label { font-family: 'Inter',sans-serif; font-size: 40px; font-weight: 600; color: #191d25; }
-.h-kpi-metric-kpi { font-size: 64px; color: #047857; font-weight: 700; font-family: 'Inter',sans-serif; }
-.h-kpi-metric-label { font-size: 18px; color: #232334; font-family: 'Inter',sans-serif; }
-.dac-ic-block { background: #f2f8fa; border-radius: 16px; padding: 16px; }
-.dac-ic-block-label { color: #047857; font-size: 18px; font-weight: 600; }
-.dac-text-block { color: #232334; font-family: 'Inter',sans-serif; }
-.brand-footer { text-align:center; padding:16px; color:#768195; font-size:15px; font-family: 'Inter',sans-serif; };;
-
-viz {
- table {
- general {
- bg_color: '#f2f8fa'
-hover_color: '#e4f3ea'
-banding_color: '#edf5f7'
-font_size: 18
-font_color: '#232334'
-font_family: 'Inter'
-cell_padding: 12
-border_color: '#e5e7eb'
-border_width: 1
-grid_color: '#e5e7eb'
-borders {
- outer: true
-vertical: true
-horizontal: true
-header: true
- }
- }
-header {
- bg_color: '#047857'
-font_size: 18
-font_weight: 'semibold'
-font_color: '#ffffff'
- }
- }
- }
- }
\ No newline at end of file
diff --git a/team-folders/tri.dvm/tri-test.page.aml b/team-folders/tri.dvm/tri-test.page.aml
new file mode 100644
index 00000000..43d5ac42
--- /dev/null
+++ b/team-folders/tri.dvm/tri-test.page.aml
@@ -0,0 +1,235 @@
+Dashboard tri_test {
+ title: 'Tri Test'
+ description: ''''''
+
+ view: CanvasLayout {
+ label: 'View 1'
+ height: 840
+ grid_size: 20
+ mobile {
+ mode: 'auto'
+ }
+ block v1 {
+ position: pos(100, 20, 400, 300)
+ layer: 2
+ }
+ block f1 {
+ position: pos(520, 20, 300, 100)
+ layer: 3
+ }
+ block v2 {
+ position: pos(520, 140, 400, 300)
+ layer: 4
+ }
+ block f2 {
+ position: pos(720, 500, 300, 100)
+ layer: 5
+ }
+ block f3 {
+ position: pos(400, 500, 300, 100)
+ layer: 6
+ }
+ block v3 {
+ position: pos(20, 620, 400, 300)
+ layer: 7
+ }
+ }
+
+ theme: H.themes.classic
+ block v1: VizBlock {
+ label: 'CLV'
+ viz: DataTable {
+ dataset: demo_ecommerce
+ fields: [
+ VizFieldFull {
+ ref: ref('order_master', 'order_id')
+ format {
+ type: 'number'
+ pattern: 'inherited'
+ }
+ },
+ VizFieldFull {
+ ref: ref('order_master', 'user_id')
+ format {
+ type: 'number'
+ pattern: 'inherited'
+ }
+ },
+ VizFieldFull {
+ ref: ref('order_master', 'amount')
+ format {
+ type: 'number'
+ pattern: 'inherited'
+ }
+ },
+ VizFieldFull {
+ ref: ref('order_master', 'customer_lifetime_value')
+ format {
+ type: 'number'
+ pattern: 'inherited'
+ }
+ }
+ ]
+ settings {
+ show_row_number: true
+ row_limit: 5000
+ aggregate_awareness {
+ enabled: true
+ debug_comments: true
+ }
+ }
+ }
+ }
+ block f1: FilterBlock {
+ label: 'aaaa'
+ type: 'field'
+ source: FieldFilterSource {
+ dataset: demo_ecommerce
+ field: ref('order_master', 'status')
+ }
+ default {
+ operator: 'is'
+ value: 'delivered'
+ }
+ }
+ block v2: VizBlock {
+ label: 'vggg'
+ viz: DataTable {
+ dataset: demo_ecommerce_metrics
+ fields: [
+ VizFieldFull {
+ ref: ref('order_master', 'order_id')
+ format {
+ type: 'number'
+ pattern: 'inherited'
+ }
+ },
+ VizFieldFull {
+ ref: ref('order_master', 'user_id')
+ format {
+ type: 'number'
+ pattern: 'inherited'
+ }
+ },
+ VizFieldFull {
+ ref: ref('order_master', 'amount')
+ format {
+ type: 'number'
+ pattern: 'inherited'
+ }
+ },
+ VizFieldFull {
+ ref: ref('order_master', 'clv_dimensionalized')
+ format {
+ type: 'number'
+ pattern: 'inherited'
+ }
+ }
+ ]
+ settings {
+ show_row_number: true
+ row_limit: 5000
+ aggregate_awareness {
+ enabled: true
+ debug_comments: true
+ }
+ }
+ }
+ }
+ block f2: FilterBlock {
+ label: 'CLV Filter'
+ type: 'field'
+ source: FieldFilterSource {
+ dataset: demo_ecommerce_metrics
+ field: ref('order_master', 'clv_dimensionalized')
+ }
+ default {
+ operator: 'is'
+ value: []
+ }
+ }
+ block f3: FilterBlock {
+ label: 'CVN'
+ type: 'field'
+ source: FieldFilterSource {
+ dataset: demo_ecommerce_metrics
+ field: ref('order_master', 'customer_lifetime_value')
+ }
+ default {
+ operator: 'is'
+ value: []
+ }
+ }
+ block v3: VizBlock {
+ label: 'Test 1'
+ viz: DataTable {
+ dataset: buyers_sellers_transactions
+ theme {
+
+ }
+ fields: [
+ VizFieldFull {
+ label: 'Full Name (Team Lead)'
+ ref: ref('buyers', 'full_name')
+ format {
+ type: 'text'
+ }
+ },
+ VizFieldFull {
+ label: 'Full Name (Supervisor)'
+ ref: ref('sellers', 'full_name')
+ format {
+ type: 'text'
+ }
+ },
+ VizFieldFull {
+ label: 'Metric'
+ ref: ref('transactions_buyers_sellers', 'quantity')
+ aggregation: 'sum'
+ format {
+ type: 'number'
+ pattern: 'inherited'
+ }
+ }
+ ]
+ settings {
+ show_row_number: true
+ sorts: [
+ SortSetting {
+ field_index: 0
+ direction: 'asc'
+ },
+ SortSetting {
+ field_index: 1
+ direction: 'asc'
+ }
+ ]
+ row_limit: 5000
+ aggregate_awareness {
+ enabled: true
+ debug_comments: true
+ }
+ }
+ }
+ }
+ interactions: [
+ FilterInteraction {
+ from: 'f2'
+ to: [
+ CustomMapping {
+ block: 'f3'
+ disabled: true
+ }
+ ]
+ },
+ FilterInteraction {
+ from: 'f3'
+ to: [
+ CustomMapping {
+ block: 'f2'
+ disabled: true
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/team-folders/vinhhh/ecommerce.page.aml b/team-folders/vinhhh/ecommerce.page.aml
index 3a134ece..b45ce029 100644
--- a/team-folders/vinhhh/ecommerce.page.aml
+++ b/team-folders/vinhhh/ecommerce.page.aml
@@ -23,10 +23,7 @@ Dashboard vinhhh_ecommerce {
}
default {
operator: 'is'
- value: [
- 'Male',
- 'Female'
- ]
+ value: ['Male', 'Female']
}
}
block age_demographic: FilterBlock {
@@ -467,21 +464,19 @@ display: block;
dataset: demo_ecommerce
rows: [
VizFieldFull {
- ref: r(ecommerce_countries.continent_name)
+ ref: ref('ecommerce_countries', 'continent_name')
format {
type: 'text'
}
- uname: 'ecommerce_countries_continent_name'
},
VizFieldFull {
- ref: r(ecommerce_countries.name)
+ ref: ref('ecommerce_countries', 'name')
format {
type: 'text'
}
- uname: 'ecommerce_countries_name'
},
VizFieldFull {
- ref: r(ecommerce_cities.name)
+ ref: ref('ecommerce_cities', 'name')
format {
type: 'text'
}
@@ -489,13 +484,13 @@ display: block;
]
columns: [
VizFieldFull {
- ref: r(ecommerce_users.age_group)
+ ref: ref('ecommerce_users', 'age_group')
format {
type: 'text'
}
},
VizFieldFull {
- ref: r(ecommerce_users.gender)
+ ref: ref('ecommerce_users', 'gender')
format {
type: 'text'
}
@@ -503,7 +498,7 @@ display: block;
]
values: [
VizFieldFull {
- ref: r(order_master.gmv)
+ ref: ref('order_master', 'gmv')
format {
type: 'number'
pattern: 'inherited'
@@ -511,23 +506,12 @@ display: block;
}
]
settings {
- wrap_header_text: true
show_row_total: true
show_column_total: true
aggregate_awareness {
enabled: true
debug_comments: true
}
- column_styles: [
- ColumnStyle {
- key: 'ecommerce_countries_name'
- width: 166
- },
- ColumnStyle {
- key: 'ecommerce_countries_continent_name'
- width: 54
- }
- ]
}
}
}
diff --git a/test_1.page.aml b/test_1.page.aml
new file mode 100644
index 00000000..8199808c
--- /dev/null
+++ b/test_1.page.aml
@@ -0,0 +1,17 @@
+Dashboard test_1 {
+ title: 'test'
+ block title: TextBlock {
+ content: @md # Your title goes here
+
(Double click to edit) ;;
+ }
+ interactions: []
+ view: CanvasLayout {
+ label: 'View 1'
+ height: 840
+ grid_size: 20
+ block title {
+ position: pos(20, 20, 1160, 120)
+ }
+ }
+ theme: H.themes.classic
+}
\ No newline at end of file
diff --git a/test_huyvu.page.aml b/test_huyvu.page.aml
new file mode 100644
index 00000000..fe71c8bd
--- /dev/null
+++ b/test_huyvu.page.aml
@@ -0,0 +1,72 @@
+Dashboard test_huyvu {
+ title: 'test huyvu'
+ block title: TextBlock {
+ content: @md # Your title goes here
+
(Double click to edit) ;;
+ }
+ block guide: TextBlock {
+ content: @md
+
+
+
Tips
+
Add Visualization to make your dashboard more meaningful. Learn more
+
+
+
+
+
Sample Dashboards
+
Get inspired by what\\'s possible. Click on any of these sample dashboards to dive in and explore.
+
+
+
+
+
+
+
+
;;
+ }
+ block v1: VizBlock {
+ label: 'Daily GMV vs. 7-day Moving Average'
+ description: @md # Description
+abc;;
+ viz: DataTable {
+ dataset: demo_ecommerce
+ filter {
+ field: ref('order_master', 'status')
+ operator: 'is'
+ value: 'delivered'
+ }
+ fields: [
+ VizFieldFull {
+ ref: ref('order_master', 'status')
+ format {
+ type: 'text'
+ }
+ }
+ ]
+ settings {
+ show_row_number: true
+ aggregate_awareness {
+ enabled: true
+ debug_comments: true
+ }
+ }
+ }
+ }
+ view: CanvasLayout {
+ label: 'View 1'
+ height: 840
+ grid_size: 20
+ block guide {
+ position: pos(20, 160, 1160, 660)
+ }
+ block title {
+ position: pos(20, 20, 1160, 120)
+ }
+ block v1 {
+ position: pos(20, 840, 400, 300)
+ layer: 1
+ }
+ }
+ theme: H.themes.classic
+}
\ No newline at end of file
diff --git a/modules/embedding/org_holistics/personal_workspace/user_1/dashboards_created_in_personal_uygaq.page.aml b/thong_test_2.page.aml
similarity index 76%
rename from modules/embedding/org_holistics/personal_workspace/user_1/dashboards_created_in_personal_uygaq.page.aml
rename to thong_test_2.page.aml
index 425a99f5..7ac50b7f 100644
--- a/modules/embedding/org_holistics/personal_workspace/user_1/dashboards_created_in_personal_uygaq.page.aml
+++ b/thong_test_2.page.aml
@@ -1,5 +1,5 @@
-Dashboard dashboards_created_in_personal_uygaq {
- title: 'Dashboards (created in personal)'
+Dashboard thong_test_2 {
+ title: 'Thong Test 2'
block title: TextBlock {
content: @md # Your title goes here ;;
}
diff --git a/team-folders/thong/thongs_test_dashboard.page.aml b/thongs_test_dashboard.page.aml
similarity index 100%
rename from team-folders/thong/thongs_test_dashboard.page.aml
rename to thongs_test_dashboard.page.aml
diff --git a/modules/embedding/org_holistics/personal_workspace/user_khai/_tuwwu.page.aml b/untitled_dashboard_of_untitled_report.page.aml
similarity index 57%
rename from modules/embedding/org_holistics/personal_workspace/user_khai/_tuwwu.page.aml
rename to untitled_dashboard_of_untitled_report.page.aml
index 2ac8ff81..85a124e0 100644
--- a/modules/embedding/org_holistics/personal_workspace/user_khai/_tuwwu.page.aml
+++ b/untitled_dashboard_of_untitled_report.page.aml
@@ -1,15 +1,18 @@
-Dashboard _tuwwu {
- title: 'Khai Personal Dashboard'
- block title: TextBlock {
- content: @md # Your title goes here ;;
- }
+Dashboard untitled_dashboard_of_untitled_report {
+ title: 'Untitled Dashboard of Untitled Report'
block v1: VizBlock {
- label: 'Total Orders'
+ label: 'Untitled Report'
viz: DataTable {
- dataset: demo_ecommerce
+ dataset: simple_dataset
fields: [
VizFieldFull {
- ref: 'total_orders'
+ ref: ref('ecommerce_products', 'name')
+ format {
+ type: 'text'
+ }
+ },
+ VizFieldFull {
+ ref: ref('ecommerce_products', 'id')
format {
type: 'number'
pattern: 'inherited'
@@ -32,14 +35,7 @@ Dashboard _tuwwu {
height: 840
grid_size: 20
block v1 {
- position: pos(20, 100, 500, 300)
- layer: 1
- }
- block title {
- position: pos(20, 20, 1160, 60)
- }
- mobile {
- mode: 'auto'
+ position: pos(20, 20, 400, 300)
}
}
theme: H.themes.vanilla
diff --git a/version.aml b/version.aml
index 7acbb586..9001afaa 100644
--- a/version.aml
+++ b/version.aml
@@ -1 +1 @@
-const AML_VERSION = '2.0'
\ No newline at end of file
+const AML_VERSION = '2.0'
\ No newline at end of file
diff --git a/vux_canvas.page.aml b/vux_canvas.page.aml
new file mode 100644
index 00000000..898222bd
--- /dev/null
+++ b/vux_canvas.page.aml
@@ -0,0 +1,60 @@
+Dashboard vux_canvas {
+ title: 'Vux Canvas'
+ description: ''
+ block title: TextBlock {
+ content: @md # Test Canvas - Vux;;
+ }
+ block v1: VizBlock {
+ label: 'Daily GMV vs. 7-day Moving Average'
+ description: @md # Description
+abc;;
+ viz: DataTable {
+ dataset: demo_ecommerce
+ filter {
+ field: ref('order_master', 'status')
+ operator: 'is'
+ value: 'delivered'
+ }
+ fields: [
+ VizFieldFull {
+ ref: ref('order_master', 'status')
+ format {
+ type: 'text'
+ }
+ }
+ ]
+ settings {
+ show_row_number: true
+ aggregate_awareness {
+ enabled: true
+ debug_comments: true
+ }
+ }
+ }
+ }
+ block t1: TextBlock {
+ content: @md
;;
+ }
+
+ view: CanvasLayout {
+ label: 'View 1'
+ height: 840
+ grid_size: 20
+ block title {
+ position: pos(20, 20, 1160, 60)
+ }
+ block v1 {
+ position: pos(40, 680, 400, 220)
+ layer: 1
+ }
+ block t1 {
+ position: pos(20, 80, 660, 460)
+ layer: 2
+ }
+ mobile {
+ mode: 'auto'
+ }
+ }
+
+ theme: H.themes.vanilla
+}
\ No newline at end of file