{"kind":"demo-sample-data-package","version":"wave-1","sourceDemo":{"slug":"plumbing-supply","title":"Plumbing Supply Inventory","archetype":"A1","canonicalPath":"/demo-library/plumbing-supply","appPath":"/demo-apps/plumbing-supply","subdomain":"plumbing-supply.ideas-realized.com"},"package":{"headline":"PipeStock Pro sample data package","summary":"PipeStock Pro has 2 buyer-ready CSV template(s), 3 mapped source group(s), and 10 checks for moving from seeded demo data to a first tenant dry import.","productName":"PipeStock Pro","tenantName":"Riverbend Plumbing Supply","productionDomain":"plumbing-supply.ideas-realized.com","canonicalPage":"/demo-library/plumbing-supply","previewScreen":{"id":"ops","label":"Branch ops board","proof":"branch command center and counter inventory control","url":"https://plumbing-supply.ideas-realized.com?screen=ops"},"cutoverStrategy":"Run a read-only SKU import, validate bin and on-hand values with counter staff, then enable receiving and will-call status updates for the pilot category.","privacyNote":"Customer-specific pricing and margin fields should stay out of the first import unless role permissions and audit history are approved.","counts":{"templateCount":2,"sampleRowCount":4,"sourceCount":3,"mappedFieldCount":10,"requiredFieldCount":8,"validationGateCount":3,"acceptanceCheckCount":10},"sources":[{"name":"SKU master","system":"ERP item export or branch inventory spreadsheet","owner":"Branch operations manager","cadence":"Nightly CSV during pilot","status":"ready","recordEstimate":"250 to 1,500 SKU records","fieldCount":4,"requiredFieldCount":4,"fields":[{"sourceField":"sku","targetField":"Product.sku","required":true,"transform":"Uppercase and preserve manufacturer prefixes.","validation":"SKU must be unique inside branch and category."},{"sourceField":"description","targetField":"Product.description","required":true,"transform":"Trim extra whitespace and remove internal-only shorthand after review.","validation":"Description required for counter search."},{"sourceField":"bin_location","targetField":"InventoryLocation.bin","required":true,"transform":"Normalize aisle, rack, shelf, and bin format.","validation":"Missing bin imports as counter-blocking exception."},{"sourceField":"on_hand","targetField":"InventoryBalance.onHand","required":true,"transform":"Parse integer quantity.","validation":"Negative quantities require branch manager review."}]},{"name":"Supplier and reorder file","system":"ERP purchasing export","owner":"Purchasing lead","cadence":"Weekly refresh","status":"template","recordEstimate":"100 to 800 supplier/SKU rows","fieldCount":3,"requiredFieldCount":1,"fields":[{"sourceField":"supplier_name","targetField":"Supplier.name","required":true,"transform":"Map aliases to approved supplier list.","validation":"Unknown suppliers import as needs-review."},{"sourceField":"reorder_point","targetField":"Product.reorderPoint","required":false,"transform":"Parse integer quantity.","validation":"Blank values trigger low-stock rule review."},{"sourceField":"lead_time_days","targetField":"Supplier.leadTimeDays","required":false,"transform":"Parse integer days.","validation":"Lead times above threshold require buyer confirmation."}]},{"name":"Will-call queue","system":"Counter order export or inside sales spreadsheet","owner":"Inside sales lead","cadence":"Daily during branch pilot","status":"needs-client","recordEstimate":"20 to 90 open will-call orders","fieldCount":3,"requiredFieldCount":3,"fields":[{"sourceField":"order_number","targetField":"WillCall.orderNumber","required":true,"transform":"Preserve leading zeros.","validation":"Order number must be unique per branch."},{"sourceField":"sku","targetField":"WillCallLine.productId","required":true,"transform":"Match SKU master import.","validation":"SKU must exist in current pilot category."},{"sourceField":"status","targetField":"WillCall.status","required":true,"transform":"Map ready, hold, missing, picked, cancelled.","validation":"Missing status imports as hold."}]}],"templates":[{"id":"sku-catalog","label":"SKU catalog import","fileName":"plumbing-supply-sku-catalog.csv","downloadPath":"/demo-library/plumbing-supply/import-templates/sku-catalog","sourceSystem":"ERP item export or branch inventory spreadsheet","owner":"Branch operations lead","cadence":"Initial branch load, then nightly export during pilot","description":"Loads searchable products, stock thresholds, pick locations, supplier labels, and counter pricing.","columnCount":8,"requiredColumnCount":7,"sampleRowCount":2,"columns":[{"name":"sku","required":true,"description":"Primary SKU or item number.","example":"PEX-ELB-075"},{"name":"item_name","required":true,"description":"Counter-facing item name.","example":"3/4 in PEX elbow"},{"name":"category","required":true,"description":"Product category for filtering.","example":"PEX fittings"},{"name":"supplier","required":true,"description":"Primary supplier name.","example":"AquaLine Supply"},{"name":"bin_location","required":true,"description":"Primary warehouse or counter slot.","example":"B-08-04"},{"name":"on_hand","required":true,"description":"Current available quantity.","example":"42"},{"name":"reorder_point","required":true,"description":"Low-stock threshold.","example":"24"},{"name":"unit_price","required":false,"description":"Counter sale price.","example":"3.48"}],"sampleRows":[{"sku":"PEX-ELB-075","item_name":"3/4 in PEX elbow","category":"PEX fittings","supplier":"AquaLine Supply","bin_location":"B-08-04","on_hand":"42","reorder_point":"24","unit_price":"3.48"},{"sku":"VAL-BRS-100","item_name":"1 in brass ball valve","category":"Valves","supplier":"BrassWorks","bin_location":"A-14-02","on_hand":"11","reorder_point":"18","unit_price":"28.90"}],"csvPreview":"sku,item_name,category,supplier,bin_location,on_hand,reorder_point,unit_price\r\nPEX-ELB-075,3/4 in PEX elbow,PEX fittings,AquaLine Supply,B-08-04,42,24,3.48\r\nVAL-BRS-100,1 in brass ball valve,Valves,BrassWorks,A-14-02,11,18,28.90","acceptanceChecks":["SKU values are unique after alias normalization.","on_hand and reorder_point parse as non-negative numbers.","Bin locations match the branch pick-slot format used in the pilot."]},{"id":"receiving-open-pos","label":"Open purchase orders import","fileName":"plumbing-supply-open-purchase-orders.csv","downloadPath":"/demo-library/plumbing-supply/import-templates/receiving-open-pos","sourceSystem":"ERP purchasing export","owner":"Warehouse supervisor","cadence":"Daily during scanner acceptance testing","description":"Seeds receiving sessions, expected lines, supplier ETAs, and variance review status.","columnCount":6,"requiredColumnCount":4,"sampleRowCount":2,"columns":[{"name":"po_id","required":true,"description":"Purchase order identifier.","example":"PO-77421"},{"name":"supplier","required":true,"description":"Supplier name.","example":"AquaLine Supply"},{"name":"sku","required":true,"description":"Expected SKU from the catalog import.","example":"PEX-ELB-075"},{"name":"expected_qty","required":true,"description":"Expected received quantity.","example":"120"},{"name":"eta","required":false,"description":"Expected arrival date.","example":"2026-07-01"},{"name":"dock","required":false,"description":"Receiving dock or branch bay.","example":"Dock 2"}],"sampleRows":[{"po_id":"PO-77421","supplier":"AquaLine Supply","sku":"PEX-ELB-075","expected_qty":"120","eta":"2026-07-01","dock":"Dock 2"},{"po_id":"PO-77422","supplier":"BrassWorks","sku":"VAL-BRS-100","expected_qty":"36","eta":"2026-07-03","dock":"Dock 1"}],"csvPreview":"po_id,supplier,sku,expected_qty,eta,dock\r\nPO-77421,AquaLine Supply,PEX-ELB-075,120,2026-07-01,Dock 2\r\nPO-77422,BrassWorks,VAL-BRS-100,36,2026-07-03,Dock 1","acceptanceChecks":["Every PO line references an imported SKU.","Expected quantities are available before scanner tests begin.","Variance holds remain manager-review only until ERP posting is approved."]}],"validationGates":[{"label":"SKU and bin acceptance","severity":"blocking","detail":"Counter users cannot trust lookup until high-volume SKU and bin records are verified.","resolution":"Validate the first 50 SKUs with counter and warehouse staff."},{"label":"ERP ownership rule","severity":"blocking","detail":"The pilot must not overwrite ERP quantities without a signed integration rule.","resolution":"Run read-only imports and export exceptions until sync ownership is approved."},{"label":"Customer pricing exclusion","severity":"warning","detail":"Price-specific data increases permissions and audit scope.","resolution":"Keep customer price fields out of the first branch pilot."}],"acceptanceChecklist":["SKU catalog import: SKU values are unique after alias normalization.","SKU catalog import: on_hand and reorder_point parse as non-negative numbers.","SKU catalog import: Bin locations match the branch pick-slot format used in the pilot.","Open purchase orders import: Every PO line references an imported SKU.","Open purchase orders import: Expected quantities are available before scanner tests begin.","Open purchase orders import: Variance holds remain manager-review only until ERP posting is approved.","SKU and bin acceptance: Validate the first 50 SKUs with counter and warehouse staff.","ERP ownership rule: Run read-only imports and export exceptions until sync ownership is approved.","Customer pricing exclusion: Keep customer price fields out of the first branch pilot.","Open Branch ops board after dry import and verify branch command center and counter inventory control."],"handoffRoutes":[{"label":"Sample data package","href":"/demo-library/plumbing-supply/sample-data-package","detail":"Markdown handoff with CSV templates, seed rows, validation gates, and cutover notes."},{"label":"Sample data package JSON","href":"/demo-library/plumbing-supply/sample-data-package.json","detail":"Machine-readable sample-data manifest for implementation automation."},{"label":"Production data contract JSON","href":"/demo-library/plumbing-supply/data-contract.json","detail":"Entity, source, event, API-shaped route, and boundary contract for production planning."},{"label":"Implementation JSON","href":"/demo-library/plumbing-supply/implementation.json","detail":"Full setup spec with routes, productization fields, tenant defaults, and security notes."},{"label":"Implementation intake","href":"/implementation-intake/plumbing-supply-implementation-intake","detail":"Buyer source-system, domain, access, and asset collection workflow."},{"label":"Live app proof screen","href":"https://plumbing-supply.ideas-realized.com?screen=ops","detail":"Branch ops board: branch command center and counter inventory control"}]},"implementationManifest":{"markdownPath":"/demo-library/plumbing-supply/sample-data-package","jsonPath":"/demo-library/plumbing-supply/sample-data-package.json","importTemplatePaths":["/demo-library/plumbing-supply/import-templates/sku-catalog","/demo-library/plumbing-supply/import-templates/receiving-open-pos"],"dataContractJsonPath":"/demo-library/plumbing-supply/data-contract.json","implementationSpecPath":"/demo-library/plumbing-supply/implementation.json","tenantClonePackageJsonPath":"/demo-library/plumbing-supply/tenant-clone-package.json","firstProofUrl":"https://plumbing-supply.ideas-realized.com?screen=ops","firstProofScreen":"ops"}}