One system reads NetSuite โ everything else reads from here. The Data Hub eliminates the pattern where every tool independently calls the NetSuite API, competing for rate limits and getting inconsistent snapshots of the same data.
Before the Data Hub, if Pennywise, Hawkeye, and the Platform API all needed work order data, each one called NetSuite separately. They'd fight over rate limits and sometimes see different data depending on when they pulled. The Data Hub creates a single source of truth: one sync, one pipeline, one set of verified data that all consumers share.
Data flows through three distinct layers, each with a clear purpose:
| Layer | Purpose | Technology |
|---|---|---|
| Raw | Data exactly as received from NetSuite โ no transformations. Acts as an auditable record of what was synced. | Airflow DAGs โ PostgreSQL |
| Core | Cleaned, normalized, and business-logic applied. This is where dbt models transform raw data into consistent, typed tables. | dbt SQL models โ PostgreSQL |
| Published | Consumer-ready views designed for specific use cases. Versioned so downstream tools don't break when transforms change. | dbt โ PostgreSQL views |
Currently focused on NetSuite data. The Data Hub syncs ~11 entity types on two cadence tiers, all serialized through a single-slot Airflow pool (the platform never occupies more than one NetSuite concurrency slot):
| Entity | Cadence | Rows | Strategy |
|---|---|---|---|
| Work Orders | Every 2h | ~330K | Delta (lastmodifieddate) |
| Work Order Lines | Every 2h | ~1.6M | Delta on parent |
| Item Stock (warehouse) | Every 2h | ~17K | Full pull (snapshot) |
| Corrective Maintenance | Every 2h | ~24 | Delta |
| Compressor Units (assets) | Nightly | ~4K | Delta |
| Customers | Nightly | ~1.4K | Delta |
| Employees | Nightly | ~671 | Delta |
| Items (parts catalog) | Nightly | ~10K | Delta |
| Locations (warehouses) | Nightly | ~50 | Delta |
| Region/Area | Nightly | ~29 | Full pull |
| List Values (labels) | Nightly | ~150 | Full pull |
A weekly reconciliation job (Sunday 02:37 CT) pulls full ID lists per entity from NetSuite, diffs against every key ever landed in raw, and records vanished keys in a deletions table. Incomplete keysets abort before diffing โ partial data must never mass-flag deletions. Raw data stays append-only; core transforms stamp deleted_at from the facts.
Financial data must be exact โ not "close enough." The Data Hub includes verification gates:
Once data passes through the pipeline and is published, these systems consume it:
| Consumer | What It Reads | Status |
|---|---|---|
| Platform API | Work orders, assets, inventory โ replacing direct NetSuite calls | Coming |
| Pennywise | GL data, financial records โ replacing direct NetSuite reads | Coming |
The Data Hub is the foundation for the proactive intelligence vision. When both operational data (from the Platform API) and financial data (from Pennywise) flow through a single, verified pipeline, background agents can couple the two โ "battery replacements are trending high" meets "here's the margin impact" โ and surface it to the right person.