← Back to Portfolio

// Datacenter W26 β€” Project Control Framework

Construction Budget Control:
From Raw Data to Forward-Buying

Step-by-Step Architecture
Framework Version 1.0
BigQuery β†’ SAP MM
March 2026
W26-INF / IT / COOL
🌍
Source
Market APIs
──▢
☁️
Cloud DWH
BigQuery
──▢
⚑
Engine
Predictive Model
──▢
πŸ””
Signal
Alert Layer
──▢
πŸ“‹
ERP
SAP MM / WBS
──▢
πŸ’°
Action
Forward Buying
Framework Steps
BigQuery
01 / 07 β€” Data Ingestion
Data Layer

Ingest Commodity Market Data into BigQuery

Pull live and historical pricing for all 5 WBS commodities from external market data providers. Land raw data into a dedicated BigQuery dataset on a daily schedule.

  • Sources: LME (copper), Eurofer (steel), INSEE / BΓ©ton FR (concrete), vendor APIs (racks, pipes)
  • Table: w26.market_prices_raw β€” partitioned by ingestion date
  • Frequency: Daily pull via Cloud Scheduler + Cloud Functions
  • Schema: commodity_id, price_eur, unit, source, valid_date, scenario_flag
  • Historical backfill: Jan-2024 β†’ present (matches WBS baseline period)
BigQuery SQL
02 / 07 β€” WBS Join
Data Layer

Join Market Data with WBS Standard Price File

Load the SAP WBS export (our Standard_Price file) into BigQuery. Join planned quantities and base prices against live market prices by commodity key.

  • Table: w26.wbs_standard_price β€” static upload from SAP PS export
  • Join key: commodity_id maps WBS_Element_ID β†’ market ticker
  • Output: w26.wbs_vs_market β€” planned price vs current market price per element
  • Delta column: price_variance_pct = (market_price - standard_price) / standard_price
  • Budget impact: exposure_eur = price_variance_pct Γ— planned_qty Γ— standard_price
BigQuery ML
03 / 07 β€” Forecast
Predictive Model

Build a 3-Month Price Forecast Model

Train a time-series model in BigQuery ML using 24 months of historical market data. Generate 90-day forward price predictions per commodity with confidence intervals.

  • Model type: ARIMA_PLUS (BigQuery ML built-in time-series)
  • Training window: rolling 24-month lookback, retrained monthly
  • Output: predicted_price_p50, predicted_price_p10, predicted_price_p90 (bear/base/bull)
  • Horizon: T+30, T+60, T+90 days per commodity
  • Stored in: w26.price_forecast_90d
BigQuery SQL + Python
04 / 07 β€” Overrun Detection
Alert Engine

Compute Predicted Budget Overrun Score

Cross the 90-day forecast against each WBS line. Calculate a forward-looking overrun probability and flag elements where forecast price exceeds the WBS standard price by more than the tolerance threshold.

  • Overrun trigger: forecast P50 > standard_price Γ— 1.05 (5% threshold)
  • Severity: LOW (5–10%) Β· MED (10–15%) Β· HIGH (>15%)
  • Budget exposure: Δ€ = (forecast_p50 βˆ’ std_price) Γ— planned_qty
  • Composite Risk Index: weighted avg across all WBS elements
  • Time buffer: alert fires when overrun is predicted >3 months before procurement date
  • Materiality filter: suppress alerts below €5,000 exposure
  • Output table: w26.overrun_alerts β€” updated daily
  • Alert log stored for audit in w26.alert_history
Looker / Email
05 / 07 β€” Notification
Alert Layer

Deliver 3-Month Early Warning to Project Managers

Surface the overrun alert through a Looker Studio dashboard and automated email digest. PMs receive a ranked list of at-risk WBS elements with forecast charts and recommended actions.

  • Dashboard: Looker Studio report connected live to w26.overrun_alerts
  • Email digest: daily at 07:00 CET via Cloud Run + SendGrid
  • Alert card: WBS ID Β· commodity Β· current price Β· forecast price Β· Δ€ Β· severity
  • PM action buttons: "Approve Forward Buy" / "Accept Risk" / "Defer"
  • Response logged back to BigQuery via webhook
SAP MM / PS
06 / 07 β€” ERP Action
SAP Integration

Trigger Forward-Buying Process in SAP MM

When a PM approves a forward-buy recommendation, push a pre-filled Purchase Requisition (PR) into SAP MM against the relevant WBS element, locking in the current market price.

  • Integration: SAP RFC / BAPI_PR_CREATE called via Python middleware on Cloud Run
  • PR fields auto-populated: WBS_Element, Material, Qty, Delivery Date, Info Record price
  • Price source: current market price from BigQuery, not SAP standard price
  • Approval workflow: standard SAP MM release strategy (2-level: PM β†’ CFO above €50K)
  • Budget update: actual commitment posted to WBS cost element in SAP PS
BigQuery + SAP
07 / 07 β€” Feedback Loop
Governance

Close the Loop: Actuals Feed Model Retraining

Once goods are received in SAP, the actual invoice price is written back to BigQuery. This ground-truth data retrains the forecast model monthly, continuously improving prediction accuracy.

  • SAP β†’ BigQuery: MIRO / MIGO actuals extracted nightly via SAP BTP Data Pipeline
  • Accuracy KPI: MAPE (Mean Absolute Percentage Error) tracked per commodity
  • Model drift alert: retrain triggered if MAPE >8% over rolling 30 days
  • Budget variance report: forecast overrun vs actual overrun per WBS element
  • Quarterly review: model performance presented to Finance & Procurement steering
Live Data Flow
🌐
Market APIsLME Β· Eurofer Β· BΓ©ton FR Β· Vendor feeds
↓Daily pull Β· Cloud Scheduler
☁️
BigQuery Raw Layerw26.market_prices_raw
↓dbt transform
⚑
ARIMA_PLUS Forecastw26.price_forecast_90d
πŸ“Š
SAP WBS ExportStandard_Price Β· Planned Qty
↓BTP nightly extract
πŸ”—
WBS Γ— Market Joinw26.wbs_vs_market
↓overrun score
πŸ””
Alert Enginew26.overrun_alerts β†’ PM
βœ…
SAP MM β€” Forward Buy PRBAPI_PR_CREATE Β· Release Strategy
↓actuals feedback
πŸ”„
Model Retraining LoopMIRO actuals β†’ BigQuery β†’ ARIMA retrain
↓MAPE monitoring
πŸ“ˆ
Accuracy KPI DashboardLooker Studio Β· Monthly steering report
Sample Alert Output
⚠️
BUDGET OVERRUN ALERT β€” W26-CAB Β· Copper Cabling Β· HIGH SEVERITY

WBS Standard Price: €9.20/m Β· Forecast P50 at T+90: €10.48/m Β· Variance: +13.9%
Planned Qty: 5,000 m Β· Predicted Budget Overrun: +€64,000
Recommended Action: Forward-buy 5,000m copper cable before Jun-2026 at current spot €9.35/m β†’ Saves approx. €56,500 vs forecast.
Alert generated: 05-Mar-2026 Β· Procurement window: 90 days Β· PM: [Assign] Β· Status: PENDING APPROVAL

πŸ”΄ High Risk
+€64,000
SAP MM β€” Forward-Buying Actions

What Gets Created in SAP MM

Purchase Requisition (PR) β€” auto-generated with WBS assignment, material group, and market-rate price
Source List / Info Record β€” locked vendor and negotiated price stored for buyer reference
Budget Commitment β€” funds reservation posted to WBS cost element to prevent double-spend
Delivery Schedule β€” staggered delivery dates aligned to construction milestone plan

SAP Transactions Involved

ME51N β€” Create Purchase Requisition (triggered via BAPI)
ME21N β€” Convert PR to Purchase Order once approved
CJ30 / CJ32 β€” WBS budget update in SAP Project System
MIRO β€” Invoice verification; actual price written back to BigQuery feedback loop
Expected Business Outcomes
90d
Advance warning
before price spike
~8%
Avg procurement
saving vs reactive buy
5
Commodities tracked
across WBS hierarchy
1x
Unified BigQuery ↔ SAP
data model, no silos