| ASSET_ID | TEXT | The unique identifier representing the asset within the price provider’s system. Data type: STRING. This field serves as the primary key for identifying specific assets across different price providers and data sources. Used for joining price data with asset metadata, tracking price movements over time, and maintaining referential integrity between fact and dimension tables. Example: ‘bitcoin’ for Bitcoin on CoinGecko, ‘ethereum’ for Ethereum on CoinMarketCap. Critical for data lineage, asset identification, and cross-provider data reconciliation in financial analytics and reporting workflows. |
| HOUR | TIMESTAMP_NTZ | The timestamp representing the hour when the price data was recorded or aggregated. Data type: TIMESTAMP. This field provides the temporal reference for hourly price data and is used for time-series analysis, price trend calculations, and temporal data aggregation. Used for hourly price tracking, time-based filtering, and chronological analysis of price movements. Example: ‘2024-01-15 14:00:00’ for the hour starting at 2 PM on January 15, 2024. Critical for time-series analytics, price volatility calculations, and maintaining temporal consistency in financial data analysis. |
| OPEN | FLOAT | The opening price of the asset at the beginning of the specified hour, denominated in USD. Data type: FLOAT. This field represents the first trading price of the asset during the hour and is used for OHLC (Open, High, Low, Close) price analysis and volatility calculations. Used for price range analysis, volatility measurement, and technical analysis indicators. Example: 44000.00 for Bitcoin opening at $44,000.00 USD per BTC at the start of the hour. Critical for candlestick chart analysis, price momentum calculations, and understanding intra-hour price movements. |
| HIGH | FLOAT | The highest trading price of the asset during the specified hour, denominated in USD. Data type: FLOAT. This field represents the peak price reached by the asset within the hour and is used for price range analysis and volatility calculations. Used for resistance level analysis, volatility measurement, and understanding price extremes during trading periods. Example: 46000.00 for Bitcoin reaching a high of $46,000.00 USD per BTC during the hour. Critical for technical analysis, price range calculations, and understanding market sentiment and price momentum. |
| LOW | FLOAT | The lowest trading price of the asset during the specified hour, denominated in USD. Data type: FLOAT. This field represents the minimum price reached by the asset within the hour and is used for price range analysis and volatility calculations. Used for support level analysis, volatility measurement, and understanding price extremes during trading periods. Example: 43000.00 for Bitcoin reaching a low of $43,000.00 USD per BTC during the hour. Critical for technical analysis, price range calculations, and understanding market sentiment and price momentum. |
| CLOSE | FLOAT | The closing price of the asset at the end of the specified hour, denominated in USD. Data type: FLOAT. This field represents the final trading price of the asset during the hour and is used for OHLC (Open, High, Low, Close) price analysis and trend calculations. Used for price trend analysis, momentum calculations, and technical indicator computations. Example: 45000.50 for Bitcoin closing at $45,000.50 USD per BTC at the end of the hour. Critical for candlestick chart analysis, price trend identification, and understanding market direction and momentum. |
| PROVIDER | TEXT | |
| INSERTED_TIMESTAMP | TIMESTAMP_NTZ | The UTC timestamp when the record was first created and inserted into this table. Data type: TIMESTAMP_NTZ. Used for ETL auditing, tracking data freshness, and identifying when data was loaded or updated in the analytics pipeline. Example: ‘2023-01-01 12:00:00’. This field is critical for monitoring data latency, troubleshooting ETL issues, and supporting recency tests in dbt. |
| MODIFIED_TIMESTAMP | TIMESTAMP_NTZ | The UTC timestamp when this record was last updated or modified by an internal ETL or dbt process. Data type: TIMESTAMP_NTZ. Used for change tracking, ETL auditing, and identifying the most recent update to a record. Example: ‘2023-01-02 15:30:00’. This field is important for troubleshooting data issues, monitoring pipeline health, and supporting recency or freshness tests in dbt. |
| FACT_PRICES_OHLC_HOURLY_ID | TEXT | pk_id is a surrogate primary key, uniquely generated for each row in the table. Data type: STRING or INTEGER (implementation-specific). This field ensures every record is uniquely identifiable, even if the source data lacks a natural primary key. Used for efficient joins, deduplication, and as a reference in downstream models. Example: an auto-incremented integer or a UUID string. Essential for maintaining data integrity and supporting dbt tests for uniqueness. |