# RidgeQuote sample data package

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.

Product: RidgeQuote
Tenant: Northline Roofing Co.
Production domain: roofing-estimator.ideas-realized.com
Canonical page: /demo-library/roofing-estimator
Preview screen: Proposal (proposal) - proposal package and estimate margin proof
Preview URL: https://roofing-estimator.ideas-realized.com?screen=proposal
JSON manifest: /demo-library/roofing-estimator/sample-data-package.json

## Counts
- CSV templates: 2
- Sample rows: 4
- Source groups: 3
- Mapped fields: 10
- Required fields: 9
- Validation gates: 3
- Acceptance checks: 10

## Cutover
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.

## Privacy Note
Customer financing, insurance claim details, and signed proposal files should wait until secure storage and e-sign handoff are configured.

## Source Maps

### 1. Price book
System: Estimator spreadsheet, supplier sheet, or existing quoting tool export
Owner: Estimator lead
Cadence: Initial import plus monthly material update
Status: ready
Records: 80 to 400 material and labor rows

| Source field | Target field | Required | Validation |
| --- | --- | --- | --- |
| item_code | PriceBookItem.code | Yes | Item code must be unique. |
| item_name | PriceBookItem.name | Yes | Name required for proposal line item. |
| unit_cost | PriceBookItem.unitCost | Yes | Zero or negative cost requires approval. |
| default_markup | PriceBookItem.defaultMarkup | Yes | Markup outside approved range blocks import. |

### 2. Estimate templates
System: Sales spreadsheet or proposal template
Owner: Sales manager
Cadence: One import per pilot package
Status: template
Records: 5 to 20 scope templates

| Source field | Target field | Required | Validation |
| --- | --- | --- | --- |
| template_name | EstimateTemplate.name | Yes | Template name required. |
| scope_category | EstimateTemplate.scopeCategory | Yes | Unknown scope categories import as needs-review. |
| required_approval | EstimateTemplate.approvalRule | No | Blank rules default to margin guardrail. |

### 3. Proposal content
System: Branded proposal document or PDF copy deck
Owner: Operations lead
Cadence: One-time setup before customer handoff
Status: needs-client
Records: 8 to 25 proposal sections

| Source field | Target field | Required | Validation |
| --- | --- | --- | --- |
| section_title | ProposalSection.title | Yes | Title required. |
| section_body | ProposalSection.body | Yes | Readable body required before PDF export. |
| visibility | ProposalSection.visibility | Yes | Internal-only sections cannot appear in customer proposal. |

## CSV Templates

### 1. Price book import
Download: /demo-library/roofing-estimator/import-templates/price-book-import
File: roofing-estimator-price-book.csv
Source system: Vendor price sheet or estimating spreadsheet
Owner: Sales manager
Cadence: Initial load, then monthly vendor review

Seeds material, labor, warranty, and fee lines with margin review flags.

| Column | Required | Example | Description |
| --- | --- | --- | --- |
| item_id | Yes | MAT-ARCH-30 | Stable price book identifier. |
| category | Yes | Materials | Price book category. |
| item_name | Yes | Architectural shingle bundle | Estimator-facing item name. |
| unit | Yes | bundle | Unit of measure. |
| base_cost | Yes | 38.25 | Current vendor or internal cost. |
| sell_rate | Yes | 55.00 | Customer-facing sell rate. |
| last_reviewed | No | 2026-06-15 | Last price review date. |

Sample rows:
| item_id |category |item_name |unit |base_cost |sell_rate |last_reviewed |
| --- |--- |--- |--- |--- |--- |--- |
| MAT-ARCH-30 |Materials |Architectural shingle bundle |bundle |38.25 |55.00 |2026-06-15 |
| LAB-TEAR-01 |Labor |Tear-off labor |square |74.00 |118.00 |2026-06-10 |

Acceptance checks:
- base_cost and sell_rate parse as currency values.
- Stale vendor costs are flagged before proposal export.
- Category values map to estimator calculator sections.

### 2. Estimate pipeline import
Download: /demo-library/roofing-estimator/import-templates/estimate-pipeline
File: roofing-estimator-estimate-pipeline.csv
Source system: CRM opportunity export or estimate spreadsheet
Owner: Estimator lead
Cadence: Weekly pilot import

Creates active estimate records, stage state, project type, and margin approval context.

| Column | Required | Example | Description |
| --- | --- | --- | --- |
| estimate_id | Yes | EST-2026-144 | Stable estimate identifier. |
| client | Yes | Cedar Ridge HOA | Customer or project owner. |
| project_type | Yes | Full replacement | Roofing project category. |
| stage | Yes | Review | Estimate workflow stage. |
| target_margin | Yes | 38 | Approved target margin percent. |
| proposal_due | No | 2026-07-06 | Proposal due date. |

Sample rows:
| estimate_id |client |project_type |stage |target_margin |proposal_due |
| --- |--- |--- |--- |--- |--- |
| EST-2026-144 |Cedar Ridge HOA |Full replacement |Review |38 |2026-07-06 |
| EST-2026-151 |Westline Retail Center |Repair and coating |Draft |34 |2026-07-09 |

Acceptance checks:
- 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.

## Validation Gates
- Margin math acceptance (blocking): Estimate totals cannot be trusted until cost, markup, discount, and tax rules are approved. Resolution: Sales manager signs off on three representative estimates.
- Proposal copy approval (warning): Customer-facing sections need brand and legal review before PDF export. Resolution: Mark proposal sections as template until customer packet copy is approved.
- CRM handoff rule (info): The pilot can export estimate status before direct CRM sync. Resolution: Choose CSV, HubSpot, JobNimbus, AccuLynx, or no-sync for phase one.

## Acceptance Checklist
- 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.

## Handoff Routes
- Sample data package: /demo-library/roofing-estimator/sample-data-package - Markdown handoff with CSV templates, seed rows, validation gates, and cutover notes.
- Sample data package JSON: /demo-library/roofing-estimator/sample-data-package.json - Machine-readable sample-data manifest for implementation automation.
- Production data contract JSON: /demo-library/roofing-estimator/data-contract.json - Entity, source, event, API-shaped route, and boundary contract for production planning.
- Implementation JSON: /demo-library/roofing-estimator/implementation.json - Full setup spec with routes, productization fields, tenant defaults, and security notes.
- Implementation intake: /implementation-intake/roofing-estimator-implementation-intake - Buyer source-system, domain, access, and asset collection workflow.
- Live app proof screen: https://roofing-estimator.ideas-realized.com?screen=proposal - Proposal: proposal package and estimate margin proof