{"kind":"demo-sample-data-package","version":"wave-1","sourceDemo":{"slug":"roofing-estimator","title":"Roofing Estimator","archetype":"A3","canonicalPath":"/demo-library/roofing-estimator","appPath":"/demo-apps/roofing-estimator","subdomain":"roofing-estimator.ideas-realized.com"},"package":{"headline":"RidgeQuote sample data package","summary":"RidgeQuote 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":"RidgeQuote","tenantName":"Northline Roofing Co.","productionDomain":"roofing-estimator.ideas-realized.com","canonicalPage":"/demo-library/roofing-estimator","previewScreen":{"id":"proposal","label":"Proposal","proof":"proposal package and estimate margin proof","url":"https://roofing-estimator.ideas-realized.com?screen=proposal"},"cutoverStrategy":"Load a controlled roof-system price book, validate markup math with the sales manager, then let reps build review-ready estimates while proposal export remains template-based.","privacyNote":"Customer financing, insurance claim details, and signed proposal files should wait until secure storage and e-sign handoff are configured.","counts":{"templateCount":2,"sampleRowCount":4,"sourceCount":3,"mappedFieldCount":10,"requiredFieldCount":9,"validationGateCount":3,"acceptanceCheckCount":10},"sources":[{"name":"Price book","system":"Estimator spreadsheet, supplier sheet, or existing quoting tool export","owner":"Estimator lead","cadence":"Initial import plus monthly material update","status":"ready","recordEstimate":"80 to 400 material and labor rows","fieldCount":4,"requiredFieldCount":4,"fields":[{"sourceField":"item_code","targetField":"PriceBookItem.code","required":true,"transform":"Uppercase and preserve supplier prefixes.","validation":"Item code must be unique."},{"sourceField":"item_name","targetField":"PriceBookItem.name","required":true,"transform":"Trim and remove internal-only shorthand after review.","validation":"Name required for proposal line item."},{"sourceField":"unit_cost","targetField":"PriceBookItem.unitCost","required":true,"transform":"Parse currency to decimal.","validation":"Zero or negative cost requires approval."},{"sourceField":"default_markup","targetField":"PriceBookItem.defaultMarkup","required":true,"transform":"Parse percent or decimal markup.","validation":"Markup outside approved range blocks import."}]},{"name":"Estimate templates","system":"Sales spreadsheet or proposal template","owner":"Sales manager","cadence":"One import per pilot package","status":"template","recordEstimate":"5 to 20 scope templates","fieldCount":3,"requiredFieldCount":2,"fields":[{"sourceField":"template_name","targetField":"EstimateTemplate.name","required":true,"transform":"Trim and map roof-system labels.","validation":"Template name required."},{"sourceField":"scope_category","targetField":"EstimateTemplate.scopeCategory","required":true,"transform":"Map repair, replacement, inspection, gutter, ventilation.","validation":"Unknown scope categories import as needs-review."},{"sourceField":"required_approval","targetField":"EstimateTemplate.approvalRule","required":false,"transform":"Map margin, discount, financing, manager-review.","validation":"Blank rules default to margin guardrail."}]},{"name":"Proposal content","system":"Branded proposal document or PDF copy deck","owner":"Operations lead","cadence":"One-time setup before customer handoff","status":"needs-client","recordEstimate":"8 to 25 proposal sections","fieldCount":3,"requiredFieldCount":3,"fields":[{"sourceField":"section_title","targetField":"ProposalSection.title","required":true,"transform":"Trim and preserve brand language.","validation":"Title required."},{"sourceField":"section_body","targetField":"ProposalSection.body","required":true,"transform":"Convert to plain text or approved rich-text block.","validation":"Readable body required before PDF export."},{"sourceField":"visibility","targetField":"ProposalSection.visibility","required":true,"transform":"Map internal-only, customer-facing, optional.","validation":"Internal-only sections cannot appear in customer proposal."}]}],"templates":[{"id":"price-book-import","label":"Price book import","fileName":"roofing-estimator-price-book.csv","downloadPath":"/demo-library/roofing-estimator/import-templates/price-book-import","sourceSystem":"Vendor price sheet or estimating spreadsheet","owner":"Sales manager","cadence":"Initial load, then monthly vendor review","description":"Seeds material, labor, warranty, and fee lines with margin review flags.","columnCount":7,"requiredColumnCount":6,"sampleRowCount":2,"columns":[{"name":"item_id","required":true,"description":"Stable price book identifier.","example":"MAT-ARCH-30"},{"name":"category","required":true,"description":"Price book category.","example":"Materials"},{"name":"item_name","required":true,"description":"Estimator-facing item name.","example":"Architectural shingle bundle"},{"name":"unit","required":true,"description":"Unit of measure.","example":"bundle"},{"name":"base_cost","required":true,"description":"Current vendor or internal cost.","example":"38.25"},{"name":"sell_rate","required":true,"description":"Customer-facing sell rate.","example":"55.00"},{"name":"last_reviewed","required":false,"description":"Last price review date.","example":"2026-06-15"}],"sampleRows":[{"item_id":"MAT-ARCH-30","category":"Materials","item_name":"Architectural shingle bundle","unit":"bundle","base_cost":"38.25","sell_rate":"55.00","last_reviewed":"2026-06-15"},{"item_id":"LAB-TEAR-01","category":"Labor","item_name":"Tear-off labor","unit":"square","base_cost":"74.00","sell_rate":"118.00","last_reviewed":"2026-06-10"}],"csvPreview":"item_id,category,item_name,unit,base_cost,sell_rate,last_reviewed\r\nMAT-ARCH-30,Materials,Architectural shingle bundle,bundle,38.25,55.00,2026-06-15\r\nLAB-TEAR-01,Labor,Tear-off labor,square,74.00,118.00,2026-06-10","acceptanceChecks":["base_cost and sell_rate parse as currency values.","Stale vendor costs are flagged before proposal export.","Category values map to estimator calculator sections."]},{"id":"estimate-pipeline","label":"Estimate pipeline import","fileName":"roofing-estimator-estimate-pipeline.csv","downloadPath":"/demo-library/roofing-estimator/import-templates/estimate-pipeline","sourceSystem":"CRM opportunity export or estimate spreadsheet","owner":"Estimator lead","cadence":"Weekly pilot import","description":"Creates active estimate records, stage state, project type, and margin approval context.","columnCount":6,"requiredColumnCount":5,"sampleRowCount":2,"columns":[{"name":"estimate_id","required":true,"description":"Stable estimate identifier.","example":"EST-2026-144"},{"name":"client","required":true,"description":"Customer or project owner.","example":"Cedar Ridge HOA"},{"name":"project_type","required":true,"description":"Roofing project category.","example":"Full replacement"},{"name":"stage","required":true,"description":"Estimate workflow stage.","example":"Review"},{"name":"target_margin","required":true,"description":"Approved target margin percent.","example":"38"},{"name":"proposal_due","required":false,"description":"Proposal due date.","example":"2026-07-06"}],"sampleRows":[{"estimate_id":"EST-2026-144","client":"Cedar Ridge HOA","project_type":"Full replacement","stage":"Review","target_margin":"38","proposal_due":"2026-07-06"},{"estimate_id":"EST-2026-151","client":"Westline Retail Center","project_type":"Repair and coating","stage":"Draft","target_margin":"34","proposal_due":"2026-07-09"}],"csvPreview":"estimate_id,client,project_type,stage,target_margin,proposal_due\r\nEST-2026-144,Cedar Ridge HOA,Full replacement,Review,38,2026-07-06\r\nEST-2026-151,Westline Retail Center,Repair and coating,Draft,34,2026-07-09","acceptanceChecks":["Stage values map to the proposal workflow.","Target margin is approved by the buyer before margin gates are enabled.","CRM opportunity identifiers are retained outside customer-facing proposal exports."]}],"validationGates":[{"label":"Margin math acceptance","severity":"blocking","detail":"Estimate totals cannot be trusted until cost, markup, discount, and tax rules are approved.","resolution":"Sales manager signs off on three representative estimates."},{"label":"Proposal copy approval","severity":"warning","detail":"Customer-facing sections need brand and legal review before PDF export.","resolution":"Mark proposal sections as template until customer packet copy is approved."},{"label":"CRM handoff rule","severity":"info","detail":"The pilot can export estimate status before direct CRM sync.","resolution":"Choose CSV, HubSpot, JobNimbus, AccuLynx, or no-sync for phase one."}],"acceptanceChecklist":["Price book import: base_cost and sell_rate parse as currency values.","Price book import: Stale vendor costs are flagged before proposal export.","Price book import: Category values map to estimator calculator sections.","Estimate pipeline import: Stage values map to the proposal workflow.","Estimate pipeline import: Target margin is approved by the buyer before margin gates are enabled.","Estimate pipeline import: CRM opportunity identifiers are retained outside customer-facing proposal exports.","Margin math acceptance: Sales manager signs off on three representative estimates.","Proposal copy approval: Mark proposal sections as template until customer packet copy is approved.","CRM handoff rule: Choose CSV, HubSpot, JobNimbus, AccuLynx, or no-sync for phase one.","Open Proposal after dry import and verify proposal package and estimate margin proof."],"handoffRoutes":[{"label":"Sample data package","href":"/demo-library/roofing-estimator/sample-data-package","detail":"Markdown handoff with CSV templates, seed rows, validation gates, and cutover notes."},{"label":"Sample data package JSON","href":"/demo-library/roofing-estimator/sample-data-package.json","detail":"Machine-readable sample-data manifest for implementation automation."},{"label":"Production data contract JSON","href":"/demo-library/roofing-estimator/data-contract.json","detail":"Entity, source, event, API-shaped route, and boundary contract for production planning."},{"label":"Implementation JSON","href":"/demo-library/roofing-estimator/implementation.json","detail":"Full setup spec with routes, productization fields, tenant defaults, and security notes."},{"label":"Implementation intake","href":"/implementation-intake/roofing-estimator-implementation-intake","detail":"Buyer source-system, domain, access, and asset collection workflow."},{"label":"Live app proof screen","href":"https://roofing-estimator.ideas-realized.com?screen=proposal","detail":"Proposal: proposal package and estimate margin proof"}]},"implementationManifest":{"markdownPath":"/demo-library/roofing-estimator/sample-data-package","jsonPath":"/demo-library/roofing-estimator/sample-data-package.json","importTemplatePaths":["/demo-library/roofing-estimator/import-templates/price-book-import","/demo-library/roofing-estimator/import-templates/estimate-pipeline"],"dataContractJsonPath":"/demo-library/roofing-estimator/data-contract.json","implementationSpecPath":"/demo-library/roofing-estimator/implementation.json","tenantClonePackageJsonPath":"/demo-library/roofing-estimator/tenant-clone-package.json","firstProofUrl":"https://roofing-estimator.ideas-realized.com?screen=proposal","firstProofScreen":"proposal"}}