;;
+ }
+ 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/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