Inspiration

Construction project managers lose entire weeks chasing one question: where is my material, right now, and will it show up on time? A steel beam order might have a status in a vendor portal, a "we're running behind" email from the shop floor, and a delivery photo from the jobsite superintendent, all disagreeing with each other. Nobody reconciles them. Vendors give static promise dates that everyone knows are optimistic, and by the time a delay is confirmed, the downstream trades who depend on that material are already blocked with no warning and no ranked plan for what to do about it.

We kept coming back to three questions that construction PMs actually ask, and that no existing tool answers directly:

  1. Where exactly is this material right now, across every source?
  2. When will it actually arrive, given fabrication and logistics reality, not just what the vendor promised?
  3. If it's late, what else breaks, and what should be done first?

FlowSense is our answer to all three.

What it does

FlowSense is a three-layer supply chain intelligence platform for construction:

  • Ingest Layer — autonomously pulls unstructured signals from vendor emails, delivery photos, and procurement documents (Bills of Lading, packing slips, submittal logs), plus structured project schedules (Primavera XML, MS Project, CSV).
  • Intelligence Layer — reconciles those signals into one verified status per order, forecasts delivery dates probabilistically instead of trusting vendor promises, and traces exactly which downstream schedule activities a delay would compromise.
  • Action Layer — surfaces all of it on a live dashboard, fires proactive alerts when the critical path is threatened, and drafts the actual recovery communication (vendor escalation email, PO amendment) for one-click approval.

The core idea: don't just show a PM more dashboards. Reconcile the mess automatically, quantify the risk honestly, and hand them a drafted next action instead of a problem.

How we built it

We split the system along its natural seams and built in parallel:

Ingest + Intelligence (AI/ML): Three extraction agents — Email, Vision, Document — each normalize a different unstructured source into one shared event schema before it ever reaches the reasoning layer. The Vision Agent reads delivery labels and site photos with OCR, falling back cleanly when a photo is unclear rather than guessing. Everything funnels into a Material Tracker Agent that doesn't just take the latest signal at face value — it weighs each one by source reliability, recency, and the extracting agent's own confidence, then flags a genuine conflict (say, an email claiming "shipped" against a portal still showing "in fabrication") instead of silently picking one.

For delivery forecasting, we treat the true delivery date as a latent variable and update it with Bayesian inference as evidence arrives — vendor track record as the prior, then fabrication-stage signals, the Material Tracker's reconciled status, and external disruption flags folded in as observations, each weighted by how much we trust it:

$$ \text{posterior} \propto \text{prior} \times \text{likelihood(fabrication stage, tracker signal, disruptions)} $$

The output isn't a single date — it's a forecast date, a confidence interval, and an explicit delay probability, which is a fundamentally different (and more honest) answer than "the vendor said the 15th."

Schedule graph (Backend): The project schedule is modeled as a directed graph, with construction activities as nodes and material dependencies as edges. When the forecaster flags a likely delay, a graph traversal walks every downstream activity that depends on it, and a separate check flags whether the critical path itself is compromised. Ranked recovery options (resequence, expedite, substitute material) come out of constraint-based optimization over that same graph.

Dashboard + Streaming (Frontend): All of it streams through a unified event pipeline into a live dashboard showing real-time order status, forecast confidence intervals, and the schedule graph itself, with proactive alerts firing the moment a risk threshold or critical-path impact is detected. Drafted vendor escalation emails and PO amendments sit one click away from being sent.

Challenges we ran into

  • Reconciling genuinely conflicting evidence without a ground truth to check against. A vendor email and a jobsite photo can both be "true" at different points in time, or one can simply be wrong. We had to design a scoring system that degrades gracefully into "flag this for a human" rather than confidently picking the wrong answer.
  • Making a probabilistic forecast actually explainable. A raw confidence interval means little to a PM under deadline pressure. We built the Bayesian update as a visible, step-by-step trace, not just a black-box output, so the dashboard can show why the forecast moved.
  • Keeping the whole intelligence layer testable without live vendor data. We built a synthetic data generator that produces realistic emails, label images, and procurement documents so the entire pipeline runs end to end and is demoable without waiting on real-world data partnerships.
  • Coordinating three parallel workstreams against one shared contract. The event schema and the dashboard payload shape had to be locked early so the graph engine, the AI agents, and the frontend could be built simultaneously instead of sequentially.

Accomplishments that we're proud of

  • A fully working pipeline from raw unstructured input to a one-click drafted resolution, not just a demo of one isolated piece.
  • A forecasting engine that gives a real probability and confidence interval instead of a single guessed date.
  • A reconciliation system that knows when it doesn't know, and says so, instead of quietly picking a side.

What we learned

Reconciling multi-source, conflicting real-world data is a much harder and more interesting problem than building any single extraction model. The hard part of this system was never "can an LLM read an email", it was designing the trust and confidence architecture around what happens when three sources disagree, and building a forecast that's honest about its own uncertainty instead of hiding it behind a single date.

What's next for FlowSense

  • Replace synthetic vendor-reliability priors with real historical performance data as we onboard pilot projects.
  • Extend the Cascade Impact Engine's recovery optimization with cost data, so ranked recovery options account for budget impact, not just schedule impact.
  • Add a feedback loop where PM overrides of the Material Tracker's verified status retrain the confidence weighting over time.

Built With

Share this project:

Updates

Submission history