Prepare your data for import to hila
hila’s Conversational Finance application provides a standard schema for you to ingest your data. However, you can also ingest data with custom schemas and an external database.
- Standard hCF schema — prepare your data for ingestion according to the standard Conversational Finance schema, continue with the rest of this topic.
- Custom schema — prepare your data for ingestion with a custom schema, see Supporting a new domain and new schema.
- Custom schema from CSV or PARQUET files — prepare your data for ingestion with a custom schema from CSV or PARQUET files, see Ingest custom data from a file.
- Ingest data from an external database — prepare your data for ingestion from a database, see Ingest data from an external database.
Conversational Finance schema
Preparing your data for Conversational Finance involves two steps:
- Prepare your data (customer task)
- Configure hila to ingest the data (Professional Services or client IT task)
Prepare your data
You need to prepare your data for Conversational Finance in the form of CSV or PARQUET files that you give to your Professional Services or client IT contact for the next step.
To set up and populate Conversational Finance with pilot data for your organization, you need to prepare and provide the data in a standard format. You can do this by running a custom report in your financial system and exporting the data to a file with the expected columns and data. Or you can export data from your financial system in an Excel file and then transform this data to this standard format.
The Conversational Finance data model consists of fact tables (journal and plan) and dimension tables. The following tables show the relationships between these fact and dimension tables:
Fact tables
The fact tables are:
Journal fact table
Journal table contains transaction data from your general ledger in a normalized format. The following columns are available in the journal table:
Column Name | Data Type | Format | Examples |
---|---|---|---|
company_code | varchar | AUS | |
posting_date | date | YYYYMMDD | 20230215 |
fiscal_year | varchar | 2023 | 2023 |
fiscal_period | varchar | ### | 001 |
account_number | varchar | 0050301000 | |
company_currency | varchar | AUD | |
company_amount | numeric(38,2) | 5936.32 | |
global_currency | varchar | USD | |
global_amount | numeric(38,2) | 5936.32 | |
department_number | varchar | M001 | |
cost_center_number | varchar | US10_ADM4 | |
profit_center_number | varchar | YB800 | |
purchase_order_number | varchar | 0012000411 | |
invoice_number | varchar | INV-SP03278-240609 | |
supplier_number | varchar | 4500000942 | |
material_number | varchar | RM13 | |
sales_order_number | varchar | 0000002695 | |
customer_number | varchar | EWM17-CU02 | |
product_number | varchar | EWMS4-01 | |
channel_number | varchar | CH001 | |
division_number | varchar | DV0001 | |
transaction_type | varchar | Purchase | |
transaction_document_number | varchar | BD2301000014 | |
transaction_document_item | varchar | 001 | |
transaction_description | varchar | ||
reference procedure | varchar | ||
transaction_id | varchar |
Comments:
- Most of the columns are not required; however, the diversity of questions you can ask depends directly on the data being available in all or most of these columns.
Plan fact table
The plan table contains actual, budget, and forecast values at your desired aggregation level and combinations. Actual values may come from journal table or from other external sources. Budget and forecast values are expected to come from planning systems. The planning systems may also feed in actual values to plan table if these values are different from journal values. So the design supports “loose integration” of journal and plan tables. However, both journal and plan fact tables use the same dimension tables in the data model.
Column Name | Data Type | Format | Examples |
---|---|---|---|
company_currency | varchar | AUD | |
company_actual_amount | numeric(38,2) | 5936.32 | |
company_budget_amount | numeric(38,2) | 6000.00 | |
company_forecast_amount | numeric(38,2) | 6200.00 | |
company_previous_forecast_amount | numeric(38,2) | 6100.00 | |
global_currency | varchar | USD | |
global_actual_amount | numeric(38,2) | 5936.32 | |
global_budget_amount | numeric(38,2) | 6000.00 | |
global_forecast_amount | numeric(38,2) | 6200.00 | |
global_previous_forecast_amount | numeric(38,2) | 6100.00 | |
company_code | varchar | AUS | |
fiscal_year | varchar | 2023 | 2023 |
fiscal_period | varchar | 001 | |
profit_center_number | varchar | YB800 | |
product_number | varchar | INV-SP03278-240609 |
Dimension tables
The following dimension tables must be populated:
- Account table
- Channel table
- Company table
- Cost center table
- Customer table
- Department table
- Division table
- Fiscal calendar table
- Fiscal period table
- Material table
- Material group table
- Product table
- Product group table
- Profit center table
- Supplier table
Account table
Account table contains general ledger account information. The following columns must be populated in this table for each of the accounts that appear in the journal table:
Column Name | Data Type | Format | Examples |
---|---|---|---|
account_name | varchar | COGS Direct Material | |
account_type | varchar | Expense | |
account_type_code | varchar | REV | |
account_subtype | varchar | Operating Expense | |
account_subtype_code | varchar | SAL_REV | |
account_category | varchar | Cost of Goods Sold | |
account_number | varchar | 0050301000 |
Comments:
- account_type column is used to categorize accounts into different types like Revenue and Expense.
- account_category column is used to categorize accounts into different categories like Cost of Goods Sold, Operating Expenses, etc.
Channel table
Provides details about the sales channels used by your organization. This table is optional, but it can help you analyze sales performance across different channels.
Column Name | Data Type | Format | Examples |
---|---|---|---|
channel_name | varchar | Online Store | |
channel_number | varchar | CH001 |
Company table
Company provides details about your company or companies.
Column Name | Data Type | Format | Examples |
---|---|---|---|
company_name | varchar | EverGreen Australia Pty Ltd | |
company_country | varchar | Australia | |
company_region | varchar | Oceania | |
currency_code | varchar | Oceania | |
language_code | varchar | en | |
company_code | varchar | AUS |
Cost center table
Provides details about the cost centers in your organization. Use to track expenses and revenues for specific departments or functions within your organization.
Column Name | Data Type | Format | Examples |
---|---|---|---|
cost_center_number | varchar | CC1010 | |
cost_center_name | varchar | Manufacturing Plant A |
Customer table
Provides details about your customers. This table is optional, but it can help you analyze sales performance across different customer segments.
Column Name | Data Type | Format | Examples |
---|---|---|---|
customer_number | varchar | CS08001 | |
customer_name | varchar | Acme Retailers |
Department table
Provides details about the departments in your organization. Use to categorize costs and revenues for specific functions or areas within your organization.
Column Name | Data Type | Format | Examples |
---|---|---|---|
department_name | varchar | Research and Development | |
department_number | varchar | DP001 |
Division table
Provides details about the divisions in your organization. Use to categorize costs and revenues for specific business units or divisions within your organization.
Column Name | Data Type | Format | Examples |
---|---|---|---|
division_name | varchar | Beverage Division | |
division_number | varchar | DV0001 |
Fiscal calendar table
If your organization follows a fiscal year calendar that is aligned with a calendar year, then you just need to provide the start date of the fiscal year. For example, if your fiscal year starts on 1st January, the fiscal year and calendar year are expected to be identical. If your fiscal year starts on 1st of July for example, then Q1 of the fiscal year would be 1st July to 30th September, Q2 would be 1st October to 31st December, and so on. In such cases, Professional Services will be able to generate a fiscal calendar table for queries automatically. However, if your organization follows a non-standard fiscal year calendar, you will need to provide a fiscal_calendar.parquet
file.
Column Name | Data Type | Format | Examples |
---|---|---|---|
fiscal_year | varchar | 2023 | 2023 |
fiscal_period | varchar | ### | 001 |
fiscal_quarter | varchar | Q# | Q1 |
fiscal_month | varchar | MM | 01 |
posting_date | varchar | YYYYMMDD | 20230215 |
Comments:
- If your organization follows a fiscal year calendar that is aligned with a calendar year, then you just need to provide the start date of the fiscal year.
Fiscal period table
Provides details about the fiscal periods in your organization. This table is optional, but it can help you analyze financial data across different fiscal periods.
Column Name | Data Type | Format | Examples |
---|---|---|---|
fiscal_quarter | varchar | Q# | Q1 |
fiscal_month | varchar | MM | 01 |
fiscal_year | varchar | 2023 | 2023 |
fiscal_period | varchar | ### | 001 |
Material table
Provides details about the materials used in your organization. This table is optional, but it can help you analyze costs and revenues associated with specific materials.
Column Name | Data Type | Format | Examples |
---|---|---|---|
material_name | varchar | Polyethylene | |
material_group_number | varchar | MG0010 | |
material_number | varchar | M090001 |
Material group table
Provides details about the material groups in your organization. This table is optional, but it can help you analyze costs and revenues associated with specific material groups.
Column Name | Data Type | Format | Examples |
---|---|---|---|
material_group_name | varchar | Plastics | |
material_group_number | varchar | MG0010 |
Product table
Provides details about the products in your organization. This table is optional, but it can help you analyze costs and revenues associated with specific products.
Column Name | Data Type | Format | Examples |
---|---|---|---|
product_name | varchar | Organic Almond Milk | |
product_group_number | varchar | PG0008 | |
product_number | varchar | P060001 |
Product group table
Provides details about the product groups in your organization. This table is optional, but it can help you analyze costs and revenues associated with specific product groups.
Column Name | Data Type | Format | Examples |
---|---|---|---|
product_group_name | varchar | Dairy alternatives | |
product_group_number | varchar | PG0008 |
Profit center table
Provides details about the profit centers in your organization. Use to categorize costs and revenues for specific business units or profit centers within your organization.
Column Name | Data Type | Format | Examples |
---|---|---|---|
profit_center_name | varchar | Beverage Division | |
profit_center_number | varchar | PC0001 |
Supplier table
Provides details about the suppliers in your organization. Use to track costs and revenues associated with specific suppliers.
Column Name | Data Type | Format | Examples |
---|---|---|---|
supplier_name | varchar | Acme Packaging Solutions | |
supplier_number | varchar | SP03001 |