Sample output from the Supply Chain Network Risk Assessment prompt in the Sonar AI Prompt Library, run against a NetSuite test account. Every name and number here is test data. Back to the post · The library
TD3016323 · Supply Chain Risk Prepared 16 September 2026 · Confidential
Supply Chain Network Risk Assessment

Three suppliers, forty miles apart, carry sixty percent of revenue.

An evidence-based assessment of structural exposure across the company's supplier, manufacturing and distribution network, built directly from NetSuite transaction data for the twelve months ending 31 August 2026.

Analysis period1 Sep 2025 – 31 Aug 2026
Scope16 Tier-1 direct-material vendors · 3 component suppliers · 5 active sites · 101 customers
SourceNetSuite account TD3016323 (production), 14 SuiteQL queries — see Appendix A
Prepared bySonar AI for Tim Dietrich, Administrator
01

Executive summary

The network is small, entirely domestic, and structurally concentrated. Two furniture suppliers in the San Francisco Bay Area are the sole source of 46% of product revenue, and the single Los Angeles distribution center ships 54% of it and performs 92% of manufacturing. Delivery performance has been excellent on paper, but the underlying data cannot yet support that conclusion.

75%
of direct spend within the SF Bay Area
60%
of product revenue from single-sourced items
$1.51M
direct-material spend, 16 vendors, 12 months
$1.16M
product revenue, 4 shipping sites

Top five risks

  1. Bedline (Oakland, CA). Sole source for all 13 mattress and box-spring SKUs — 28% of product revenue. No alternate exists for any of them.
  2. Broyhill (San Mateo, CA). Sole source for 9 of 10 Estes Park casegoods — 18% of revenue. Flexsteel is a paper alternate on adjacent lines only.
  3. Bay Area cluster. Bedline, Broyhill and Generation N sit within ~40 miles of each other on the Hayward/San Andreas fault system; 59% of inventory value is also in California.
  4. Los Angeles DC (location 5). Sole manufacturing site, hub of every transfer lane, and origin of 54% of shipments.
  5. Blind instrumentation. 373 of 378 received POs carry a receipt date identical to the PO date. Lead time, on-time and fill-rate metrics cannot be trusted until this is fixed.

Top five actions

  1. Fix the data — mandatory expected-receipt dates, real receipt dating, vendor lead times, clean addresses. Quick win.
  2. Qualify a second mattress source outside California for the Contour and Patriarch lines. Strategic.
  3. Extend Flexsteel to Estes Park casegoods with trial purchase orders. 3–9 months.
  4. Rebalance inventory — release Generation N overstock (1,344 days of cover, $487K) into safety stock for Bedline and Broyhill SKUs at Miami and Chicago. 3–9 months.
  5. Stand up a monthly vendor OTIF scorecard, starting with Crown Equipment (75% on-time) and Johnson Supply (85.5% fill). Quick win.
The exposure is not to supplier failure alone. It is to a single regional event — earthquake, wildfire smoke, port disruption — that would simultaneously interrupt three of the four largest vendors and 59% of the inventory that would otherwise buffer the loss.
02

Context and method

The company

TD3016323 is a US multi-channel retailer and light manufacturer operating three subsidiaries in a single currency. Product lines derived from the item master and sales history: furniture and mattresses (Estes Park, Ascend and Baja casegoods; Contour Rhapsody Breeze and Patriarch Luxury Firm mattresses), apparel and leather goods (jackets, satchels, watches, backpacks), beauty (hair care and cosmetics), and a small but growing assembled-goods line (bicycle sub-assemblies, keyboards and flex circuit boards) built at the Los Angeles distribution center since June 2026.

Distribution runs through two DCs (Los Angeles, Miami) serving a small number of large B2B customers (~$6K average order), and two stores (San Francisco, New York) serving many small transactions (~$170). A Chicago DC holds $43K of stock but recorded no sales in the period.

Method

DimensionHow it was measuredNetSuite source
Supplier spendVendor bills posted in the period, direct-material vendors only (vendors with item-vendor records or PO lines).transaction VendBill
Sourcing structureItem-vendor records plus vendors actually used on PO lines. Single-sourced = one vendor across both.itemvendor, PurchOrd lines
Revenue exposureInvoice and cash-sale item lines attributed to each item's preferred vendor; kit revenue split evenly across components. Subsidiary 4 (elimination) and 27 "TEST" service invoices excluded.transactionline CustInvc, CashSale
Delivery performancePO → item-receipt linkage; lead time = PO date to last receipt; on-time = last receipt ≤ PO due date; fill = qty received ÷ ordered.nexttransactionlinelink, ItemRcpt
BufferDays of cover = 365 × on-hand ÷ 12-month sold quantity, aggregated by preferred vendor.inventoryitemlocations
ManufacturingWork orders by assembly and location; Advanced BOM revision components.WorkOrd, bomrevisioncomponent
Reading this document. Every figure is derived from queries reproduced in Appendix A. Where the data could not support a conclusion, the gap is stated rather than filled. Recovery-time estimates and geographic/geopolitical scores are analyst judgement and are labelled as such.
03

Network map

The structural map below is built from actual inbound receipt lanes (vendor → site), transfer orders (site → site) and outbound sales (site → customer segment) in the period. Line weight follows receipt count; red marks the two sole-source suppliers whose loss cannot currently be covered.

TIER 1 SUPPLIERS OWN SITES CUSTOMERS SF BAY AREA, CA — 75% of spend OTHER US COMPONENTS → ASSEMBLY · OFFSHORE transfer orders LA→SF 4 · LA→CHI 3 · LA→NY 2 SF→MIA 3 Generation N · SF · $563K · 37% Bedline · Oakland · $330K · 22% Broyhill · San Mateo · $231K · 15% Hestra · San Mateo · $8K Flexsteel · San Jose · $3K The Apparel Co · Bemidji MN · $203K · 13% Lotion Co · MN* · $48K Mac Oca & Co · New York · $46K Health & Beauty Supplies · TX · $18K Betty Black · Batavia OH · $6K Coleman · Lake Jackson TX · $2K Crown Equipment · OH* · $27K Johnson Supply · New York · $16K Core4Solutions · MN* · $5K Micro Shop · OH · $0.3K China Manufacturer · Beijing · $0.8K 03 Los Angeles DC (5) MFG hub · 54% rev · $352K inv · 22 WOs 05 Miami DC (12) 34% rev · $212K inv 01 San Francisco Store (1) 7% rev · $309K inv · 1 WO 02 New York Store (3) 5% rev · $201K inv 04 Chicago DC (8) dormant · 0% rev · $43K inv · 1 WO DC customers few, large · ~$6K/order 88% of product revenue Store customers many, small · ~$170/txn 12% of product revenue 101 active customers top 10 = 58% · top 20 = 85% sole-source supplier, no alternate inbound lane (weight = receipts) transfer order lane
Figure 1 — Structural network map, Sep 2025 – Aug 2026. Vendor labels show billing city, 12-month bills and share of direct spend. 46 inbound lanes (727 receipts), 4 inter-site transfer lanes (14 orders; 14 further "transfers" were intra-site moves and are omitted). *Vendor master city/state pairs are inconsistent for Lotion Co, Core4Solutions, Crown Equipment and Evolve Transport (e.g. "Eden Prairie, AZ"); state shown as recorded. Indirect vendors (FrisCo $247K, Dell $101K, Brocade $84K, Staples $34K) carry no items and are excluded from the network.

Node register

NodeTier / roleLocationSpend shareRevenue shareSites served
Generation N (1129)T1 — leather & apparelSan Francisco, CA37.3%13.6%4
Bedline (1133)T1 — mattresses, box springsOakland, CA21.9%28.2%4
Broyhill (1131)T1 — casegoodsSan Mateo, CA15.3%18.2%4
The Apparel Co (1130)T1 — apparel; highest PO frequency (105)Bemidji, MN13.4%8.3%4
Hestra (1127)T1 — apparel alternateSan Mateo, CA0.6%10.6%†2
Flexsteel (1132)T1 — casegoods alternateSan Jose, CA0.2%6.1%†2
Lotion Co · Mac Oca · H&B SuppliesT1 — beauty trio, fully cross-sourcedMN* · NY · TX7.4%10.0%4 each
Crown (357) · Johnson Supply (3867) · Core4 (356)Component suppliers → assemblyOH* · NY · MN*3.1%assembly lineLA, CHI, SF
China Manufacturer (3881)T1 — only offshore vendorBeijing, CN0.05%01
03 Los Angeles DC (loc 5)Manufacturing + distribution hubLos Angeles, CA—54.0%3 outbound TO lanes
05 Miami (loc 12)Distribution centerMiami, FL—34.0%—
01 SF Store · 02 NY Store (loc 1, 3)RetailCA · NY—7.3% · 4.6%—
04 Chicago DC (loc 8)Dormant DC; 1 work orderChicago, IL—0%—

† Revenue attributed by preferred-vendor flag. Hestra and Flexsteel are flagged preferred on items that Apparel Co and Broyhill actually fulfilled (Flexsteel received $3K of POs against $71K of attributed revenue) — they are alternates on paper, unproven at volume.

04

Critical nodes

Criticality combines four lenses: single-source dependency, downstream blast radius (revenue and sites affected), concentration, and estimated time to recover or qualify a replacement. Inventory cover is shown as time-to-impact — the days before an outage reaches customers, assuming demand continues at the 12-month run rate.

Share of 12-month direct spend and product revenue by vendor 0%10%20%30%40% Generation N Bedline Broyhill The Apparel Co Hestra Flexsteel Beauty trio (3 vendors) spend share revenue share (attributed) revenue with no alternate source
Figure 2 — Concentration. Generation N dominates spend but not revenue (its bills are 3× its PO value — see §7). Bedline and Broyhill dominate revenue with no alternate. Hestra and Flexsteel show the inverse pattern: attributed revenue without purchasing — paper alternates.
#NodeSingle-source exposureBlast radiusTime-to-impactTime-to-recover ‡Alternative
1Bedline13 of 13 items (Contour Rhapsody Breeze ×8, Patriarch Luxury Firm ×4, Box Spring)$326K revenue · 28% · all 4 sites · Box Spring alone $38K286 days6–9 months — custom matrix specs, flammability complianceNone
2Broyhill9 of 10 Estes Park items$210K · 18% · all 4 sites353 days6–9 months — casegoods toolingPartial Flexsteel on Ascend/Baja only
3SF Bay Area cluster5 vendors within ~40 miles$693K revenue (60%) · $1.13M spend (75%) · $661K inventory (59%)—Regional event: monthsPartial apparel via MN; furniture/mattress none
403 Los Angeles DCOnly site running assembly (22 of 24 work orders)54% of revenue · $352K inventory · origin of all transfer lanes—Weeks–months to relocate manufacturingPartial Miami distributes; Chicago dormant
5Generation N11 of 16 items$157K · 14%1,344 days3–6 months — leather goodsBuffered Apparel Co on 5 items; deep stock
6Johnson Supply · Crown · Core424 of 24 purchased BOM components single-sourced (Johnson 14, Crown 7, Core4 3)Entire assembly line (MBK001 ← WHL001 ← PHA0001, SAF001, Keyboard, Flex Circuit); 24 WOs since JuneJohnson 6,197d · Crown 3,032d (low demand)2–3 months if components are standardNone recorded
7The Apparel Co13 of 16 items$96K · 8% · 105 POs/yr454 days3–6 monthsPartial Hestra on jackets, Gen N on leather

‡ Time-to-recover figures are industry-norm estimates, not measured. Time-to-impact is aggregated by vendor; individual SKUs will stock out earlier than the aggregate suggests.

Interdependencies

Bedline and Broyhill are each other's only backup. The Estes Park Queen Poster Headboard ($27K revenue) is the single dual-sourced furniture SKU — and its two vendors are the two most critical nodes in the network, 15 miles apart.

The assembly chain is three deep. AS_MBK001 requires AS_WHL001 (×2), which requires AS_PHA0001, which requires BLT001, CAP001 (Crown) and NUT001, TYR001 (Johnson). A single late Johnson or Crown shipment stalls three assembly levels. All 24 purchased components have exactly one vendor.

The beauty trio is the healthy pattern. Lotion Co, Mac Oca and Health & Beauty Supplies cross-source every item between them: zero single-source SKUs, four sites each. This is the template the furniture lines should follow.

Chicago is the unused hedge. Location 8 holds $43K of stock, receives Crown components and transfers from LA, and has already built one SAF001 work order — but shipped nothing in twelve months.

05

Risk heatmap

Each supplier is scored 1 (low) to 5 (high) on three likelihood dimensions and one impact dimension. The likelihood dimensions are combined with explicit weights; impact is scored separately so the two are never conflated.

DimensionWeightRationale
Delivery performance40%The only empirical signal — but in this account 373 of 378 receipts share their PO date, so the signal barely discriminates. Weight capped at 40% rather than the usual 50%+.
Geographic35%Raised above the norm because physical clustering (seismic, wildfire, port) is the dominant real-world exposure. Scores use recorded billing city.
Geopolitical25%Near-uniform: 15 of 16 vendors are US domestic. Set to 2 (not 1) for resellers of furniture, apparel and beauty on the assumption of Asian upstream manufacturing and tariff exposure — unverifiable from NetSuite.
PRIORITY ZONE 1.52.02.53.03.54.04.55.0 54321 DISRUPTION LIKELIHOOD (weighted 1–5) BUSINESS IMPACT (1–5) BedlineL 2.7 · I 5 · $330K BroyhillL 2.7 · I 5 · $231K Generation NL 3.1 · I 4 · $563K The Apparel CoL 2.0 · I 3 Johnson SupplyL 2.5 · I 3 · 85.5% fill Crown EquipmentL 2.6 · I 3 · 75% on-time Betty Black Lotion Co · H&B Supplies · Core4 Mac Oca HestraFlexsteel Micro Shop Coleman China Manufacturer · L 4.7 · I 1
Figure 3 — Likelihood × impact matrix. Marker size is proportional to 12-month spend. The priority zone (likelihood ≥ 2.5, impact ≥ 4) contains Bedline, Broyhill and Generation N. China Manufacturer is the highest-likelihood node in the network but immaterial ($750 spend, no sales). Crown and Johnson are the only vendors with observed delivery misses and gate the entire assembly line.

Underlying scores

VendorGeo
35%
Geopol
25%
Delivery
40%
LikelihoodImpactPriority
L×I
Delivery evidence (12 mo)
Bedline4222.7513.535 POs · 97.1% on-time (1 late) · 100% fill · one receipt dated 31 days before its PO
Broyhill4222.7513.536 POs · 100% on-time · 100% fill
Generation N4233.1412.444 POs · 2 partially received & past due · bills $563K vs POs $187K
Crown Equipment2142.637.810 POs · 75% on-time (2 late of 8 judged) · 1 open PO past due
Johnson Supply3132.537.58 POs · 85.5% fill · 1 past due · only vendor with non-zero recorded lead time (2 days)
The Apparel Co2222.036.0105 POs · 100% on-time · 100% fill
Hestra4222.725.46 POs · 100%
Flexsteel4222.725.47 POs · 100% · unproven at volume
Mac Oca & Co3222.424.839 POs · 100%
China Manufacturer4554.714.72 POs · 50% fill · open PO past due · only offshore vendor
Lotion Co2222.024.036 POs · 100%
Health & Beauty Supplies2222.024.030 POs · 100%
Core4Solutions2222.024.04 POs · 100% · sole source PCB raw materials
Coleman4122.512.53 POs · 100% · Gulf Coast hurricane exposure
Betty Black2121.811.812 POs · 100%
Micro Shop2121.811.81 PO
Scoring notes. Geographic 4 = Bay Area seismic/wildfire/port or Gulf Coast hurricane; 3 = NYC metro (density, port); 2 = inland Midwest/Texas. Impact = revenue share, single-source depth and sites affected: 5 = >15% revenue with no alternate; 4 = >10% or 37% of spend; 3 = 5–10% or gates the assembly line; 2 = cross-sourced or small; 1 = immaterial. Delivery 2 = clean record; 3 = partial receipts or open past-due; 4 = observed late deliveries; 5 = failed fill. Priority = Likelihood × Impact.
06

Action plan

Ten actions, ordered by risk reduction per unit of effort. Quick wins are data and configuration work that can start this month; the two strategic items address the only two risks that no amount of inventory can cover.

#ActionRisk addressedImpactEffortTimeframeKPI
1Fix the instrumentation. Populate vendor lead times (itemvendor.predicteddays), make Expected Receipt Date mandatory on PO lines, date receipts on physical arrival, correct vendor addresses.Delivery performance is unmeasurable; heatmap likelihood axis is uncertainty-weightedHighLowQuick win
< 3 months
% PO lines with expected date → 100%
% vendors with validated address → 100%
2Vendor OTIF scorecard. Monthly PO-vs-receipt report (on-time, fill, past-due opens), reviewed with buyers; begin with Crown and Johnson.Delivery slippage undetected on assembly-gating vendorsMediumLowQuick winOTIF ≥ 95% per vendor
Past-due open POs 4 → 0
3Reconcile Generation N. $563K billed against $187K of POs — determine whether this is non-PO buying, blanket orders or a data issue.Hidden dependency; 37% of spend outside PO controlMediumLowQuick winNon-PO bill share for direct vendors < 5%
4Dual-source the BOM. Identify and qualify alternates for the 24 single-sourced components, prioritising the MBK001 → WHL001 → PHA0001 chain (Crown BLT001/CAP001, Johnson NUT001/TYR001/RIM001/SPK001).Assembly line single points of failureMediumLow–MedQuick win → medium% BOM components with ≥ 2 vendors: 0% → 80%
5Extend Flexsteel to Estes Park. Place trial POs on the 9 single-sourced Broyhill SKUs; Flexsteel already supplies Ascend/Baja tables but has received only $3K in 12 months.Broyhill sole source — $210K, 18%HighMediumMedium term
3–9 months
Estes Park SKUs dual-sourced 1 → 10
Flexsteel PO share of casegoods ≥ 25%
6Rebalance safety stock. Reduce Generation N cover from 1,344 days toward 180; redeploy the working capital into 90–120 days of A-SKU cover for Bedline and Broyhill items at Miami (12) and Chicago (8).Bay Area regional event; Bedline/Broyhill outage; $661K of inventory co-located with the riskHighMediumMedium termDays of cover per vendor within 60–180 band
% A-SKUs stocked at ≥ 2 non-CA sites
7Supplier BCP and contract terms. Require business-continuity plans and disaster-recovery disclosure from Bedline, Broyhill, Generation N; add capacity-reservation and allocation-priority clauses.Bay Area cluster; Tier-2 opacityMediumLow–MedMedium term% of top-5 spend under contracts with BCP + allocation clauses → 100%
8Qualify a second mattress source for Contour Rhapsody Breeze, Patriarch Luxury Firm and Box Spring — outside California.Bedline sole source — $326K, 28%, no alternateHighHighStrategic
12–18 months
% of Bedline revenue with a qualified alternate 0% → 100%
9Activate Chicago DC (8) as second assembly site and East/Midwest stocking point; it already receives Crown components, LA transfers, and has built SAF001.Los Angeles DC single-site manufacturing and hubHighMed–HighStrategicShare of work orders and shipments from Chicago 0% → ≥ 20%
10Resolve China Manufacturer. Close or re-plan the past-due PO (50% fill); if the relationship grows, add tariff and lead-time monitoring.Offshore geopolitical exposure (immaterial today)LowLowQuick winPast-due POs = 0; offshore spend tracked
If only two things are done: #6 and #8. Rebalancing inventory buys time against a Bay Area event at no net working-capital cost; a second mattress source is the only permanent fix for the largest single exposure in the network.
07

Assumptions, data gaps and next steps

Assumptions

SpendVendor bills (foreigntotal) in the period, direct-material vendors only. Indirect vendors (IT, facilities, tax agencies, intercompany) excluded.
RevenueInvoice + cash-sale item lines, subsidiaries 1–3, attributed to the item's preferred vendor. Multi-source items therefore credit Hestra and Flexsteel even where Apparel Co and Broyhill fulfilled the POs. 27 invoices ($681,677) memo'd "TEST — Copper Software" with no location excluded; a further ~$36K of kit and unattributed revenue is not assigned to any vendor.
Recovery timesIndustry norms, not measured: mattresses and casegoods 6–9 months; apparel and leather 3–6; beauty 2–4; standard components 2–3.
GeographyRecorded vendor billing city. Where city and state contradict (Lotion Co "Eden Prairie, AZ"; Core4 "Eden Prairie, AZ"; Crown "New Bremen, CO"), the score reflects the more plausible location.
Time-to-impact365 × on-hand ÷ 12-month sold units, aggregated by vendor. SKU-level cover varies widely; matrix children inherit their parent's vendor.

Data gaps

GapEffect on this assessment
No Tier-2 visibilityCountry of manufacture, sub-suppliers, and tariff exposure of Bedline, Broyhill and Generation N goods are unknown. The geopolitical axis is assumption-driven.
Synthetic delivery timestamps373 of 378 received POs have identical PO and receipt dates; expectedreceiptdate is mostly null; item.leadtime is removed in this release; itemvendor.predicteddays is empty. The delivery axis is directional only.
Dormant sitesOnly 5 of 15 locations hold stock. 3PL (14) and FBA (15) show no activity — either dormant or not transacted in NetSuite.
Vendor master qualityContradictory city/state pairs on at least four vendors; no capacity, contract, financial-health or ownership data.
Bills ≠ POsGeneration N billed $563K against $187K of POs; The Apparel Co and Bedline reconcile within 2%. The gap is unexplained.
Demo-ledger artefactsMonthly "Beg Balance" journals inflate GL revenue; this analysis uses transaction lines, not the GL, and is unaffected.

Next steps

  1. Approve actions #1–#4 (data and configuration). Saved searches, an OTIF Suitelet, and itemvendor updates can be drafted with dry-runs for approval.
  2. Issue a supplier questionnaire to Bedline, Broyhill and Generation N: manufacturing location, sub-tier sourcing, business-continuity plan, capacity headroom. This converts the Tier-2 gap into data within one quarter.
  3. Re-run this heatmap in 90 days. Once real receipt dates exist, the likelihood axis becomes evidence-based and the 40% delivery weight can rise to 50%.
Appendix A

Source queries

All figures derive from the SuiteQL below, run against the production account on 16 September 2026. Period bounds: 2025-09-01 ≤ trandate < 2026-09-01. Queries follow the account's house style: tl.subsidiary <> 4 excludes the elimination subsidiary; mainline = 'F' AND taxline = 'F' isolates item lines; amounts are wrapped in ABS().

A1 · Vendor master with billing geography 94 rows
SELECT v.id, v.entityid, v.companyname, v.isinactive, BUILTIN.DF(v.category) AS category,
       v.subsidiary, v.terms, ea.country, ea.state, ea.city
FROM vendor v
LEFT JOIN entityaddress ea ON ea.nkey = v.defaultbillingaddress
ORDER BY v.entityid
A2 · Spend by vendor — bills and purchase orders 42 rows
SELECT t.entity AS vendor_id, t.type, COUNT(DISTINCT t.id) AS txn_count,
       ROUND(SUM(t.foreigntotal), 2) AS total
FROM transaction t
WHERE t.type IN ('VendBill', 'PurchOrd')
  AND t.trandate >= TO_DATE('2025-09-01', 'YYYY-MM-DD')
  AND t.trandate <  TO_DATE('2026-09-01', 'YYYY-MM-DD')
GROUP BY t.entity, t.type
ORDER BY t.type, SUM(t.foreigntotal) DESC
A3 · Item–vendor sourcing map 362 rows
SELECT iv.item, i.itemid, i.itemtype, i.class, i.matrixtype, i.parent,
       iv.vendor, v.entityid AS vendor_name, iv.preferredvendor, iv.subsidiary, iv.purchaseprice
FROM itemvendor iv
JOIN item   i ON i.id = iv.item
JOIN vendor v ON v.id = iv.vendor
WHERE i.isinactive = 'F'
ORDER BY iv.item, iv.vendor
A4 · Actual purchasing by vendor × item 235 rows
SELECT t.entity AS vendor_id, tl.item, i.itemid, i.itemtype, i.class,
       COALESCE(i.parent, i.id) AS family,
       COUNT(DISTINCT t.id) AS po_count, ROUND(SUM(ABS(tl.netamount)), 2) AS po_amount,
       SUM(ABS(tl.quantity)) AS qty, COUNT(DISTINCT tl.location) AS n_locations
FROM transaction t
JOIN transactionline tl ON tl.transaction = t.id AND tl.mainline = 'F' AND tl.taxline = 'F'
JOIN item i ON i.id = tl.item
WHERE t.type = 'PurchOrd'
  AND t.trandate >= TO_DATE('2025-09-01', 'YYYY-MM-DD')
  AND t.trandate <  TO_DATE('2026-09-01', 'YYYY-MM-DD')
GROUP BY t.entity, tl.item, i.itemid, i.itemtype, i.class, COALESCE(i.parent, i.id)
ORDER BY SUM(ABS(tl.netamount)) DESC
A5 · Delivery performance inputs (reduced in a sandboxed worker) 4,083 PO lines · 727 receipt links
-- PO lines
SELECT t.id AS po_id, t.entity AS vendor_id, t.trandate AS po_date, t.duedate AS po_due, t.status,
       tl.uniquekey AS lk, tl.item, ABS(tl.quantity) AS qty, tl.quantityshiprecv AS qty_recv,
       tl.expectedreceiptdate AS exp_date, tl.location
FROM transaction t
JOIN transactionline tl ON tl.transaction = t.id AND tl.mainline = 'F' AND tl.taxline = 'F'
WHERE t.type = 'PurchOrd' AND tl.item IS NOT NULL
  AND t.trandate >= TO_DATE('2025-09-01', 'YYYY-MM-DD')
  AND t.trandate <  TO_DATE('2026-09-01', 'YYYY-MM-DD');

-- PO → item receipt links (nexttransactionlink is empty in this account)
SELECT DISTINCT l.previousdoc AS po_id, l.nextdoc AS rcpt_id, r.trandate AS rcpt_date, r.entity AS vendor_id
FROM nexttransactionlinelink l
JOIN transaction r ON r.id = l.nextdoc
WHERE r.type = 'ItemRcpt' AND l.linktype IN ('ShipRcpt', 'PickPack', 'OrdBill');

-- Reducer: per vendor — lead time = PO date → last receipt; on-time = last receipt ≤ due date;
-- fill = Σ qty_recv ÷ Σ qty; open past-due = unlinked POs with due < today.
A6 · Revenue attribution to preferred vendor 131 items sold
SELECT tl.item, i.itemid, i.itemtype, i.class, COALESCE(i.parent, i.id) AS family,
       ROUND(SUM(ABS(tl.netamount)), 2) AS revenue, SUM(ABS(tl.quantity)) AS qty,
       COUNT(DISTINCT t.entity) AS n_customers
FROM transaction t
JOIN transactionline tl ON tl.transaction = t.id AND tl.mainline = 'F' AND tl.taxline = 'F'
JOIN item i ON i.id = tl.item
WHERE t.type IN ('CustInvc', 'CashSale') AND tl.subsidiary <> 4
  AND t.trandate >= TO_DATE('2025-09-01', 'YYYY-MM-DD')
  AND t.trandate <  TO_DATE('2026-09-01', 'YYYY-MM-DD')
GROUP BY tl.item, i.itemid, i.itemtype, i.class, COALESCE(i.parent, i.id)
-- joined in-worker to itemvendor (preferredvendor = 'T', subsidiary = 2), itemmember (kits) and A4
A7 · Revenue by site, customer concentration, inventory cover 8 · 101 · 556 rows
-- Revenue by fulfilment location
SELECT tl.location, loc.name AS loc_name, tl.subsidiary, t.type,
       ROUND(SUM(ABS(tl.netamount)), 2) AS revenue, COUNT(DISTINCT t.id) AS txns,
       COUNT(DISTINCT t.entity) AS customers
FROM transaction t
JOIN transactionline tl ON tl.transaction = t.id AND tl.mainline = 'F' AND tl.taxline = 'F'
LEFT JOIN location loc ON loc.id = tl.location
WHERE t.type IN ('CustInvc', 'CashSale') AND tl.subsidiary <> 4 AND tl.item IS NOT NULL
  AND t.trandate >= TO_DATE('2025-09-01', 'YYYY-MM-DD')
  AND t.trandate <  TO_DATE('2026-09-01', 'YYYY-MM-DD')
GROUP BY tl.location, loc.name, tl.subsidiary, t.type;

-- On-hand by item × location (value column is onhandvaluemli in this account)
SELECT il.item, i.itemid, il.location, il.quantityonhand, il.quantityavailable,
       il.onhandvaluemli, il.quantityonorder, il.reorderpoint, il.preferredstocklevel
FROM inventoryitemlocations il
JOIN item i ON i.id = il.item
WHERE il.quantityonhand > 0
A8 · Inbound lanes — receipts by vendor into each site 46 rows
SELECT v.entityid AS vendor, tl.location, loc.name AS loc_name,
       COUNT(DISTINCT t.id) AS receipts, SUM(ABS(tl.quantity)) AS qty
FROM transaction t
JOIN transactionline tl ON tl.transaction = t.id AND tl.mainline = 'F' AND tl.taxline = 'F' AND tl.item IS NOT NULL
JOIN vendor v ON v.id = t.entity
LEFT JOIN location loc ON loc.id = tl.location
WHERE t.type = 'ItemRcpt'
  AND t.trandate >= TO_DATE('2025-09-01', 'YYYY-MM-DD')
  AND t.trandate <  TO_DATE('2026-09-01', 'YYYY-MM-DD')
GROUP BY v.entityid, tl.location, loc.name
ORDER BY v.entityid, tl.location
A9 · Transfer-order lanes 9 rows
SELECT tl.location AS from_loc, t.transferlocation AS to_loc,
       COUNT(DISTINCT t.id) AS orders, SUM(ABS(tl.quantity)) AS qty
FROM transaction t
JOIN transactionline tl ON tl.transaction = t.id AND tl.mainline = 'F' AND tl.taxline = 'F' AND tl.item IS NOT NULL
WHERE t.type = 'TrnfrOrd'
GROUP BY tl.location, t.transferlocation
ORDER BY COUNT(DISTINCT t.id) DESC
A10 · Manufacturing footprint — work orders by assembly and site 7 rows
SELECT tl.item, i.itemid, tl.location, loc.name AS loc_name,
       COUNT(DISTINCT t.id) AS work_orders, SUM(ABS(tl.quantity)) AS qty,
       MIN(t.trandate) AS first_wo, MAX(t.trandate) AS last_wo
FROM transaction t
JOIN transactionline tl ON tl.transaction = t.id AND tl.mainline = 'T'
JOIN item i ON i.id = tl.item
LEFT JOIN location loc ON loc.id = tl.location
WHERE t.type = 'WorkOrd'
GROUP BY tl.item, i.itemid, tl.location, loc.name
ORDER BY COUNT(DISTINCT t.id) DESC
A11 · Bill of materials (Advanced BOM) 28 rows
SELECT b.id AS bom_id, b.name AS bom_name, brc.item AS component, c.itemid AS component_name,
       c.itemtype, brc.quantity AS qty_per
FROM bom b
JOIN bomrevision          br  ON br.billofmaterials = b.id
JOIN bomrevisioncomponent brc ON brc.bomrevision = br.id
JOIN item c ON c.id = brc.item
ORDER BY b.name, c.itemid
A12 · Vendor coverage of every BOM component (verification) 26 rows
SELECT c.id, c.itemid, c.itemtype,
       (SELECT COUNT(DISTINCT iv.vendor) FROM itemvendor iv WHERE iv.item = c.id) AS n_vendors,
       (SELECT MIN(v.entityid) FROM itemvendor iv JOIN vendor v ON v.id = iv.vendor WHERE iv.item = c.id) AS a_vendor
FROM item c
WHERE c.id IN (SELECT brc.item FROM bomrevisioncomponent brc)
ORDER BY n_vendors, c.itemid
A13 · Open and past-due purchase orders today 7 rows
SELECT v.entityid AS vendor, t.status, COUNT(DISTINCT t.id) AS pos,
       ROUND(SUM(ABS(t.foreigntotal)), 2) AS value,
       SUM(CASE WHEN t.duedate < TRUNC(SYSDATE) THEN 1 ELSE 0 END) AS past_due
FROM transaction t
JOIN vendor v ON v.id = t.entity
WHERE t.type = 'PurchOrd' AND t.status IN ('A', 'B', 'E')
GROUP BY v.entityid, t.status
ORDER BY SUM(ABS(t.foreigntotal)) DESC
A14 · Identification of the excluded no-location revenue 2 rows
SELECT t.type, i.itemtype, COUNT(DISTINCT t.id) AS txns, COUNT(*) AS lines,
       ROUND(SUM(ABS(tl.netamount)), 2) AS revenue, MIN(t.tranid) AS sample_tranid, MIN(t.memo) AS sample_memo
FROM transaction t
JOIN transactionline tl ON tl.transaction = t.id AND tl.mainline = 'F' AND tl.taxline = 'F'
JOIN item i ON i.id = tl.item
WHERE t.type IN ('CustInvc', 'CashSale') AND tl.subsidiary <> 4 AND tl.location IS NULL
  AND t.trandate >= TO_DATE('2025-09-01', 'YYYY-MM-DD')
  AND t.trandate <  TO_DATE('2026-09-01', 'YYYY-MM-DD')
GROUP BY t.type, i.itemtype
-- → 27 invoices, $681,677, memo "TEST — Copper Software" (Service items): excluded

Key derived figures

FigureValueDerivation
Direct-material spend$1,506,176A2 — sum of VendBill totals for the 16 vendors with item-vendor records or PO lines
Bay Area share of spend75.3%Generation N + Bedline + Broyhill + Hestra + Flexsteel = $1,134,859
Product revenue$1,155,877A7 total $1,837,554 − A14 test invoices $681,677
Single-source revenue$689,188 (59.6%)A6 — 53 items with exactly one vendor across A3 and A4
Revenue via LA DC$623,882 (54.0%)A7, location 5
Inventory in California$661,247 (59.2%)A7 — locations 1 and 5 of $1,116,806 total
POs analysed / linked to receipts378 / 373A5
Customer concentrationtop 10 = 58.2%A7 — 101 customers; top 1 = 8.3%, top 5 = 34.4%, top 20 = 84.8%
Appendix B

Verification log

Claims that were tested against the account after the initial analysis, and what changed.

Initial claimVerification (query A12)Disposition
"Seven BOM components (SPK001, TYR001, ELC001, FRM100, HDW001/002, BHB001) have no vendor at all."All 24 purchased components have exactly one vendor: Johnson Supply 14, Crown Equipment 7, Core4Solutions 3. The initial reading came from a truncated result set.Corrected — exposure is 100% single-sourced, not unsourced
"FRM001 is supplied by Johnson Supply."FRM001 is Crown Equipment; RIM001, NUT001, TYR001, SPK001 are Johnson Supply.Corrected
"$683K of revenue has no fulfilment location."27 service invoices memo'd "TEST — Copper Software" plus one $1K item line. Not product flow.Excluded from product revenue
Lead time is zero for nearly all vendors.373 of 378 received POs share PO and receipt dates; only Johnson Supply (2 days) and Core4 (1 day) differ. One Bedline receipt precedes its PO by 31 days.Confirmed — treated as a data gap, not performance