# Commercial Garage Door Cost Evidence Ledger — Data Dictionary

Version **1.1.0** · verified **17 September 2026** · Uptime Dock & Door Research.

## Scope, units and missing values

This is a selected reference compilation, not a national transaction survey. It combines one rolling-sheet seller, one sectional seller, one Hudson Valley installer, named public projects and six US BLS series. Keep those populations separate. Dollar values are nominal USD. Width and height are feet; areas are square feet. PPI values are index points, not prices. Percent changes use the stated denominator.

Empty CSV cells correspond to JSON `null` for missing numeric/user-input values, not zero. An explicitly reported or user-entered zero is different. Where an optional descriptive source field is an empty string, it also contains no reported fact. Do not convert either to a numeric zero. Booleans use `true`/`false` in CSV and native booleans in JSON. The PPI release flag preserves `yes`/`no`.

`_CALC` fields are Uptime calculations, not issuer findings. `nominal_area_sqft` is also calculated. All arithmetic uses Decimal and source inputs; rounding is only for display. Size-band upper endpoints are convenient table labels, not measurements or approval of an actual opening.

## Files and joins

The combined JSON keys below correspond exactly to the CSV files. Record IDs join model comparisons back to the price matrix. Source IDs join the driver crosswalk to the source register. An unknown door count prevents per-door division. Haaf quantity `1 LMP` is one lump-sum price, not one door.

The legacy filename `commercial-garage-door-wind-rating-premium.csv` is retained for portability; its contents are whole-model price comparisons, not measured certification premiums. It has 41 rows with 41 Model 3100 pairs and 24 populated Model 3400 pairs.

## Reuse and provenance

No blanket reuse licence is assigned. The compilation supplies factual observations, short source descriptions and Uptime calculations. Underlying source documents retain any applicable rights; no standard text, manual page, source layout or technical drawing is licensed or reproduced by these files. Publication of a local-government record does not automatically establish public-domain status. The compilation has no DOI.

## Field reference

### commercial-garage-door-price-matrix.csv
JSON key: `rolling_sheet_price_matrix` · 148 rows.

| Field | JSON type | Meaning / units / interpretation |
|---|---|---|
| `record_id` | text | Stable identifier within this compilation, not an agency or manufacturer identifier unless named. |
| `seller` | text | Company publishing the asking price or estimate. |
| `manufacturer` | text | Named manufacturer; not an affiliation with Uptime. |
| `model` | text | Named product model. |
| `model_code` | text | Model identifier used to join price cells. |
| `door_mechanism` | text | Door mechanism; rolling sheet and sectional are not interchangeable. |
| `construction` | text | Seller-listed construction for the named model. |
| `width_band` | text | Exact published width-band label. |
| `height_band` | text | Exact published height-band label. |
| `nominal_width_ft` | number | Upper endpoint of the selected source width band, feet. Not a field-measured opening. |
| `nominal_height_ft` | number | Upper endpoint of the selected source height band, feet. Not a field-measured opening. |
| `nominal_area_sqft` | number | Calculated width-band upper bound × height-band upper bound, square feet. |
| `published_price_usd` | number | Seller-reported base door-and-hardware asking price, nominal USD. |
| `wind_rating_claim` | text | Seller marketing/category claim, not independent testing or project approval. |
| `design_pressure_claim` | text | Seller-stated model pressure text, psf; retain manufacturer disagreements in rating_scope_note. |
| `price_kind` | text | Price denominator/scope, not a market average. |
| `excludes` | text | Items outside this base-price observation; project scope must be resolved separately. |
| `source_price_effective_date` | null | Seller-issued effective date, if known. All active seller entries are null; read_on is not a substitute. |
| `source_url` | text | Primary-source URL; the crosswalk uses semicolon-delimited URLs when a claim needs several sources. |
| `read_on` | text | Actual audit verification date, 2026-09-17. Retrieval may be cached or an indexed issuer extract as recorded. |
| `project_rating_verified` | boolean | Always false here: this research did not approve any configuration, installation or jurisdiction. |
| `rating_scope_note` | text | Model/size and source-disagreement limits. A price cell is not an approval drawing. |
| `manufacturer_spec_url` | null / text | Manufacturer page used to distinguish the specification from the seller claim; null if no additional page selected. |
| `geography` | text | Source/sample geography; US coverage does not mean national representativeness. |
| `currency` | text | USD unless the table records non-currency index values. |
| `source_locator` | text | Exact cell, project, table or fact location within the cited source. |
| `price_per_sqft_usd_CALC` | number | Base asking price / nominal_area_sqft, USD/sq ft; two-decimal display. Upper-band area yields the lowest rate within that band. |

### commercial-sectional-door-starting-prices.csv
JSON key: `sectional_starting_prices` · 8 rows.

| Field | JSON type | Meaning / units / interpretation |
|---|---|---|
| `record_id` | text | Stable identifier within this compilation, not an agency or manufacturer identifier unless named. |
| `seller` | text | Company publishing the asking price or estimate. |
| `manufacturer` | text | Named manufacturer; not an affiliation with Uptime. |
| `model` | text | Named product model. |
| `door_mechanism` | text | Door mechanism; rolling sheet and sectional are not interchangeable. |
| `construction` | text | Seller-listed construction for the named model. |
| `steel_gauge` | text | Seller-listed sheet gauge and exterior/interior distinctions, not an isolated cost driver. |
| `starting_price_usd` | number | Seller-reported model starting price with no priced opening established, nominal USD. |
| `regular_price_usd` | number | Seller comparison/regular-price label; not verified transaction history or a guaranteed discount. |
| `opening_size_attached_to_price` | text | Explanation of whether the price identifies an opening. These starting prices do not. |
| `freight_estimate` | text | Seller-specific freight terms, not a freight allowance for another seller. |
| `installation_note` | text | Seller explanation of displayed installation defaults. |
| `price_kind` | text | Price denominator/scope, not a market average. |
| `source_price_effective_date` | null | Seller-issued effective date, if known. All active seller entries are null; read_on is not a substitute. |
| `source_url` | text | Primary-source URL; the crosswalk uses semicolon-delimited URLs when a claim needs several sources. |
| `read_on` | text | Actual audit verification date, 2026-09-17. Retrieval may be cached or an indexed issuer extract as recorded. |
| `seller_duty_label` | text | Seller classification; not a universal standard or necessarily the manufacturer label. |
| `seller_listed_r_value` | null / number | Thermal resistance stated by the seller for the named model; null means unstated, not zero. |
| `manufacturer_stated_r_value` | null / number | Thermal resistance on the current manufacturer page for the named model; not independent verification of the offered configuration. |
| `manufacturer_source_url` | text | Issuer page for the current model specification. |
| `specification_status` | text | Explains disagreement between seller and current manufacturer R-values. |
| `r_value_units` | text | h·ft²·°F/Btu. This section R-value is not the reciprocal of whole-assembly tested U-factor. |
| `opening_width_ft` | null | Unknown opening width for the displayed sectional starting price; null, feet. |
| `opening_height_ft` | null | Unknown opening height for the displayed sectional starting price; null, feet. |
| `source_locator` | text | Exact cell, project, table or fact location within the cited source. |
| `geography` | text | Source/sample geography; US coverage does not mean national representativeness. |
| `currency` | text | USD unless the table records non-currency index values. |

### commercial-garage-door-wind-rating-premium.csv
JSON key: `model_price_comparison` · 41 rows.

| Field | JSON type | Meaning / units / interpretation |
|---|---|---|
| `record_id` | text | Stable identifier within this compilation, not an agency or manufacturer identifier unless named. |
| `nominal_width_ft` | number | Upper endpoint of the selected source width band, feet. Not a field-measured opening. |
| `nominal_height_ft` | number | Upper endpoint of the selected source height band, feet. Not a field-measured opening. |
| `nominal_area_sqft` | number | Calculated width-band upper bound × height-band upper bound, square feet. |
| `model_2500_price_usd` | number | Base asking price for the named whole model at the matched size band; nominal USD. |
| `model_3100_price_usd` | number | Base asking price for the named whole model at the matched size band; nominal USD. |
| `model_3100_delta_usd_CALC` | number | Comparison model price minus Model 2500 price, USD; null if no comparison observation. |
| `model_3100_delta_pct_CALC` | number | (Comparison model price − Model 2500 price) / Model 2500 price × 100, percent; null if no comparison. |
| `model_3400_price_usd` | number / null | Base asking price for the named whole model at the matched size band; nominal USD. |
| `model_3400_delta_usd_CALC` | number / null | Comparison model price minus Model 2500 price, USD; null if no comparison observation. |
| `model_3400_delta_pct_CALC` | number / null | (Comparison model price − Model 2500 price) / Model 2500 price × 100, percent; null if no comparison. |
| `comparison` | text | Whole-model comparison at matching size-band upper bounds; no isolated certification premium. |
| `source_url_2500` | text | Primary source for the named model; null if no matched observation. |
| `source_url_3100` | text | Primary source for the named model; null if no matched observation. |
| `source_url_3400` | text / null | Primary source for the named model; null if no matched observation. |
| `source_record_id_2500` | text | Record ID joining to the corresponding price-matrix row; null if no matched observation. |
| `source_record_id_3100` | text | Record ID joining to the corresponding price-matrix row; null if no matched observation. |
| `source_record_id_3400` | text / null | Record ID joining to the corresponding price-matrix row; null if no matched observation. |
| `formula` | text | Explicit arithmetic with the comparison denominator identified. |
| `currency` | text | USD unless the table records non-currency index values. |
| `read_on` | text | Actual audit verification date, 2026-09-17. Retrieval may be cached or an indexed issuer extract as recorded. |

### commercial-garage-door-installed-price-ledger.csv
JSON key: `installed_price_ledger` · 9 rows.

| Field | JSON type | Meaning / units / interpretation |
|---|---|---|
| `record_id` | text | Stable identifier within this compilation, not an agency or manufacturer identifier unless named. |
| `record_type` | text | Accepted bid, submitted bid or seller-installed estimate; never assumed paid invoice. |
| `buyer` | text | Public purchaser, or region for a seller estimate. |
| `state` | text | US state postal abbreviation for the project/sample. |
| `project` | text | Named procurement project or estimate configuration. |
| `date` | text / null | Source event date, interpreted only together with date_kind; null for undated seller guidance. |
| `date_kind` | text | Distinguishes bid opening, Council acceptance and seller estimate. Never payment without a payment record. |
| `doors` | number / null | Verified door count for that record. Null for Haaf lump-sum bids and the regional multi-bay estimate. One LMP is not one door. |
| `door_type` | text | Mechanism/type supported by the record; not silently inferred. |
| `door_size` | null / text | Source dimensions where established; otherwise null. |
| `scope` | text | What the source amount covers and does not establish. |
| `party` | text | Bidder or estimate publisher. |
| `position` | text / null | Status in the source record; not a qualification certification. |
| `amount_low_usd` | number | Lower endpoint of the stated project amount/range, nominal USD. Equal to high for a single bid. |
| `amount_high_usd` | number | Upper endpoint of the stated project amount/range, nominal USD. Equal to low for a single bid. |
| `provenance` | text | How the evidence originates; not proof of payment. |
| `source_url` | text | Primary-source URL; the crosswalk uses semicolon-delimited URLs when a claim needs several sources. |
| `source_locator` | text | Exact cell, project, table or fact location within the cited source. |
| `read_on` | text | Actual audit verification date, 2026-09-17. Retrieval may be cached or an indexed issuer extract as recorded. |
| `currency` | text | USD unless the table records non-currency index values. |
| `source_price_effective_date` | null | Seller-issued effective date, if known. All active seller entries are null; read_on is not a substitute. |
| `geography` | text | Source/sample geography; US coverage does not mean national representativeness. |
| `supporting_source_urls` | text / null | Additional primary records supporting count, acceptance or scope; semicolon-delimited where applicable. |
| `cost_per_door_low_usd_CALC` | number / null | amount_low_usd / known doors; null when doors are unknown. Project-normalised bid/estimate, not isolated product price. |
| `cost_per_door_high_usd_CALC` | number / null | amount_high_usd / known doors; null when doors are unknown. Project-normalised bid/estimate, not isolated product price. |

### commercial-garage-door-bid-spread.csv
JSON key: `bid_spread` · 1 rows.

| Field | JSON type | Meaning / units / interpretation |
|---|---|---|
| `record_id` | text | Stable identifier within this compilation, not an agency or manufacturer identifier unless named. |
| `project` | text | Named procurement project or estimate configuration. |
| `date` | text | Source event date, interpreted only together with date_kind; null for undated seller guidance. |
| `date_kind` | text | Distinguishes bid opening, Council acceptance and seller estimate. Never payment without a payment record. |
| `submitted_bid_count` | number | Number of submitted bids displayed in this agency tabulation; not a qualification finding. |
| `door_count` | null | Unknown for the Haaf spread record; null rather than assuming the lump-sum quantity is a door count. |
| `low_bid_usd` | number | Lowest submitted project bid in USD. |
| `high_bid_usd` | number | Highest submitted project bid in USD. |
| `spread_usd_CALC` | number | high_bid_usd − low_bid_usd, USD. |
| `spread_pct_CALC` | number | (high_bid_usd − low_bid_usd) / low_bid_usd × 100, percent; denominator is low bid. |
| `formula` | text | Explicit arithmetic with the comparison denominator identified. |
| `note` | text | Material scope or interpretation limit. |
| `source_url` | text | Primary-source URL; the crosswalk uses semicolon-delimited URLs when a claim needs several sources. |
| `read_on` | text | Actual audit verification date, 2026-09-17. Retrieval may be cached or an indexed issuer extract as recorded. |
| `currency` | text | USD unless the table records non-currency index values. |

### commercial-garage-door-steel-price-index.csv
JSON key: `steel_price_index` · 120 rows.

| Field | JSON type | Meaning / units / interpretation |
|---|---|---|
| `series` | text | BLS commodity-series code and published name. These are six metal-product groups, not a door index. |
| `month` | text | Measured calendar month, YYYY-MM, not verification date. |
| `index_value` | number | BLS source-reported index points at its published series base; not USD and not assumed comparable in level across series. |
| `basis` | text | Not seasonally adjusted for every PPI observation here. |
| `preliminary` | text | yes for May–August 2026, no for earlier displayed months; preserve the source release status. |
| `publisher` | text | Issuer of the source document or data. |
| `source_url` | text | Primary-source URL; the crosswalk uses semicolon-delimited URLs when a claim needs several sources. |
| `read_on` | text | Actual audit verification date, 2026-09-17. Retrieval may be cached or an indexed issuer extract as recorded. |
| `record_id` | text | Stable identifier within this compilation, not an agency or manufacturer identifier unless named. |
| `index_units` | text | Index points, not monetary prices. |
| `geography` | text | Source/sample geography; US coverage does not mean national representativeness. |
| `source_locator` | text | Exact cell, project, table or fact location within the cited source. |
| `escalation_factor_to_2026_08_CALC` | number | August 2026 value / this month in the same series; four-decimal display, not a forecast. |
| `pct_change_to_2026_08_CALC` | number | (August 2026 value / this month − 1) × 100, percent; use original inputs for money calculations. |
| `relative_to_jan_2025_CALC` | number | 100 × this month / January 2025 within the same series. Uptime-normalised chart comparison; not the original BLS index base. |

### commercial-garage-door-cost-driver-crosswalk.csv
JSON key: `cost_driver_crosswalk` · 20 rows.

| Field | JSON type | Meaning / units / interpretation |
|---|---|---|
| `record_id` | text | Stable identifier within this compilation, not an agency or manufacturer identifier unless named. |
| `cost_driver` | text | Editorial purchasing topic. |
| `claim_type` | text | Verification basis: reported, calculated, issuer standard/model code, enacted rule, or editorial guidance. |
| `source_ids` | text | Semicolon-delimited source-register IDs. Use them to retrieve issuer, edition and exact locator. |
| `source_url` | text | Primary-source URL; the crosswalk uses semicolon-delimited URLs when a claim needs several sources. |
| `edition_or_period` | text | Relevant standard edition, event/data period, or verification date for an undated current observation. |
| `what_it_requires_or_shows` | text | Bounded factual or editorial observation; read together with claim_type and limitations. |
| `effect_on_price` | text | Measured model-price difference or unresolved quote question. Not automatically a causal feature premium. |
| `scope_and_limitations` | text | What this evidence does not establish. |
| `publish_status` | text | publishable means supported within its stated scope, not approved for any project. |
| `read_on` | text | Actual audit verification date, 2026-09-17. Retrieval may be cached or an indexed issuer extract as recorded. |

### commercial-door-quote-scope-worksheet.csv
JSON key: `quote_scope_worksheet` · 13 rows.

| Field | JSON type | Meaning / units / interpretation |
|---|---|---|
| `category_id` | text | Stable worksheet item ID used for bundle references. |
| `category` | text | Quote-scope category, not a universal legally required charge. |
| `question` | text | Editorial scope question to resolve for each quote. |
| `notes` | null | Optional user/editorial notes; blank remains null. |
| `quote_a_status` | null | User-entered state: priced, included, excluded-unpriced, unknown, or not-applicable. Starts blank; blank is unresolved. |
| `quote_a_amount_usd` | null | User-entered USD amount. Starts null, not zero. Explicit quoted zero is allowed. |
| `quote_a_basis` | null | User entry: per-door or per-project; required for separately priced amounts. |
| `quote_a_quantity` | null | Positive integer quantity for a per-door price; do not assume a missing quantity. |
| `quote_a_included_in_category_id` | null | Reference to the separately priced bundle category; prevents double counting. |
| `quote_a_not_applicable_reason` | null | Written reason for not-applicable state; blank is not a resolved decision. |
| `quote_b_status` | null | User-entered state: priced, included, excluded-unpriced, unknown, or not-applicable. Starts blank; blank is unresolved. |
| `quote_b_amount_usd` | null | User-entered USD amount. Starts null, not zero. Explicit quoted zero is allowed. |
| `quote_b_basis` | null | User entry: per-door or per-project; required for separately priced amounts. |
| `quote_b_quantity` | null | Positive integer quantity for a per-door price; do not assume a missing quantity. |
| `quote_b_included_in_category_id` | null | Reference to the separately priced bundle category; prevents double counting. |
| `quote_b_not_applicable_reason` | null | Written reason for not-applicable state; blank is not a resolved decision. |

### commercial-garage-door-cost-sources.csv
JSON key: `sources` · 42 rows.

| Field | JSON type | Meaning / units / interpretation |
|---|---|---|
| `source_id` | text | Stable source-register identifier; retired S11/S12 are not reassigned. |
| `publisher` | text | Issuer of the source document or data. |
| `document` | text | Source page/document title. |
| `type` | text | Source category. |
| `edition_or_date` | text | Source edition/date status, including unknown seller effective dates. |
| `url` | text | Primary source URL. |
| `read_on` | text | Actual audit verification date, 2026-09-17. Retrieval may be cached or an indexed issuer extract as recorded. |
| `exact_locator` | text | Primary document section, table, page or clause used. Upload year is not the standard edition. |
| `access_method` | text | How the source was actually accessed. Indexed issuer text is distinguished from a fresh complete fetch. |

## Key figures, charts and regeneration

`commercial-garage-door-cost-key-figures.json` is identical to the combined JSON `meta` object. Each material calculation carries its inputs, formula and source URL or record references. The 12×12 versus 9×7 area example is arithmetic for illustrative dimensions, not a market-size claim.

`commercial-garage-door-cost-chart-inputs.json` contains six square-size observations for Model 2500 and forty month/series observations for two PPI series. PPI chart levels normalise each series to January 2025 = 100; original reported index points remain separate. A chart is not a second dataset or a price forecast.

Run `python build-commercial-garage-door-cost-dataset.py --out ./data` to rebuild the nine CSVs, combined JSON, key figures and chart inputs from the embedded verified observations. It does not fetch current prices or update verification dates. Read source documents again before publishing a new vintage.
