Pandas usage inventory (frontend/web)
Audit date: 2026-07-28 · Milestone A closeout / Milestone B input.
Production FDD execution is DataFusion SQL via central (POST /api/fdd/run).
This inventory classifies pandas / open_fdd.rules / analytics usage in the
product React SPA so agents do not confuse lab/oracle paths with production.
Classification legend
| Class | Meaning |
|---|---|
ORACLE_ONLY |
Pandas cookbook / oracle / custom rules — allowed |
DISPLAY_BOUNDARY |
Charts, tables, React display — allowed |
PACKAGE_IO |
CSV/package/WattLab load/save — allowed |
REPORT_RENDERING |
DOCX/xlsx/report builders — allowed |
MIGRATE_TO_DATAFUSION |
Should move toward central DataFusion-first APIs over time |
PROHIBITED_PRODUCTION_FDD |
Must not replace SQL FDD (none identified in UI as production path) |
Inventory
| File | Purpose | Runtime path | Class | Status | Target |
|---|---|---|---|---|---|
| frontend/web/app/agent_api.py | oracle/analytics helpers (lab path) | frontend/web React (not central FDD) | ORACLE_ONLY | temporary_ok | DataFusion analytics where production; keep oracle for vibe19 parity |
| frontend/web/app/agent_prerun.py | oracle/analytics helpers (lab path) | frontend/web React (not central FDD) | ORACLE_ONLY | temporary_ok | DataFusion analytics where production; keep oracle for vibe19 parity |
| frontend/web/app/analytics.py | oracle/analytics helpers (lab path); production callers → central /api/analytics/* |
frontend/web React | MIGRATE_TO_DATAFUSION | temporary_ok | central-analytics-v1 APIs now; DataFusion SQL follow-up per family |
| frontend/web/app/analytics_baseline.py | oracle/analytics helpers (lab path); production callers → central /api/analytics/* |
frontend/web React | MIGRATE_TO_DATAFUSION | temporary_ok | central-analytics-v1 APIs now; DataFusion SQL follow-up per family |
| frontend/web/app/cache.py | UI/lab pandas usage | frontend/web React (not central FDD) | DISPLAY_BOUNDARY | temporary_ok | review in Milestone B Jobs cutover |
| frontend/web/app/charts.py | React plots / UI tables | frontend/web React (not central FDD) | DISPLAY_BOUNDARY | approved | keep display; FDD exec via central SQL |
| frontend/web/app/column_map_json.py | CSV/package/WattLab I/O | frontend/web React (not central FDD) | PACKAGE_IO | approved | keep |
| frontend/web/app/data_contract.py | CSV/package/WattLab I/O | frontend/web React (not central FDD) | PACKAGE_IO | approved | keep |
| frontend/web/app/data_loader.py | CSV/package/WattLab I/O | frontend/web React (not central FDD) | PACKAGE_IO | approved | keep |
| frontend/web/app/data_model_tree.py | UI/lab pandas usage | frontend/web React (not central FDD) | DISPLAY_BOUNDARY | temporary_ok | review in Milestone B Jobs cutover |
| frontend/web/app/daytypes.py | UI/lab pandas usage | frontend/web React (not central FDD) | DISPLAY_BOUNDARY | temporary_ok | review in Milestone B Jobs cutover |
| frontend/web/app/docx_report.py | report rendering | frontend/web React (not central FDD) | REPORT_RENDERING | approved | open_fdd.reporting where shared |
| frontend/web/app/load_satisfaction.py | oracle/analytics helpers (lab path) | frontend/web React (not central FDD) | ORACLE_ONLY | temporary_ok | DataFusion analytics where production; keep oracle for vibe19 parity |
| frontend/web/app/metering.py | oracle/analytics helpers (lab path); production → /api/analytics/metering |
frontend/web React | MIGRATE_TO_DATAFUSION | temporary_ok | central metering stub live; DF SQL follow-up |
| frontend/web/app/model_seed.py | UI/lab pandas usage | frontend/web React (not central FDD) | DISPLAY_BOUNDARY | temporary_ok | review in Milestone B Jobs cutover |
| frontend/web/app/occupancy.py | oracle/analytics helpers (lab path) | frontend/web React (not central FDD) | ORACLE_ONLY | temporary_ok | DataFusion analytics where production; keep oracle for vibe19 parity |
| frontend/web/app/open_meteo.py | UI/lab pandas usage | frontend/web React (not central FDD) | DISPLAY_BOUNDARY | temporary_ok | review in Milestone B Jobs cutover |
| frontend/web/app/package_io.py | CSV/package/WattLab I/O | frontend/web React (not central FDD) | PACKAGE_IO | approved | keep |
| frontend/web/app/rcx_plots.py | React plots; production series → /api/analytics/rcx/* |
frontend/web React | MIGRATE_TO_DATAFUSION | temporary_ok | display stays; compute via central analytics |
| frontend/web/app/reports.py | report rendering | frontend/web React (not central FDD) | REPORT_RENDERING | approved | open_fdd.reporting where shared |
| frontend/web/app/role_map.py | oracle/analytics helpers (lab path) | frontend/web React (not central FDD) | ORACLE_ONLY | temporary_ok | DataFusion analytics where production; keep oracle for vibe19 parity |
| frontend/web/app/role_map_gap.py | oracle/analytics helpers (lab path) | frontend/web React (not central FDD) | ORACLE_ONLY | temporary_ok | DataFusion analytics where production; keep oracle for vibe19 parity |
| frontend/web/app/rule_card.py | React plots / UI tables | frontend/web React (not central FDD) | DISPLAY_BOUNDARY | approved | keep display; FDD exec via central SQL |
| frontend/web/app/rule_plot_meta.py | UI/lab pandas usage | frontend/web React (not central FDD) | DISPLAY_BOUNDARY | temporary_ok | review in Milestone B Jobs cutover |
| frontend/web/app/rules/init.py | pandas oracle / custom rule surface | frontend/web React (not central FDD) | ORACLE_ONLY | approved | keep (oracle) |
| frontend/web/app/rules/base.py | pandas oracle / custom rule surface | frontend/web React (not central FDD) | ORACLE_ONLY | approved | keep (oracle) |
| frontend/web/app/rules/common.py | pandas oracle / custom rule surface | frontend/web React (not central FDD) | ORACLE_ONLY | approved | keep (oracle) |
| frontend/web/app/rules/cookbook_catalog.py | pandas oracle / custom rule surface | frontend/web React (not central FDD) | ORACLE_ONLY | approved | keep (oracle) |
| frontend/web/app/rules/custom_boilerplate.py | pandas oracle / custom rule surface | frontend/web React (not central FDD) | ORACLE_ONLY | approved | keep (oracle) |
| frontend/web/app/rules/custom_registry.py | pandas oracle / custom rule surface | frontend/web React (not central FDD) | ORACLE_ONLY | approved | keep (oracle) |
| frontend/web/app/rules/custom_rules.py | pandas oracle / custom rule surface | frontend/web React (not central FDD) | ORACLE_ONLY | approved | keep (oracle) |
| frontend/web/app/rules/economizer_weather.py | pandas oracle / custom rule surface | frontend/web React (not central FDD) | ORACLE_ONLY | approved | keep (oracle) |
| frontend/web/app/rules/operational_gate.py | pandas oracle / custom rule surface | frontend/web React (not central FDD) | ORACLE_ONLY | approved | keep (oracle) |
| frontend/web/app/rules/pid_hunting.py | pandas oracle / custom rule surface | frontend/web React (not central FDD) | ORACLE_ONLY | approved | keep (oracle) |
| frontend/web/app/rules/runner.py | pandas oracle / custom rule surface | frontend/web React (not central FDD) | ORACLE_ONLY | approved | keep (oracle) |
| frontend/web/app/rules/sensor_rate.py | pandas oracle / custom rule surface | frontend/web React (not central FDD) | ORACLE_ONLY | approved | keep (oracle) |
| frontend/web/app/rules/sensor_rate_profiles.py | pandas oracle / custom rule surface | frontend/web React (not central FDD) | ORACLE_ONLY | approved | keep (oracle) |
| frontend/web/app/runtime_intervals.py | oracle/analytics helpers; production → /api/analytics/runtime |
frontend/web React | MIGRATE_TO_DATAFUSION | temporary_ok | central runtime Δt compute live; keep oracle for vibe19 parity |
| frontend/web/app/source_profile.py | CSV/package/WattLab I/O | frontend/web React (not central FDD) | PACKAGE_IO | approved | keep |
| frontend/web/app/sql_sources.py | SQL/DataFusion bridge helpers using pandas frames | frontend/web React (not central FDD) | MIGRATE_TO_DATAFUSION | temporary_ok | central DataFusion-first APIs |
| frontend/web/app/topology_enrich.py | oracle/analytics helpers (lab path) | frontend/web React (not central FDD) | ORACLE_ONLY | temporary_ok | DataFusion analytics where production; keep oracle for vibe19 parity |
| frontend/web/app/tuning_report.py | report rendering | frontend/web React (not central FDD) | REPORT_RENDERING | approved | open_fdd.reporting where shared |
| frontend/web/app/ui_rcx_tab.py | React plots; production analytics → /api/analytics/* |
frontend/web React | MIGRATE_TO_DATAFUSION | temporary_ok | cut over to central envelopes; keep display/Plotly in UI |
| frontend/web/app/unit_system.py | UI/lab pandas usage | frontend/web React (not central FDD) | DISPLAY_BOUNDARY | temporary_ok | review in Milestone B Jobs cutover |
| frontend/web/app/wattlab_dump.py | CSV/package/WattLab I/O | frontend/web React (not central FDD) | PACKAGE_IO | approved | keep |
| frontend/web/app/weather_psychrometrics.py | oracle/analytics helpers (lab path) | frontend/web React (not central FDD) | ORACLE_ONLY | temporary_ok | DataFusion analytics where production; keep oracle for vibe19 parity |
| frontend/web/app/weather_resolver.py | oracle/analytics helpers (lab path) | frontend/web React (not central FDD) | ORACLE_ONLY | temporary_ok | DataFusion analytics where production; keep oracle for vibe19 parity |
| frontend/web/scripts/_gen_building100_openfdd_json.py | UI/lab pandas usage | frontend/web React (not central FDD) | DISPLAY_BOUNDARY | temporary_ok | review in Milestone B Jobs cutover |
| frontend/web/scripts/csv_parity_check.py | UI/lab pandas usage | frontend/web React (not central FDD) | DISPLAY_BOUNDARY | temporary_ok | review in Milestone B Jobs cutover |
| frontend/web/scripts/gen_building_openfdd_maps.py | UI/lab pandas usage | frontend/web React (not central FDD) | DISPLAY_BOUNDARY | temporary_ok | review in Milestone B Jobs cutover |
| frontend/web/scripts/gen_openfdd_building_maps.py | UI/lab pandas usage | frontend/web React (not central FDD) | DISPLAY_BOUNDARY | temporary_ok | review in Milestone B Jobs cutover |
| frontend/web/scripts/profile_wattlab_export.py | UI/lab pandas usage | frontend/web React (not central FDD) | DISPLAY_BOUNDARY | temporary_ok | review in Milestone B Jobs cutover |
| frontend/web/shared/validate_hvac_data.py | UI/lab pandas usage | frontend/web React (not central FDD) | DISPLAY_BOUNDARY | temporary_ok | review in Milestone B Jobs cutover |
| frontend/web App.tsx | React plots / UI tables | frontend/web React (not central FDD) | DISPLAY_BOUNDARY | approved | keep display; FDD exec via central SQL |
Prohibited production FDD
No frontend/web module was classified as PROHIBITED_PRODUCTION_FDD. The UI
must continue to call central for production rule execution. Local pandas rule
runners are oracle / lab paths only.