Inspiration

Every day, operations managers at multi-channel retail brands open their morning with the same ritual: checking Shopify, then Amazon Seller Central, then the WMS dashboard, then the 3PL portal, then their inbox — trying to answer one question: "Do my inventory numbers actually match?"

They almost never do.

We were inspired by three colliding realities:

  1. The multi-channel inventory crisis is massive and growing. The IHL Group estimates global inventory distortion — overstock, out-of-stock, and shrinkage — costs retailers $1.75 trillion annually. That's not a technology problem; it's a disconnected technology problem. Shopify syncs every 15 minutes. Amazon's MFN feed updates hourly. The WMS is real-time but only counts physical stock. POS systems run on their own clock. When a product goes viral on TikTok and sells 160 units in 6 hours, the warehouse doesn't know for another 45 minutes. By then, 53 units are oversold, and the brand is issuing cancellation emails, eating backorder costs, and tanking their seller rating.

  2. Supply chain signals are drowning in noise. A supply chain manager at a mid-market outdoor brand receives 40+ emails a week from suppliers — buried in those emails are cost increases ($26.80 -> $28.40 per unit on 2,500 jackets = $4,000 hidden margin erosion), ship date delays (12 days late means the restock arrives after you've stocked out), and capacity warnings (factory at 94% means your next PO is at risk). Meanwhile, tariff policy changes with 87-day deadlines sit in a government bulletin that nobody reads until it's too late. Returns pile up uninspected at the 3PL for 24 days, freezing $40,800 in capital that could be selling. These signals arrive in different formats, different systems, and different time zones. No single tool connects them.

  3. Existing tools show data but don't explain it. ERPs give you spreadsheets. BI dashboards give you charts. Neither tells you why Shopify shows 342 units when the warehouse only has 289, what the financial exposure is from that 53-unit gap, or what specific action to take right now to stop the bleeding. The gap between "seeing a number" and "understanding what to do about it" is where millions of dollars disappear.

We wanted to build the mission control for multi-channel commerce — not just another dashboard that shows you numbers, but an intelligence engine that tells you why they don't match, quantifies the financial impact in real time, and gives you one-click actions to fix it before revenue is lost.

NexusLink was born from a simple belief: every supply chain anomaly has a causal chain, and if you can visualize it end-to-end — root cause to recommended action — you can act 10x faster than reading spreadsheets.


What it does

NexusLink is a real-time supply chain data fabric and intelligence engine that unifies inventory positions from 5 sales channels into a single live dashboard and layers AI-powered causal analysis, tariff scenario modeling, and document intelligence on top.

Here's what a supply chain manager's day looks like with NexusLink:

Scenario 1: The TikTok Spike

It's 2pm. A micro-influencer posts a video wearing the Alpine Ridge Jacket. Orders spike to 160 units in 6 hours — 3.2x normal velocity. NexusLink detects the demand anomaly within the next 5-second tick. The sidebar fires a CRITICAL alert: "TikTok spike: Alpine Ridge Jacket — 160 orders in 6hrs, 3.2x normal velocity." The manager clicks "Why?" and sees the full causal chain:

Root Cause: Viral social media exposure driving demand surge for Alpine Ridge Jacket Effect: Order velocity 3.2x normal — 102 units available, ~10 days of stock remaining Impact: $19.2K at risk — stockout probable before next PO (lead time 45 days) Action: Expedite PO for SKU-101 or reallocate 50 units from wholesale channel

The manager doesn't need to pull up a spreadsheet, calculate days of supply, or check lead times. It's all there in one glance.

Scenario 2: The Silent Oversell

Nobody noticed that Shopify's webhook lagged behind a bulk order processing job. Shopify now lists 342 units of Alpine Ridge Jacket, but the WMS only has 289. That's a 53-unit phantom inventory — customers are buying jackets that don't exist. NexusLink's discrepancy detection flags this instantly:

Root Cause: Shopify webhook delay — Alpine Ridge Jacket listed at 342 vs WMS truth of 289 Effect: 53-unit oversell against stale inventory count on Shopify Impact: $31.2K capital at risk — backorder fulfillment required for 53 units Action: Sync SKU-101 to WMS truth (289 units) across all channels

One click on "Sync" and all channels reconcile to the WMS count. The alert changes to INFO: "Inventory synced for Alpine Ridge Jacket — all channels now match WMS." Problem solved in 3 seconds.

Scenario 3: The Tariff Time Bomb

Vietnam tariffs are scheduled to jump from 15% to 32% in 87 days. Four of the company's SKUs are sourced from Vietnam. NexusLink's Tariff Scenario Engine lets the manager compare three strategies side by side:

  • "Do Nothing" — $35K annual impact. Landed cost for the Alpine Ridge Jacket goes from $32.66/unit to $37.49/unit.
  • "Shift to Mexico" — Net savings of $26K. Mexico has a 0% tariff rate under USMCA and 85% of Vietnam's manufacturing cost. The strategy more than offsets the tariff increase.
  • "Split Sourcing" — Keep 60% in Vietnam, move 40% to Mexico. Partial savings, diversified supply base, lower risk of factory concentration.

Each strategy click dynamically recalculates the stat cards, updates the bar chart, and adapts the causal chain narrative at the bottom. It's a proper what-if analysis tool — not a static comparison table.

Scenario 4: The Buried Email

A supplier email arrives from Viet Textile Manufacturing:

"Unit cost: $28.40 (was $26.80 — raw material increase). New ship date: March 15, 2026 (delayed 12 days). Factory is at 94% capacity."

The operations team pastes this into NexusLink's Doc Parser and clicks "Parse with NexusLink AI." GPT-4o extracts 10 structured fields and performs a 6-point cross-referenced anomaly analysis:

  • CRITICAL — Unit Cost Escalation: $28.40 vs $26.80 on record = $4,000 added cost on this PO of 2,500 units. Total landed cost increases from $32.66 to $37.49 under proposed tariff. Recommendation: Negotiate volume discount or split PO across suppliers.
  • CRITICAL — Tariff Exposure: Origin Vietnam, HTS 6201.93.30. Proposed 32% rate effective May 2026 adds $6.40/unit landed cost. This PO alone faces $16,000 in tariff exposure. Recommendation: Accelerate shipment to arrive before May 1 cutoff.
  • WARNING — Lead Time Risk: Ship date March 15 is 12 days late. Current available stock is 102 units with daily sell rate ~15 units. Stock covers ~7 days. Gap of ~5 days between stockout and arrival. Recommendation: Air-freight partial shipment or reallocate from Amazon FBA buffer.
  • WARNING — Factory Capacity Risk: 94% factory load indicates production bottleneck. Further delays likely if other POs compete for capacity. Recommendation: Confirm dedicated production line or identify backup supplier.
  • INFO — Inventory Cross-Check: SKU-101 Alpine Ridge Jacket shows 53-unit channel discrepancy (Shopify 342 vs WMS 289). Incoming PO will not resolve oversell unless channels are synced first. Recommendation: Sync inventory before PO arrival.
  • INFO — Supplier Concentration: 4 of 8 SKUs sourced from Vietnam through 2 suppliers. Single-country dependency creates systemic tariff and disruption risk. Recommendation: Qualify Mexico or domestic backup for at least 1 high-volume SKU.

None of this was written by a human. The AI cross-referenced the email against live inventory positions, upcoming tariff scenarios, and recent alerts to produce findings with specific dollar amounts, day counts, and actionable next steps.

Scenario 5: The Returns Black Hole

180 units of Glacier Trail Pack have been sitting at ShipBob awaiting inspection for 18 days. That's $8,200 in frozen capital — units that could be selling but are stuck in returns limbo. Meanwhile, 96 carrier-damaged Alpine Ridge Jackets ($12,400) have been there for 32 days. Total frozen value: $40,800.

NexusLink's alert feed shows this, and the causal chain explains:

Root Cause: ShipBob inspection bottleneck — 3 return batches stuck avg 24 days Effect: 15 units awaiting grading, $40.8K frozen in limbo Impact: Unavailable ATP reducing sellable stock — customer wait times increasing Action: Release 3 graded returns ($40.8K) back into sellable inventory

One click on "Release Returns" and $40,800 moves from limbo back to Available-to-Promise inventory. The health score jumps. The returns flow component goes from red to green.

Scenario 6: The Reorder Cliff

Summit Sleeping Bag has 22 units available against a reorder point of 30. Lead time from China is 55 days. At current sell-through velocity, stock covers approximately 14 days. That's a 41-day gap between stockout and replenishment.

NexusLink fires a WARNING alert and the causal chain reads:

Root Cause: Sustained demand for Summit Sleeping Bag — 22 available vs 30 safety threshold Effect: Only 22 units left, 55-day lead time for replenishment Impact: Stockout risk before next PO arrival — $3.2K revenue at risk Action: Emergency reorder 100 units ($4,520) or transfer from another channel

Scenario 7: The Predictive Stockout

The Summit Sleeping Bag isn't just near its reorder point — NexusLink's stockout forecasting engine has calculated the actual probability. Every SKU in the inventory table now shows a 7-day and 14-day stockout risk percentage as a colored badge right next to the product name. Summit Sleeping Bag shows "78% 7d" in red — meaning there's a 78% chance of stocking out within a week based on current velocity, available units, and lead time.

The model uses a sigmoid-based risk function that factors in daily demand (computed from the 7-day velocity history), available inventory, lead time pressure, and reorder point proximity. It's not a simple "available / daily demand" calculation — it accounts for the non-linear relationship between coverage days and actual stockout probability (3 days of stock with a 55-day lead time is much worse than 3 days of stock with an 18-day lead time).

In the SKU detail modal, a fourth metric card now shows "Stockout (7d): 78%" alongside True ATP, Risk Value, and Lead Time. The 14-day risk appears under the Risk column in the main table. This turns the inventory grid from a snapshot into a forward-looking risk assessment.

Scenario 8: The AI Recommends Your Next Move

Instead of waiting for the manager to notice problems, NexusLink now proactively surfaces the top-3 highest-impact actions in a ranked recommendation panel above the inventory table. Each recommendation card shows:

  • Rank badge (1, 2, 3) based on a composite score of expected impact, urgency, and confidence
  • Title — e.g., "Sync Alpine Ridge Jacket to WMS truth"
  • Rationale — e.g., "53-unit listing gap is exposing $31,200 of annualized risk"
  • Score and estimated impact — e.g., "Score 87 · Est. impact $31,200"
  • One-click "Execute" button that triggers the action immediately

The engine evaluates all live discrepancies, stockout risks, returns backlog, and tariff exposure, scores each potential action on three dimensions (expected dollar impact, time urgency, confidence level), and surfaces only the top 3. This is the difference between a monitoring tool ("here's your data") and an intelligence system ("here's what you should do next, ranked by impact").

Scenario 9: The Supplier Risk Score

After parsing the Viet Textile email, NexusLink doesn't just extract fields and flag anomalies — it now builds a persistent supplier risk score. The parser converts extracted data points (cost changes, delays, capacity utilization, tariff exposure) into a composite risk score with component breakdown:

  • Cost stability — How much has this supplier's pricing drifted from baseline?
  • Delivery reliability — Are ship dates being met or consistently delayed?
  • Capacity risk — Is the factory running near max capacity?
  • Tariff exposure — What's the regulatory risk on this origin country?

Each time you parse a new document from the same supplier, the risk score updates with trend tracking — is this supplier getting riskier or more stable over time? The supplier risk leaderboard is available via /api/supplier-risks and feeds into the recommendation engine's sourcing decisions.

The Full Dashboard Experience

All of this happens in a single screen:

  • Real-time inventory grid with 8 SKUs x 4 channels, updating every 5 seconds. Discrepancies glow red. Velocity sparklines show 7-day demand trends. Stockout risk badges on every row. Search, filter (critical/warning/ok), sort (risk/name/ATP).
  • AI Recommendation Panel — Top-3 ranked next actions with impact scores and one-click execution, positioned above the inventory table.
  • Health score ring (0-100) in the header, computed from inventory sync quality, risk exposure, returns flow, and alert health.
  • Connection status bar showing live latency and last-sync timestamps for Shopify (142ms, 32s ago), Amazon (186ms, 2m ago), WMS (45ms, 12s ago), ShipBob (290ms, 8m ago), POS (67ms, 45s ago).
  • Animated pulse map — SVG network graph with pulsing red nodes wherever channel discrepancies exist.
  • Collapsible sidebar with severity-tagged alerts, timestamps, and action buttons.
  • Demo mode toggle — Pause all simulation drift for stable recordings and live judging walkthroughs.
  • Keyboard shortcuts — 1-4 for tabs, / for search, Esc for modals.
  • Toast notifications for every action ("Synced: Alpine Ridge Jacket", "Released $40,800 in returns").

How we built it

Architecture: React 19 + Vite 7 frontend -> FastAPI + Uvicorn backend, with a multi-layered simulation engine, dynamic root cause generator, and OpenAI GPT-4o AI layer.

The Simulation Engine (making it feel alive)

The core technical challenge was making a demo feel like a live production system monitoring real inventory. We built a 4-layer simulation pipeline:

Layer 1 — Channel Drift Simulation: Every 5 seconds, a background asyncio loop runs simulate_tick() which performs independent random walks on each channel's inventory count. Shopify and Amazon drift with deltas of -3 to +2 per tick (simulating orders and cancellations). POS moves more slowly. WMS — the physical truth — only changes 15% of the time (simulating actual warehouse movements and occasional restocks). This creates realistic, organic-looking discrepancies that ebb and flow.

Layer 2 — Discrepancy Detection & Risk Calculation: After each tick, the engine compares the maximum listed count (Shopify or Amazon) against WMS truth. If the gap exceeds 5 units, it flags a discrepancy and calculates annualized risk: gap * unit_cost * 12. This means a 53-unit gap on a $28.40 item becomes $31.2K in capital at risk — a number that immediately communicates severity to a non-technical stakeholder.

Layer 3 — Alert Generation with Deduplication: The engine generates alerts with probability gates (3% for reorder warnings, 4% for gap detections per tick) and critically, checks the last 10 alerts for duplicate messages before inserting. Without deduplication, the sidebar floods with identical "approaching reorder point" warnings. With it, each SKU gets at most one active alert per type — noise becomes signal.

Layer 4 — Connection & History Simulation: Connection latencies jitter by +/- 15ms per tick with a 2% chance of status degradation ("connected" -> "degraded"). The history generator creates 7 days of hourly data per SKU using Gaussian random walks with demand pattern multipliers (1.2x during business hours, 0.7x overnight) and a simulated TikTok demand spike for the Alpine Ridge Jacket on day 5 (8 extra units/hour from 10am-4pm).

The Dynamic Root Cause Engine

Every alert in NexusLink is enriched with a context-aware causal chain built from live data. The get_root_cause() function inspects the alert message, looks up the associated SKU's current inventory state, and assembles a 4-step chain using actual numbers:

  • Oversold/Gap alerts: Pulls Shopify count, Amazon count, WMS truth, identifies the highest-listed channel, computes the gap, calculates dollar risk, and recommends syncing to WMS truth.
  • Tariff alerts: Looks up the country's current and proposed rates, counts affected SKUs, calculates total exposure, and recommends sourcing alternatives.
  • Demand spike alerts: Computes days of stock remaining from available units and sell rate, compares against lead time, and recommends expedition or reallocation.
  • Returns backlog alerts: Pulls limbo count, frozen value, average days stuck, and recommends releasing graded returns.
  • Reorder point alerts: Computes gap between available and safety stock, factors in lead time and unit cost, calculates reorder quantity and cost.

This is not template text with placeholder values. Every number comes from the live store at query time. If you sync inventory for a SKU, its causal chain changes on the next refresh because the underlying data changed.

The AI Layer

Two GPT-4o endpoints with distinct personalities:

Query Console (temperature 0.3, 1,024 tokens, streaming): The system prompt injects the full current state — all 8 SKUs with channel-by-channel counts, all 3 tariff zones with rates and dates, the returns pipeline, and the 5 most recent alerts. Conversation history is preserved across messages. The AI recommends specific action strings (sync_inventory:SKU-101, release_returns, pause_channel:shopify:SKU-103) that users can trigger directly. Responses stream word-by-word via StreamingResponse on FastAPI and ReadableStream with TextDecoder on the frontend.

Document Parser (temperature 0.1, 2,048 tokens, structured JSON): A detailed system prompt instructs the model to extract 10 fields and perform 6 specific analyses — cost delta, lead time risk, tariff exposure, capacity risk, inventory cross-check, supplier concentration — using the live inventory and tariff data injected alongside the document text. The model returns structured JSON with severity-tagged anomaly objects, which the frontend renders as color-coded cards with financial impact badges and green recommendation lines.

The Frontend

Built in a single App.jsx file (~1,350 lines) with 13 co-located components. This was a deliberate architectural choice — during a hackathon, having all state, props, and rendering logic in one file eliminates import errors, circular dependencies, and the "which file has this state?" problem entirely.

Key technical decisions:

  • CSS Grid over HTML <table> for the inventory list — we discovered that ResponsiveContainer from Recharts inside <td> elements causes a layout calculation failure that collapses rows to zero height.
  • Custom CSS bar sparklines instead of Recharts LineChart inside grid cells — avoids the same ResponsiveContainer conflict.
  • Recharts 3 for page-level charts (7-day area chart, tariff bar chart) where ResponsiveContainer works correctly.
  • Inline styles throughout — zero CSS-in-JS setup overhead, no class name conflicts, and instant visual debugging by inspecting the element.
  • Dark glassmorphic design system (#07090f background, rgba borders, subtle gradients, blue/yellow/red/green semantic palette) — professional and modern without any design framework dependency.

The Data Layer

nexus_truth.json seeds the system with a realistic outdoor retail company:

  • 8 SKUs across 4 categories (Outerwear, Equipment, Packs, Footwear) sourced from Vietnam, China, and Mexico
  • Realistic unit economics — costs from $15.40 (Windbreaker Pro) to $84.50 (Summit Series Tent), lead times from 18 days (Mexico) to 60 days (China)
  • Pre-built discrepancies — Alpine Ridge Jacket has a 53-unit Shopify/WMS gap, Glacier Trail Pack has a 60-unit gap
  • 3 tariff zones — Vietnam (15% -> 32%), China (25% -> 45%), Mexico (0% -> 5%) with specific effective dates
  • 3 return batches — carrier damaged, wrong item shipped, quality issue — with different grades and ages
  • 7 seed alerts — covering oversold, tariff, demand spike, returns, and reorder scenarios

Challenges we ran into

Defining "truth" when every system disagrees. The fundamental design challenge wasn't technical — it was philosophical. When Shopify says 342 units, Amazon says 210, and WMS says 289, which one is "true"? In reality, they're all correct within their own context — Shopify counts listed inventory, Amazon counts FBA-allocated stock, and WMS counts physical units on shelves. We had to make a deliberate decision: WMS is the ground truth because it represents physical reality. Everything else is a derivative. This single design choice cascades through the entire system — discrepancies are always measured against WMS, risk is calculated from the gap to WMS, and sync actions reconcile to WMS. Getting this wrong would have made the causal chains meaningless.

Alert fatigue is a real operational problem, not just a UI issue. Our first simulation generated alerts at realistic rates — and the sidebar immediately became useless. In real supply chain operations, this is the #1 complaint about monitoring tools: everything is flagged, so nothing is flagged. Operations teams develop "alert blindness" and start ignoring the feed entirely, which is how a $31K oversell goes unnoticed for hours. We had to think hard about what deserves an alert vs. what should just be a visual indicator in the table. The solution — deduplication, probability gates, and severity tiering — mirrors how the best real-world NOC (Network Operations Center) tools handle this problem.

Tariff modeling is deceptively complex. We initially thought tariff impact was simple math: new_rate - old_rate * cost * volume. But real sourcing decisions involve landed cost (unit cost + freight + duty + insurance), factory capacity constraints, minimum order quantities, quality differences between origins, and lead time tradeoffs. A Mexico factory might be 15% cheaper on duty but has a 6-month qualification process. We had to scope our model to capture the most important variables (landed cost differential, annual volume impact, strategy comparison) without pretending to be a full sourcing optimization tool. Knowing what to leave out was harder than knowing what to include.

Supplier communications are unstructured by nature. When we built the doc parser, we realized that supplier emails don't follow any standard format. Some put the PO number in the subject line, others bury it in paragraph 3. Cost changes might be stated as "$28.40 (was $26.80)" or "6% increase effective next shipment" or "raw material surcharge applies." Ship dates come as "March 15, 2026" or "delayed 12 days from original" or "ETA week 11." Training an AI to handle this variability required a carefully engineered prompt that focuses on semantic extraction rather than pattern matching — and cross-referencing against our live inventory data to validate what the AI extracts.

The "so what?" problem. Early versions of NexusLink showed discrepancies beautifully but didn't answer the question every operations manager actually asks: "So what? How much is this costing me, and what should I do?" A 53-unit gap between Shopify and WMS is just a number. $31.2K in capital at risk with a recommended sync action is a decision. This insight drove the entire causal chain architecture — every anomaly must flow from root cause through financial impact to a specific action. Without this, NexusLink would have been another pretty dashboard that people glance at but don't act on.

Multi-channel retailers don't think in SKUs — they think in fires. We initially organized the dashboard around inventory data: here are your 8 SKUs, here are the counts. But real operators don't start their day asking "what's the count on SKU-101?" — they ask "what's on fire right now?" This led to the alert-first sidebar design, the severity-based filtering (critical/warning/ok), the health score ring, and the pulse map. The inventory table is comprehensive, but the entry point is always the most urgent problem, not the most complete dataset.


Accomplishments that we're proud of

The Causal Chain Visualizer turns data into decisions. Most dashboards show you a red number and leave you to figure out why. NexusLink's causal chain walks through Root Cause -> Effect -> Impact -> Action with real numbers pulled from live data at query time. When a supply chain manager sees "Shopify webhook delay — listed at 342 vs WMS truth of 289 -> 53-unit oversell -> $31.2K capital at risk -> Sync to WMS truth (289 units) across all channels," they have a complete decision-support artifact in one glance. They don't need to open a spreadsheet, cross-reference two dashboards, or calculate risk manually. The causal chain did all of that in the 5-second tick interval.

The simulation makes the demo indistinguishable from production. Numbers change. Alerts fire. Connection latencies fluctuate. The health score drifts between 45 and 72. Discrepancies appear and sometimes self-correct. The TikTok demand spike on day 5 creates visible velocity spikes in the sparklines. It feels like you're watching a real company's supply chain — and that makes the intelligence features (causal chains, tariff scenarios, AI queries) feel consequential rather than academic.

The document parser doesn't just extract — it cross-references. Pasting a supplier email and getting structured fields back is table stakes. NexusLink's parser checks the quoted unit cost against our inventory records, calculates whether current stock lasts until the new ship date, projects tariff impact under upcoming rate changes, flags factory capacity risk, identifies channel discrepancies that the incoming PO won't fix, and warns about supplier concentration. Each finding comes with severity, specific dollar impact, and a concrete recommendation. This is the kind of analysis that a senior supply chain analyst would spend 30 minutes producing — delivered in 3 seconds.

Every insight is one click from action. This was a core design principle. Click "Sync" on a discrepant SKU and channels reconcile to WMS truth. Click "Release Returns" and $40,800 in frozen capital moves back to sellable inventory. Click "Pause Shopify" and the listing stops before more phantom orders come in. The AI recommends action strings. The doc parser findings end with recommendations. The tariff engine shows dollar impact per strategy. Nothing in NexusLink is information-only. Every signal has a corresponding action, and every action mutates the live data store and generates a confirmation alert.

The tariff scenario engine answers the real question. Supply chain managers don't want to know "what's the tariff rate?" — they want to know "if I shift production to Mexico, how much do I save, and does it offset the tariff increase?" NexusLink answers that with three clickable strategies that dynamically recalculate financial impact, adjust stat cards between "Annual Impact" / "Remaining Cost" / "Net Savings," update the bar chart, and adapt the causal chain narrative. It's a proper what-if decision tool, not a static data table.

The recommendation engine closes the loop from detection to action. Most monitoring tools stop at alerting. NexusLink goes further: it evaluates every live discrepancy, stockout risk, returns backlog, and tariff exposure, scores each potential action on three dimensions (expected dollar impact, urgency, confidence), and surfaces the top 3 ranked recommendations with one-click execution. The manager doesn't have to decide which of 6 alerts to act on first — the engine has already done the triage. This is the difference between a dashboard and a co-pilot.

Stockout forecasting turns the inventory table into a forward-looking risk map. Instead of just showing current counts and hoping someone notices a low number, every SKU now carries a probabilistic stockout risk for the next 7 and 14 days. A sigmoid-based model factors in daily demand velocity, available inventory, lead time pressure, and reorder proximity. When the Summit Sleeping Bag shows "78% 7d" in red, it communicates urgency in a way that "22 units available" never could. The entire inventory table becomes a predictive instrument, not just a snapshot.

It works without AI, and it's better with AI. The core dashboard — unified inventory truth, live discrepancy detection, causal chain analysis, tariff scenario modeling, stockout forecasting, recommendation engine, health score, pulse map, alert feed — runs entirely without an OpenAI key. The AI layers (query console, doc parser, supplier risk scoring) add conversational intelligence and document understanding, but they're additive, not foundational. This means the demo never breaks due to API limits, and the product has a credible path to deployment in environments where external AI APIs aren't permitted.


What we learned

The real value isn't in showing data — it's in explaining causality. Every multi-channel retailer already has dashboards. They have Shopify analytics, Amazon Brand Analytics, WMS reports, and BI tools stitching them together. They still lose money to discrepancies. The reason is that dashboards show what happened but not why it happened or what to do next. A supply chain manager staring at "Shopify: 342, WMS: 289" has to mentally reconstruct the causal chain — which channel drifted, when did the webhook lag, how many units are at risk, what's the dollar exposure, who needs to act. NexusLink's causal chain collapses that 10-minute investigation into a 3-second glance. The highest-value feature in any operations tool isn't the data display — it's the reasoning layer on top of it.

Alert design is a product problem, not an engineering problem. We learned that the difference between a useful alert system and an ignored one comes down to three principles: (1) deduplicate — the same problem shouldn't generate 15 alerts, (2) tier by severity — not every anomaly deserves the same visual weight, and (3) attach an action — an alert without a recommended next step is just noise. Real operations teams at companies like PagerDuty and Datadog have spent years solving alert fatigue. We applied the same thinking to supply chain: every alert either has an action button or explains why no action is needed yet.

Supply chain decisions are always about tradeoffs, never about "right answers." When we built the tariff scenario engine, our first instinct was to highlight the "best" strategy. But talking to anyone in sourcing reveals that there's never a single best answer. Shifting to Mexico saves on tariffs but introduces a new supplier qualification risk. Split sourcing diversifies but adds operational complexity. "Do Nothing" might be correct if the tariff increase is likely to be reversed politically. The tool's job is to quantify the tradeoffs, not make the decision. That's why we show three strategies side by side with dynamic financials rather than a single recommendation.

AI is most powerful when it has the full picture, not fragments. We initially planned a traditional RAG pipeline — embed documents, retrieve relevant chunks, feed them to GPT-4o. But for a supply chain context of 8 SKUs and 3 tariff zones (~4KB), full-context injection into the system prompt gives the AI perfect recall and lets it reason across the entire dataset simultaneously. When a user asks "What's my total Vietnam exposure considering the Alpine Ridge Jacket oversell?", the AI can connect tariff data, inventory positions, and active alerts in a single inference — something chunk-based retrieval would likely miss because those data points live in different "documents."

Unstructured supplier communication is an underserved automation opportunity. The average supply chain team processes 40+ supplier emails per week. Each one potentially contains cost changes, schedule shifts, capacity warnings, or compliance updates buried in conversational prose. Today, someone reads each email, mentally extracts the key data, opens a spreadsheet, and updates the records. Our doc parser demonstrated that AI can do this extraction and cross-reference against live inventory and tariff data in 3 seconds. The 6-point anomaly analysis — cost delta, lead time risk, tariff exposure, capacity risk, inventory cross-check, supplier concentration — is the kind of analysis a senior analyst would spend 30 minutes producing. This is where AI creates genuine operational leverage, not just convenience.

Operators think in urgency, not in data models. Our initial design organized everything around the inventory data structure: SKUs, channels, counts. But real operators don't start their morning asking "what's the ATP on SKU-101?" — they ask "what's on fire?" This insight reshaped the entire UX: the sidebar leads with severity-tagged alerts, the health score ring gives a single-number system pulse, the pulse map highlights which channels have active anomalies, and the filter defaults to "all" but lets users instantly narrow to "critical." The inventory table is comprehensive, but the entry point is always the most urgent problem. Design for the user's mental model, not your data model.

Graceful degradation should be a first-class design principle. When our OpenAI API quota ran out mid-development, the AI Query and Doc Parser tabs broke instantly. But because we'd built the core intelligence — causal chains, tariff math, simulation engine, health score, discrepancy detection — without any AI dependency, the dashboard stayed fully functional. The lesson extends beyond hackathons: never make the critical path depend on an external service. Build the deterministic intelligence layer first, then layer AI on top as an accelerator. If the AI goes down, your operators should still be able to see problems and take action.


What's next for NexusLink

Real channel integrations. Replace the simulation engine with actual Shopify Admin API, Amazon SP-API, and NetSuite/WMS webhook handlers. The architecture already cleanly separates the data store from the simulation logic — swapping simulate_tick() for real webhook consumers is a surgical substitution. The unified truth table, causal chains, tariff engine, and AI features would work identically with production data.

Predictive stockout intelligence. The current system is reactive — it detects problems after they happen. The next step is predicting stockouts 7-14 days ahead using the velocity trend data we already capture, combined with lead times, seasonality patterns, and promotional calendars. The 7-day hourly history per SKU provides the foundation for time-series forecasting models.

Expanded document intelligence. Support PDF purchase orders, customs declarations, bill of lading documents, and shipping manifests — not just email text. Add OCR for scanned documents. Build a document history timeline showing how supplier terms drift over time across multiple POs (is this supplier's cost consistently creeping up? are their lead times getting longer?).

Multi-tenant SaaS deployment. Add authentication, per-tenant data isolation, and a configuration wizard where each merchant maps their specific Shopify store, Amazon seller account, WMS instance, and 3PL. The in-memory store would move to Redis for real-time state and PostgreSQL for historical analytics. Horizontal scaling via containerized workers.

Mobile-first alerting. Push CRITICAL alerts — oversell detected, tariff deadline approaching, stockout imminent, supplier cost increase — to Slack, Microsoft Teams, SMS, or mobile push. The alert severity system and action command strings are already structured as notification payloads. A manager on the warehouse floor should get a push notification with a one-tap action button, not an email they'll read 4 hours later.

Collaborative decision workflows. Add team annotations on alerts ("Sarah is investigating the Vietnam PO"), approval flows for high-risk actions (syncing inventory across all channels requires manager approval), and full audit logs showing who took what action, when, and what the data state was before and after. The action endpoint already generates timestamped INFO alerts — extending this to a compliance-grade audit trail is incremental.

Supplier scorecarding. Aggregate data from parsed documents over time to build supplier reliability scores — on-time delivery rate, cost stability, capacity utilization trends, quality issue frequency. Surface this in the tariff scenario engine so "Shift to Mexico" isn't just a cost calculation — it's weighted by the destination supplier's historical reliability.

Built With

Share this project:

Updates