Data Architecture & Modeling

The platform is organized as a layered analytical warehouse so source data can be acquired, preserved, cleaned, standardized, reused and combined without collapsing everything into one processing layer. Census data follows a dedicated load-to-curate-to-dimensions path, while other subject areas move through incremental seeds, raw storage, curated models and reusable dimensions before feeding subject marts, cross-domain integration models and downstream analytics.

Layered Platform Architecture

The architecture separates source acquisition, immutable raw storage, reusable dimensions, curated subject data, subject-area marts and downstream analytics while allowing selected raw and curated datasets to support direct analytical work where appropriate.

Layered data platform architecture

Platform Workflow

High-level platform flow showing the Census pathway, the fact-data pathway, subject-area marts and downstream analytics consumption.

Click the image to open the full-size version in a new window.

Schema Structure

Representative PostgreSQL schema views showing how the physical implementation maps to the layered architecture.

Load schema

load

Landing and preparation layer used heavily for Census and related source structures before downstream conforming and dimensional modeling.

Seeds schema

seeds

Incremental and reference datasets used to capture source changes and support repeatable loading into the raw layer.

Raw schema

raw

Source-aligned landing tables that preserve incoming data before downstream cleaning, standardization and modeling.

Dimensions schema

dimensions

Reusable geographic, Census, lookup and descriptive dimensions shared across subject areas and analytical models.

Curate schema

curate

Cleaned, standardized and enriched subject-area tables and views prepared for reuse in analytical models.

Property schema

property

Property-focused analytical tables combining claims, disasters, flood risk, policies, loss exposure and related measures.

Integration schema

integration

Cross-domain analytical models that combine multiple curated subject areas into business-facing marts and integrated risk, claims, market and geographic outputs.

Sentiment schemas

sentiment / sentiment_classification / sentiment_temporal

Sentiment-focused structures covering tokenized views, aggregated sentiment outputs, classification groupings and temporal rollups.

Query-Based Integration Diagrams

These diagrams were mapped from actual SQL logic to show how selected models are built from curated datasets, transformations and joins.

City new residential risk exposure integration diagram

integration.city_new_residential_risk_exposure

Cross-dataset fact integration showing how permits, air pollution, NOAA, fires, weather alerts, multiple loss properties, NFIP claims and NFIP policies are aggregated and joined by state, county and city within the latest 12-month permit window.

Click the image to open the full-size version in a new window.
Stocks strategy SQL logic diagram

curate.stocks_strategy

Strategy-building flow showing source stock data, calculation steps, rule evaluation and final output flags for momentum and sniper signals.

Click the image to open the full-size version in a new window.
Climate property divergence SQL logic diagram

curate.climate_property_divergence

Joined model showing how fire activity, weather alerts and Zillow property trends are standardized and compared to produce state-level divergence scoring.

Click the image to open the full-size version in a new window.

Representative Analytical Tables

Representative metadata from two integrated analytical models. The tables show the physical column structure and PostgreSQL data types behind the analytical outputs.

Sample Data

Current representative records from integration.city_new_residential_risk_exposure. Data is retrieved directly from PostgreSQL when this page is generated.

City New Residential Risk Exposure

Selected records showing demographic, housing, permit, environmental, insurance and loss information within the same analytical model.

data_through_daterefreshed_utcstatecountycitytotal_populationmedian_home_valuelatest_12m_permitted_valueunhealthy_air_quality_daysfire_detection_dayssevere_weather_alert_countmultiple_loss_property_countnfip_claim_countlatest_12m_policy_countrecent_climate_hazard_indicator_count
2026-08-012026-08-24 21:31 UTCArkansasLonokeCarlisle1,040131,100420,00000018150
2026-08-012026-08-24 21:31 UTCArkansasLonokeLonoke2,270211,9004,749,71700021120
2026-08-012026-08-24 21:31 UTCFloridaCitrusCrystal River14264,20010,402,2720101,2501941
2026-08-012026-08-24 21:31 UTCFloridaDuvalJacksonville384563,200536,133,3780106392321,08012
2026-08-012026-08-24 21:31 UTCFloridaHillsboroughTampa651,370,4001,062,472,7612008401443,5008
2026-08-012026-08-24 21:31 UTCFloridaPolkLakeland114541,700121,419,56101031001,3568
2026-08-012026-08-24 21:31 UTCGeorgiaFultonAtlanta228473,200871,003,261800365122,69815
2026-08-012026-08-24 21:31 UTCIndianaFloydNew Albany82184,1008,768,5850003801580
2026-08-012026-08-24 21:31 UTCIndianaVigoTerre Haute30171,300121,809,8120004514727
2026-08-012026-08-24 21:31 UTCKentuckyDaviessOwensboro52292,90027,077,1720004301806
For informational and research purposes only. Not investment advice. No trading or investment decisions should be made solely from this analysis. © 2025-2026 Gavin Powell. All rights reserved.