# MaterialGraph schema

> The registry that types every value MaterialGraph holds: 31 blocks and 311 public attributes across 4 verticals, 40 units and 103 value dictionaries. Schema version 0.4.0.

A value is stored against one attribute at one scope (brand, product or variant) with its source basis and confidence. An attribute a record holds no value for is unknown, never false.

## Machine-readable forms

- Vocabulary: [/schema/terms](/schema/terms) indexes the `mg:` terms as JSON-LD; every attribute, block, unit and dictionary IRI resolves. The `@context` is [/schema/terms/context.jsonld](/schema/terms/context.jsonld).
- JSON Schema (Draft 2020-12): [/schemas/record.schema.json](/schemas/record.schema.json) for a record, and one schema per attribute under `/schemas/`.
- REST: `GET /api/v1/schema/value-dictionaries` lists every dictionary, and `GET /api/v1/catalog/enum-values` finds one value by name, alias or meaning.

## Concept



Who makes it, what it's called and what it is (including the brand profile), and its imagery.



### Identity (`identity`)

Product naming, codes and category, plus the brand profile (history, headquarters, ownership, positioning).

| Attribute | Name | Type | Dictionary | Description |
| --- | --- | --- | --- | --- |
| `brand_name` | Brand Name | string |  | The parent brand name used to group products in the graph. Snowflake manufacturer establishes this catalogue binding; an independent product brand label and evidence of the brand are separate facts. |
| `manufacturer_name` | Manufacturer name | string |  | The organisation credited with making this product, supported by manufacturer evidence. Snowflake manufacturer identifies the catalogue brand and must not populate this attribute. |
| `product_brand_name` | Product brand name | string |  | An independently stated brand label for this product. It may match or differ from the graph brand. Snowflake brand_name supplies this optional label; absence does not mean the graph brand is unknown. |
| `product_name` | Product name | string |  | The product's name, independent of its collection, series and variant names. |
| `collection_name` | Collection name | string |  | The collection this product is stated to belong to. A collection is not the product's name or its source grouping identifier. |
| `series_name` | Series name | string |  | The series this product is stated to belong to, retained independently from its collection and product name. |
| `product_url` | Product URL | string |  | A navigable page for this product. It is separate from the catalogue anchor used to identify a source variant. |
| `variant_url` | Variant URL | string |  | A navigable page for this variant, separate from its technical source anchor. |
| `family_name` | Family Name | string |  | The name of a genuine product family grouping several products. Product, collection and series names remain separate attributes. |
| `variant_name` | Variant Name | string |  | The source's name for this concrete variant. It may repeat the product name; it is not an identity key. |
| `manufacturer_code` | Manufacturer Code | string |  | The brand's own ordering reference for the item — part number, SKU, article number or order code. |
| `gtin` | GTIN | string |  | The GS1 Global Trade Item Number of the item: the 8, 12, 13 or 14 digits behind its barcode. |
| `designer_name` | Designer Name | string |  | Named designer, studio, or collaborator credited by the manufacturer. |
| `product_summary` | Product Summary | text |  | Short manufacturer-authored summary describing the product's intent, character, or headline specification. |
| `source_url` | Source URL | string |  | The stable source anchor for this variant. A shared product page may carry a SKU fragment to distinguish variants; navigable product and variant links are separate attributes. |
| `product_category` | Product Category | term[] | Product Category | Complete original Material Bank category paths in source order; the first path is primary. Product values come from source parents, with explicit source-backed variant overrides. |
| `material_families` | Material Families | term[] | Material Family | The material families the product belongs to. A composite or mixed-media product can span several — a wood and metal sideboard, a leather and textile cover — and the first listed is its main family. |
| `tagline` | Tagline | string |  | Official brand tagline or short positioning phrase. |
| `description` | Brand Description | text |  | Short factual account of what the brand makes and who it serves. |
| `founded_year` | Founded Year | integer |  | Year the brand was founded or established. |
| `headquarters_city` | Headquarters City | string |  | City where the brand's main office or headquarters is located. |
| `headquarters_country` | Headquarters Country | string |  | Country where the brand's main office or headquarters is located. |
| `ownership_type` | Ownership Type | term | Ownership Type | How the brand is owned or controlled, such as private, public, family, cooperative, or subsidiary. |
| `legal_entity_name` | Legal Entity Name | string |  | The company's registered legal name as filed with the companies registry, which is often different from the brand it trades under. |
| `positioning` | Positioning | text |  | How a brand positions itself in the market — luxury, contract, trade, mass or specialist. |
| `distribution_model` | Distribution Model | term | Distribution Model | How the brand sells or distributes products, such as direct, wholesale, both, or trade-only. |
| `design_philosophy` | Design Philosophy | text |  | The brand's stated design philosophy, values, or creative principles. |
| `primary_materials` | Brand Materials | string[] |  | The material categories this brand works in across its whole range — its speciality rather than one product's composition. |
| `key_markets` | Key Markets | string[] |  | Primary markets, sectors, or regions the brand explicitly serves. |
| `employee_count_range` | Employee Count Range | string |  | Publicly supported employee-count range for the brand. |
| `revenue_range` | Revenue Range | string |  | The brand's publicly supported annual revenue bracket, given as a band rather than a figure. |
| `stock_ticker` | Stock Ticker | string |  | The exchange symbol a publicly traded brand's shares trade under. |
| `trading_names` | Trading Names | string[] |  | Other public trading names, alternate names, or known aliases for the brand. |
| `logo_url` | Logo URL | string |  | Link to the brand's official public logo. |

### Imagery (`imagery`)

How many product images were found, how many MaterialGraph holds a copy of, and which one leads.

| Attribute | Name | Type | Dictionary | Description |
| --- | --- | --- | --- | --- |
| `image_count` | Image Count | integer |  | Number of product images found for this item. |
| `downloaded_image_count` | Downloaded Image Count | integer |  | Number of this item's product images that MaterialGraph holds a copy of. |
| `primary_image_url` | Primary Image URL | string |  | Link to the product's lead image, picked by rule from the images found; scene, installation and technical shots are passed over. |

## Design Development



Material choices, visible properties, variants, and domain-specific surface construction.



### Material Composition (`material_composition`)

Primary material, finish and composition breakdown with percentages, plus leather, wood species, grade and cut, fibre and abrasion.

| Attribute | Name | Type | Dictionary | Description |
| --- | --- | --- | --- | --- |
| `hide_size` | Hide Size | string |  | Area of a leather hide, typically a range in square feet (e.g. 55 ft² - 60 ft²). |
| `hide_configuration` | Hide Configuration | string |  | How a leather hide is cut/supplied (Full Hide, Whole Hide, Side, Center Cut). |
| `primary_material` | Primary Material | term | Primary Material | The one material the product is chiefly made of — porcelain, wool, solid brass. The single-word answer on a spec line; the full token list is Material Content. |
| `finish_name` | Finish Name | string |  | The finish or treatment name the brand states for this item — 'Brushed Brass', 'Limed Oak', 'Soft Matt'. The treatment's own name rather than the color name or a tile's finish class. |
| `material_content` | Material Content | term[] | Material Content | Every material the product contains — vinyl, nylon, wool, leather, ceramic. The list rather than the single headline material or the percentages. |
| `composition` | Composition | object |  | The decided composition tree: materials, parts, shares and the source statements supporting them. |
| `abrasion_resistance` | Abrasion Resistance | string |  | The abrasion rating exactly as the brand published it, sentence and all, for example '80,000 double rubs Wyzenbeek' or '40,000 cycles Martindale'. The unparsed source line: the count alone is Abrasion Cycles and the test it was counted on is Abrasion Test Method. |
| `abrasion_classifications` | Abrasion Classifications | term[] | Abrasion Classifications | A class the source states for abrasion, wear or traffic: a duty word such as Heavy Duty, a PEI or ASTM C1027 wear class, a pass of a named test such as the castor chair test, or a certification such as ACT. A count of rubs or cycles is not a class, and neither is a bare test result that names no test, such as No wear or Pass. |
| `leather_types` | Leather Types | term[] | Leather Type | The leather grade for the item — full grain, top grain, corrected grain, nubuck, suede or split. Printed as 'Top Grain' on a hide spec. |
| `tannage_methods` | Tannage Methods | term[] | Tannage Method | How the leather is tanned — chrome, vegetable, aldehyde, wax or a combination of them. |
| `fiber_types` | Fibre Types | term[] | Fiber Type | The textile or carpet fibres the product is made from — nylon, wool, polyester, PET — covering synthetic, natural, recycled and bio-based fibres. |
| `wood_species` | Wood Species | term[] | Wood Species | The wood species by common name (e.g. white oak, walnut, maple) for solid-wood, veneer, or wood-look products. The 'which timber' facet. |
| `species_latin_name` | Species (Latin Name) | string |  | Botanical (Latin binomial) name of the wood or plant species. |
| `wood_grade` | Wood Grade | string |  | The appearance grade of the timber or veneer — Select & Better, Rustic, Character, AB or Prime. The grade mark on a timber spec. |
| `wood_cut` | Wood Cut | string |  | Cut method of the wood / veneer (e.g. plain, quarter, rift sawn). |
| `wear_layer_thickness` | Wear Layer Thickness | number |  | Thickness of the layer worn through in flooring: the protective film of resilient flooring or the top wood lamella of engineered wood. Separate from the overall board or tile thickness. |

### Color (`color`)

The color the brand sells it as (name, code, declared hex, LRV) and what MaterialGraph works out from it (OKLCH, family, nearest RAL and Pantone) — from the declared hex for paint, otherwise from the imagery. Image-read color is likeness, not specification.

| Attribute | Name | Type | Dictionary | Description |
| --- | --- | --- | --- | --- |
| `color_name` | Color Name | string |  | Human-readable color name as declared by the manufacturer (e.g. 'Warm Grey', 'Antique Bronze'). |
| `color_code` | Color Code | string |  | Vendor color code as published in the brand's color system (e.g. 'OC-17', 'SW 7042'). Paired with the color name — the code is the ordering identity, the name is the display identity. |
| `color_hex` | Color Hex | string |  | Hex value for the product's main color (e.g. '#8B7D6B') — the brand's declared hex where given, otherwise read from its imagery. |
| `color_oklch` | Color OKLCH | string |  | Perceptual color coordinates in OKLCH space (lightness, chroma, hue). Preferred for accurate color matching and palette generation. |
| `color_family` | Color Family | term | Color Family | Broad color grouping for faceted search, worked out from the product's main color (e.g. 'gray', 'beige', 'teal'). |
| `color_mood` | Color Mood | term | Color Mood | Overall palette mood read from the product's imagery (e.g. 'muted', 'monochrome', 'vibrant'). Describes the palette's compositional character, not any single color. |
| `color_undertone` | Color Undertone | term | Color Undertone | Warmth cast of the product's main color: warm, cool, or neutral, measured on the OKLab warm–cool axis. |
| `color_ral` | Color RAL | string |  | The RAL Classic code for the product's color (e.g. 'RAL 9010') — the brand's own where published, otherwise the nearest RAL match to its main color. |
| `color_ncs` | Color NCS | string |  | The NCS (Natural Color System) code for the product's color (e.g. 'S 0502-Y'), where the brand publishes one. |
| `color_pantone` | Color Pantone | string |  | The Pantone code for the product's color (e.g. '11-0601 TCX') — the brand's own where published, otherwise the nearest Pantone match to its main color. |
| `color_palette` | Color Palette | object[] |  | The set of colors read out of the product's own imagery, dominant first, each with the share of the image it occupies. |
| `light_reflectance_value` | Light Reflectance Value (LRV) | number |  | Light Reflectance Value (LRV), 0–100 — proportion of visible light a surface reflects. |

### Physical Dimensions (`physical_dimensions`)

Structured dimensional data with typed measurements per component.

| Attribute | Name | Type | Dictionary | Description |
| --- | --- | --- | --- | --- |
| `dimensions` | Dimensions | object[] |  | How big the product is: the measured extent of each named part, recorded per part so a multi-part product (a faceplate and its mechanism, a seat and its overall envelope) keeps both figures. |
| `physical_form` | Physical Form | term[] | Physical Form | How the product ships — rolls, sheets, planks, slabs, hides, tiles or modular units. The supply format rather than a tile's assembly type. |
| `mass_per_area` | Mass per Area | number |  | Mass of the whole finish material per unit area, including its backing where the manufacturer includes it. A different quantity from total product mass or carpet pile/face-only mass. |
| `mass_per_length` | Mass per Length | number |  | Mass of finish material per unit length, as published for a roll or other linear goods. It does not state area weight without an independently declared width. |

### Product Option Controls (`product_option_controls`)

The choices a buyer makes to reach one orderable item: option axes, defaults, option counts, and the sizes, thicknesses and finishes the brand lists.

| Attribute | Name | Type | Dictionary | Description |
| --- | --- | --- | --- | --- |
| `variant_axes` | Variant Axes | object[] |  | The choices a buyer makes to land on one orderable item — color, size, sheen, tint base, finish or material — listed as the axes the brand offers across a family. |
| `orderable_option_count` | Orderable Option Count | integer |  | Number of distinct purchasable configurations represented by the captured option matrix. |
| `default_variant_axis_values` | Default Variant Axis Values | object |  | Default or currently selected axis values for the surfaced variant configuration. |
| `option_matrix_source_url` | Option Matrix Source URL | string |  | Source URL for the option matrix, configurator, collection page, or ordering table used to derive variant axes. |
| `declared_size_options` | Declared Size Options | string[] |  | Manufacturer-declared size options as published in the source catalogue — raw size option strings, one per declared option (e.g. "57-58 in W", "24 in", "Ogee Drop"). |
| `declared_thickness_options` | Declared Thickness Options | string[] |  | Every thickness the brand lists for the product, as published — '10 mm', '2.5 mm', '20 mil'. The gauge or thickness choices on an order sheet. |
| `declared_finish_options` | Declared Finish Options | string[] |  | Manufacturer-declared finish options as published in the source catalogue — raw finish option strings, one per declared option (e.g. "Non-Woven", "Matt"). Additional Finishes Available is a common published heading for it. |

### Aesthetic (`aesthetic`)

Design-led descriptors for finding products by feel: style, mood, character, product shape, pattern (including what it's made to look like), sheen, texture, treatment, metallic tone and light transmission.

| Attribute | Name | Type | Dictionary | Description |
| --- | --- | --- | --- | --- |
| `style_families` | Style Families | term[] | Style | Design style, in Taxonomy's terms, such as minimalism, industrial, coastal or modern farmhouse. A product can carry several. The mood a style suggests is mood_descriptors. |
| `mood_descriptors` | Mood | term[] | Mood | Atmospheric mood tags; a material can carry several, such as 'quiet-luxury' and 'serious'. |
| `character_expression` | Character: Expression | term | Character: Expression | How restrained or emphatic the material reads: quiet, restrained, expressive or bold. |
| `character_making` | Character: Making | term | Character: Making | How the material reads as made: refined, crafted or rustic. |
| `character_register` | Character: Register | term | Character: Register | How formal the material reads: formal or casual. |
| `character_origin_look` | Character: Origin Look | term | Character: Origin Look | Whether the material looks natural or synthetic. |
| `character_feel` | Character: Feel | term | Character: Feel | Whether the material feels soft or hard. |
| `product_outline` | Product Shape: Outline | term[] | Product Shape: Outline | The lines of the product's outline: rectilinear, curved or faceted. A shape with straight sides and a curve lists both. |
| `product_regularity` | Product Shape: Regularity | term | Product Shape: Regularity | Whether the product's shape is geometric or organic. |
| `product_proportion` | Product Shape: Proportion | term[] | Product Shape: Proportion | How elongated the product is: linear or slender. A product can carry both. |
| `compositional_roles` | Compositional Role | term[] | Compositional Role | The role this material plays in a scheme. Used by pairing logic — e.g. 'find a textural-base for this focal-material'. |
| `pattern_type` | Pattern Type | term[] | Pattern Type | What the pattern is — its visual structure (geometric, stripe, botanical, brocade and so on), or, for a surface made to look like another material, that effect (stone effect, woodgrain effect, concrete effect, metal effect, leather effect, marbleised). Distinct from the pattern's density, scale, regularity and directionality. |
| `natural_figure` | Natural Figure | term[] | Natural Figure | How a natural stone, stone-effect, or timber surface is figured, such as veined, speckled, mottled, or knotty. Independent of pattern type and unrelated to a repeating motif - a marble's veining is not a pattern in that sense. A product can carry several figure terms at once. |
| `pattern_density` | Pattern Density | term | Pattern Density | How densely the pattern occupies the surface — none through dense. |
| `pattern_scale` | Pattern Scale | term[] | Pattern Scale | Visual size of the pattern motif — micro through oversized. |
| `pattern_regularity` | Pattern Regularity | term | Pattern Regularity | How rule-bound vs organic the pattern is — uniform through organic. |
| `directionality` | Directionality | term | Directionality | Strength and kind of directional bias in the surface. Important for layout planning (linear products read differently on different walls). |
| `surface_sheen` | Surface Sheen | term | Sheen | Sheen / gloss vocabulary, dead-matte through high-gloss. |
| `surface_reflectivity` | Surface Reflectivity | term | Reflectivity | How specular or diffuse the surface is — mirror-like, satin, or scattering. The visual quality of the reflection rather than the LRV percentage. |
| `surface_texture` | Surface Texture | term[] | Texture | Texture vocabulary, flat through heavily-reliefed. |
| `surface_treatment` | Surface Treatment | term[] | Surface Treatment | How the exposed surface was deliberately finished: honed, polished, tumbled, sandblasted, limewashed and the rest of Taxonomy's finish treatments. Several treatments can apply to one surface, such as honed and brushed. |
| `metallic_tone` | Metallic Tone | term[] | Metallic Tone | The metal tone a surface reads as: silver, gold, brass, bronze and the rest of Taxonomy's metallic tones. A finish that mixes metals, such as brass and black, lists each tone. |
| `light_transmission` | Light Transmission | term | Light Transmission | Whether objects can be seen through the material: transparent, translucent or opaque. |
| `light_control` | Light Control | term[] | Light Control | The light-control class a window covering is sold under: sheer, room-darkening or blackout. A covering can be sold in more than one. |

### Coating System (`coating_system`)

Paint, primer, stain, sealer, and wet-applied coating chemistry, application, and film properties.

| Attribute | Name | Type | Dictionary | Description |
| --- | --- | --- | --- | --- |
| `coating_product_type` | Coating Product Type | term | Coating Product Type | Manufacturer product type for coatings, such as interior paint, exterior paint, primer, stain, sealer, floor coating, traffic paint, or pool paint. |
| `sheen` | Sheen | term | Coating Sheen | Declared sheen or gloss level of a coating, such as flat, matte, eggshell, satin, semi-gloss, gloss, or high gloss. For a material's visual sheen rather than a paint specification, see Surface Sheen. |
| `tint_base` | Tint Base | term[] | Coating Tint Base | The tint base grades this coating is sold in. Bases are numbered 1–5 from most to least titanium dioxide; brands label them differently (1X/2X, Extra White/Deep), but the grades sit on one industry-wide colorant-capacity scale. |
| `coating_vehicle` | Coating Vehicle | string |  | The coating's binder / resin chemistry family as declared by the manufacturer, such as acrylic latex, alkyd, epoxy, urethane, or silicone. The 'what kind of paint chemistry' facet. |
| `volume_solids_pct` | Volume Solids | number |  | Volume solids percentage declared on a coating technical data sheet. |
| `spread_rate` | Spread Rate | number |  | How far one unit of a coating goes — the area a gallon or litre covers at the manufacturer's stated film build, in sq ft/gal or m²/L. |
| `film_thickness` | Film Thickness | object[] |  | Published wet and dry film thickness values for a coating system. |
| `dry_time` | Dry Time | number |  | How long a coating takes to dry to touch or to handle, in hours, minutes, or days. |
| `recoat_time` | Recoat Time | number |  | How long to wait before applying the next coat, in hours, minutes, or days. |
| `recommended_coats` | Recommended Coats | integer |  | Recommended number of coats for the published coating system or use condition. |
| `coating_application_methods` | Coating Application Methods | string[] |  | Manufacturer-declared coating application methods, such as brush, roller, spray, airless spray, or conventional spray. |
| `coating_cleanup_method` | Coating Cleanup Method | string |  | Cleanup solvent, water cleanup instruction, or equipment cleaning guidance declared for a coating. |
| `voc_content_g_l` | VOC Content | number |  | Volatile Organic Compound content in grams per litre (g/L), as published for coatings and wet-applied finishes; lower is cleaner and drives low-VOC compliance thresholds. |
| `application_temperature_range` | Application Temperature Range | object |  | Published temperature range for coating application, curing, or installation. |

### Tile Surface (`tile_surface`)

Tile, slab, mosaic, trim, stone, and resilient surface format details used for selection and installation.

| Attribute | Name | Type | Dictionary | Description |
| --- | --- | --- | --- | --- |
| `tile_material_family` | Tile Material Family | term | Tile Material Family | Tile or slab material family, such as porcelain, ceramic, glass, marble, limestone, terrazzo, terracotta, metal, pebble, or luxury vinyl. |
| `tile_body_type` | Tile Body Type | string |  | More precise tile body or construction declaration, such as color-body porcelain, through-body porcelain, glazed ceramic, natural stone, glass, cement, or luxury vinyl core. |
| `tile_format` | Tile Format | term | Tile Format | How a tile is supplied, in Taxonomy's terms: tile, subway tile, mosaic, slab, plank, trim tile (with its pieces, such as bullnose, cove, quarter round, liner and jolly), or gauged porcelain tile and panel. |
| `nominal_tile_size` | Nominal Tile Size | object |  | The nominal face size of a tile or sheet, width by length, as the brand sells it: 24 x 48 in, 600 x 1200 mm. |
| `actual_tile_size` | Actual Tile Size | string |  | Published actual tile, sheet, plank, trim, or slab size, preserving source unit and notation when it differs from nominal size. |
| `tile_thickness` | Tile Thickness | number |  | Published tile, slab, sheet, or plank thickness as a measurement, preserving the source unit. |
| `tile_pattern` | Tile Pattern | string |  | Source-declared tile pattern, shape, or layout family, such as square, hex, herringbone, chevron, basketweave, picket, fluted, or waterjet. |
| `unit_shape` | Unit Shape | term[] | Unit Shape | The visible outline of one discrete tile, mosaic piece, or unit, such as hexagon, circle, or picket - independent of supply format and layout pattern. Distinct from tile_pattern (the layout family) and from the Material Semantics shape_descriptors (Linear/Organic/Faceted design character). |
| `edge` | Edge | term[] | Edge | How a tile, slab or board's edge is finished or profiled: rectified, pressed, square, eased, bevelled, micro-bevelled, bullnose (fully rounded), ogee (an S-shaped curve) or tegular (a ceiling tile edge stepped to sit in a grid). A tile with two edge finishes, such as rectified and micro-bevelled, lists both. |
| `joint_profile` | Joint Profile | term[] | Joint Profile | How two boards, planks or panels meet — the milled joint and the visual treatment of its edge, such as tongue and groove, a click lock, or a micro bevel. |
| `plank_layout` | Plank Layout | term[] | Plank Layout | How planks or blocks are set out on the floor — straight plank, herringbone, chevron, parquet block, Versailles panel and the rest of the published laying patterns. |
| `shade_variation` | Shade Variation | term | Shade Variation | Tile shade-variation class: how much color and pattern differ piece to piece, from V1 (uniform) to V4 (substantial random variation), or not declared. |
| `tile_faces_count` | Tile Faces Count | integer |  | Number of distinct printed or natural faces declared for a tile series. |
| `grout_joint_width` | Grout Joint Width | number |  | Recommended width of the grout joint between tiles, in millimetres or inches. |
| `rectified` | Rectified | boolean |  | Whether the tile edges are machined square after firing so the tiles can be laid with a narrow joint. |
| `mesh_mounted` | Mesh Mounted | boolean |  | Whether a mosaic, pebble, or decorative tile is supplied mounted on mesh, paper, or another installation backing. |
| `backing_type` | Backing Type | string |  | What a mosaic, sheet or resilient tile is mounted on so it can be laid — mesh, paper face, fibreglass, felt or film. The carrier sheet rather than a fabric backcloth. |
| `trim_profile` | Trim Profile | string |  | Trim, moulding, coping, bullnose, pencil, quarter-round, stair tread, or other profile declaration for tile accessories. |

### Textile Construction (`textile_construction`)

Textile and wallcovering construction, backing, finish treatment, dye method, roll width, repeat and match, openness, and orientation properties.

| Attribute | Name | Type | Dictionary | Description |
| --- | --- | --- | --- | --- |
| `textile_product_type` | Textile Product Type | term | Textile Product Type | Contract textile type, such as woven upholstery, coated fabric, vinyl, silicone, non-PVC, wallcovering, privacy curtain, window treatment, or leather. |
| `construction_methods` | Construction Methods | term[] | Composition Construction Method | How a textile or surface is built — woven, non-woven, glazed, handmade, embossed, laminate or LVT. |
| `textile_backing` | Textile Backing | string |  | Backing or support layer declared for a textile, coated fabric, wallcovering, or privacy curtain. |
| `textile_finish_treatment` | Textile Finish Treatment | string |  | Finish, topcoat, backing treatment, stain treatment, moisture barrier, or other declared textile treatment. |
| `roll_width` | Roll Width | number |  | How wide the roll comes off the bolt for textile, wallcovering, privacy curtain, or sheet goods, in millimetres, metres, or inches. |
| `pattern_repeat` | Pattern Repeat | string |  | The repeat a brand states for a wallcovering or textile — '18in V x 54in H'. The published repeat as written. |
| `pattern_repeat_vertical_mm` | Pattern Repeat (Vertical) | number |  | How far a wallcovering or textile motif travels down the roll before it repeats, in millimetres. |
| `pattern_repeat_horizontal_mm` | Pattern Repeat (Horizontal) | number |  | How far a wallcovering or textile motif travels across the roll before it repeats, in millimetres. |
| `railroaded` | Railroaded | boolean |  | Whether the textile is declared as railroaded or usable in a railroaded orientation. |
| `fiber_types` | Fibre Types | term[] | Fiber Type | The textile or carpet fibres the product is made from — nylon, wool, polyester, PET — covering synthetic, natural, recycled and bio-based fibres. |
| `wallcovering_type` | Wallcovering Type | term | Wallcovering Type | The use class of a wallcovering: ASTM F793 category, or the Type I, II or III commercial vinyl class, which rises with coated weight and resistance to scuffing, staining and abrasion. |
| `pattern_match` | Pattern Match | term[] | Pattern Match | How adjoining drops of a patterned wallcovering line up on the wall: straight, half drop, multiple drop, random, or reversed on alternate drops. |
| `dye_method` | Dye Method | term[] | Dye Method | How the color was put into the fibre, yarn, fabric or hide: solution dyed, yarn dyed, piece dyed, printed, aniline dyed and the other dyeing routes. |
| `openness_factor` | Openness Factor | number |  | The share of a shade or screen fabric that is open weave, letting light and view through: 1%, 3%, 5% and so on. |
| `pile_face_mass_per_area` | Pile / Face Mass per Area | number |  | Mass per unit area of a carpet's surface pile or face fibres, excluding its backing. Separate from the whole material's area mass. |

## Technical



Measurable performance, installation requirements, and product-type technical data.



### Photometric (`photometric`)

Light output, color rendering, color temperature and diffuser.

| Attribute | Name | Type | Dictionary | Description |
| --- | --- | --- | --- | --- |
| `lumens` | Lumens | number |  | Total luminous flux the light fitting emits, in lumens. |
| `cri` | CRI | number |  | Color Rendering Index: how faithfully the light source shows colors against a reference, on a scale to 100. |
| `color_temperature_k` | Color Temperature | integer |  | Correlated color temperature of the light source in kelvin, warm white through daylight. |
| `diffuser_type` | Diffuser Type | string |  | Declared diffuser or optical cover type for a luminaire, such as opal, frosted, prismatic, clear, louvered, or exposed source. |

### Electrical (`electrical`)

Power, voltage, load and control properties, and whether the plate is screwless.

| Attribute | Name | Type | Dictionary | Description |
| --- | --- | --- | --- | --- |
| `current_rating` | Current Rating | number |  | Nominal electrical current the product is rated to carry, in amperes. |
| `voltage` | Voltage | number |  | Nominal operating voltage the product is designed for. |
| `voltage_range` | Voltage Range | object |  | Declared operating voltage range with a shared unit. |
| `frequency_hz` | Frequency | integer |  | Nominal mains or operating frequency the product is designed for, in hertz. |
| `wattage` | Wattage | number |  | Power consumption at nominal operating conditions. |
| `maximum_circuit_load` | Maximum Circuit Load | number |  | Maximum connected load supported by the control, driver, or fitting under its declared operating mode. |
| `supported_load_types` | Supported Load Types | string[] |  | Declared compatible lamp or load families supported by the product in its published operating modes. |
| `control_protocols` | Control Protocols | string[] |  | Supported dimming or control protocols such as TE, LE, 0-10V, DALI, or phase cut variants. |
| `protocol_power_limits` | Protocol Power Limits | object[] |  | Protocol-specific maximum connected load values, typically expressed in watts. |
| `multi_gang_derating` | Multi-Gang Derating | object[] |  | Published reduction in maximum supported load as multiple controls are ganged together. |
| `minimum_circuit_load` | Minimum Circuit Load | number |  | Minimum connected load required for stable operation. |
| `screwless` | Screwless | boolean |  | Whether the visible plate or trim is screwless once installed. |

### Installation (`installation`)

Mounting, wiring, and install-condition requirements needed to specify and fit the product correctly.

| Attribute | Name | Type | Dictionary | Description |
| --- | --- | --- | --- | --- |
| `installation_summary` | Installation Summary | text |  | Notes on what installing the product needs — preparation, conditions, clearances, tools and constraints, in the brand's own wording. |
| `minimum_back_box_depth_mm` | Minimum Back Box Depth | integer |  | Minimum recess or back box depth required to install the product correctly. |
| `recommended_back_box_depth_mm` | Recommended Back Box Depth | integer |  | Preferred recess or back box depth recommended by the manufacturer for installation. |
| `breaker_rating_range` | Breaker Rating Range | object |  | Declared protective breaker range or circuit protection range required for installation. |
| `supported_wiring_modes` | Supported Wiring Modes | string[] |  | Declared switching or wiring topologies supported by the product, such as one-way, multi-way, retractive, or centre retractive. |
| `max_control_points` | Maximum Control Points | integer |  | Maximum number of switches, toggles, or control points supported on a single control circuit. |
| `canopy_type` | Canopy Type | string |  | Declared canopy, rose, or ceiling-interface type used to mount a suspended luminaire. |
| `affixing_systems` | Affixing Systems | term[] | Affixing System | How the product is fixed down — fully bonded, glue down, loose lay, floated, clicked, mechanically fixed or mesh-mounted. The fitting method on an installation sheet. |
| `recommended_grout` | Recommended Grout | string |  | Manufacturer-recommended grout product or type for installing this tile (e.g. "Unsanded Grout", "Laticrete Dusty Grey"). |

### Acoustic (`acoustic`)

Sound absorption, transmission, and noise reduction properties. The acoustic consultant's block.

| Attribute | Name | Type | Dictionary | Description |
| --- | --- | --- | --- | --- |
| `nrc_rating` | NRC Rating | number |  | The Noise Reduction Coefficient: sound absorption averaged across the 250–2000 Hz bands, in steps of 0.05. Usually 0.00 to 1.00, and a thick or deep panel can test above 1.00. Printed as 'NRC 0.85'; the lettered ISO grade is Absorption Class. |
| `stc_rating` | STC Rating | integer |  | Sound Transmission Class (STC): a single-number integer rating of how well an assembly blocks airborne sound — higher blocks more. |
| `absorption_class` | Absorption Class | term | Sound Absorption Class | ISO 11654 sound-absorption class, a letter grade from A (highly absorptive) to E (barely absorptive). |

### Fire Rating (`fire_rating`)

Reaction to fire classification, flame spread, and smoke development. The fire engineer's block.

| Attribute | Name | Type | Dictionary | Description |
| --- | --- | --- | --- | --- |
| `euroclass` | Euroclass | term | Euroclass Grade | The European reaction-to-fire grade under EN 13501-1, from A1 (non-combustible) to F, with fl marking a floor covering. The grade of a class printed as 'B-s1,d0' or 'Bfl-s1'; the full class, with smoke and droplets, is a fire_classifications term such as euroclass_b_s1. |
| `fire_classifications` | Fire Classifications | term[] | Fire Classification | Every fire classification the product holds — one product may carry an ASTM E84 class, an NFPA 701 result and a European class at once. |
| `fire_statements` | Fire Statements | object[] |  | Every statement a product's fire cell makes about a fire test, each with the standard, the kind of claim, the typed result and the words it rests on. |
| `flame_spread_index` | Flame Spread Index | integer |  | ASTM E84 flame spread index. Class A (0–25), B (26–75), C (76–200). |
| `smoke_development_index` | Smoke Development Index | integer |  | ASTM E84 smoke development index. Lower is better; ≤450 is typical code limit. |
| `performance_test_results` | Performance Test Results | object[] |  | Published test results a brand states on a technical data sheet — PEI, Mohs, ASTM, AATCC, CFFA, NFPA, MPI, VOC, abrasion, tear and break strength. |

### Application Scope (`application_scope`)

Where, how, and under which conditions a product can be used, installed, applied, or specified.

| Attribute | Name | Type | Dictionary | Description |
| --- | --- | --- | --- | --- |
| `suitability_claims` | Suitability Claims | object[] |  | What the brand says the product is and is not fit for, with the conditions attached — 'suitable for underfloor heating up to 27°C', 'not for wet areas'. |
| `application_locations` | Application Locations | string[] |  | Where the product can be laid or fitted — wall, floor, shower, pool, exterior, healthcare, upholstery or trim. The named place. |
| `substrate_compatibility` | Substrate Compatibility | string[] |  | Declared compatible substrates or base conditions the product can be installed over or onto, such as drywall, plaster, metal, masonry, concrete, tile backer board, wood, vinyl, or fabric backing. |
| `application_methods` | Application Methods | string[] |  | Declared ways the product is applied, installed, or used, such as brush, roller, spray, thinset, grout, direct glue, wrap, or upholstery. |
| `environmental_exposure` | Environmental Exposure | term[] | Environmental Exposure | Declared exposure conditions the product withstands: indoor, outdoor, wet areas, submersion or freeze-thaw. The 'can it go outside / in a wet area' facet. |
| `material_roles` | Material Roles | term[] | Interior Role | The architectural roles the material plays — a partition can be a feature surface, a tile can serve as both wall and flooring. Applications gives the more specific use. |
| `industry_sectors` | Industry Sectors | term[] | Sector | The project-type sectors the material suits. Deliberately broad: a hotel lobby and a hotel room both count as hospitality. |
| `applications` | Applications | term[] | Application | Where the product can be applied — broad contexts such as wall, flooring or furniture, or narrower ones such as a backsplash or a wet-area floor, each nested under its broader context. |
| `application_rooms` | Application Rooms | term[] | Room Type | The specific room types the material is intended for. A product can serve several rooms across several sectors. |
| `category_paths` | Category Paths | string[] |  | The brand's or retailer's own merchandising category paths for the product, one per path (e.g. "Bathroom Products/Bathroom Hardware", "Hardware/Cabinet Hardware"). Free text rather than a controlled vocabulary, so paths differ from brand to brand. |

### Performance Tests (`performance_tests`)

Published test results against named standards, and the headline figures specifiers filter on: slip, wear, hardness, water absorption, and stain and chemical resistance.

| Attribute | Name | Type | Dictionary | Description |
| --- | --- | --- | --- | --- |
| `water_resistance` | Water Resistance | string |  | Water/moisture resistance test result (e.g. 'ISO 4586 tested for Boiling Water Resistance', 'LD3 - No Effect'); common for laminate and surfaces. |
| `performance_test_results` | Performance Test Results | object[] |  | Published test results a brand states on a technical data sheet — PEI, Mohs, ASTM, AATCC, CFFA, NFPA, MPI, VOC, abrasion, tear and break strength. |
| `slip_resistance_dcof` | Slip Resistance DCOF | number |  | Dynamic Coefficient of Friction (ANSI A326.3), a 0–1 slip-resistance value for tile, stone, resilient flooring, and other walkable surfaces; ≥0.42 is the common wet-area threshold. |
| `slip_resistance_class` | Slip Resistance Class | term[] | Slip Resistance Class | Every published slip-resistance class the product holds — a DIN 51130 R rating, a DIN 51097 barefoot class, a BS 7976 pendulum band, or an AS 4586 P class. One product may carry more than one. |
| `pei_rating` | PEI Rating | integer |  | The PEI class printed on glazed ceramic and porcelain tile, 0 (no foot traffic) to 5 (heavy commercial). The tile wear class specifiers read off the box. |
| `mohs_hardness` | Mohs Hardness | number |  | Mohs scratch-hardness value (1 talc – 10 diamond) published for tile, stone, terrazzo, and similar surface materials. |
| `water_absorption_pct` | Water Absorption | number |  | Water absorption as a percentage of dry weight (ASTM C373 / ISO 10545-3), the porosity measure for tile, stone, masonry coating, and other porous finishes; ≤0.5% denotes porcelain / frost resistance. |
| `abrasion_cycles` | Abrasion Cycles | integer |  | The abrasion count as a plain number — double rubs, Martindale cycles, Taber cycles — with the scale name kept alongside. The figure printed as 'Abrasion: 100,000'. |
| `abrasion_test_method` | Abrasion Test Method | term | Abrasion Test Method | The standard or instrument an abrasion or wear figure was measured on, such as Wyzenbeek (ASTM D4157), Martindale (ASTM D4966, ISO 12947), Taber or a castor chair test. |
| `breaking_strength_n` | Breaking Strength | number |  | Breaking strength in newtons when published for tile, slab, panel, or textile testing. |
| `chemical_resistant` | Chemical Resistant | boolean |  | Whether the source declares the product chemical resistant. The standard, class, verdict and reagents behind the statement are test results, kept in Performance Test Results. |
| `frost_resistant` | Frost Resistant | boolean |  | Whether the source declares the product suitable for freeze-thaw exposure or frost resistance. |
| `stain_resistance_rating` | Stain Resistance Rating | string |  | Manufacturer-declared stain resistance rating or class, preserving the source scale when a standard is not stated. |
| `performance_category` | Performance Category | term | Performance Use Category | The coarse traffic class a product is rated for, residential through severe commercial. The 'rated for heavy use' facet specifiers filter on. |
| `duty_class` | Duty Class | term | Duty Class | The duty or traffic class a brand declares a product fit for: light, medium, heavy or extra heavy duty, or industrial. |
| `janka_hardness` | Janka Hardness | number |  | The Janka side-hardness of a wood or bamboo flooring species: the force needed to embed an 11.28 mm steel ball to half its diameter, published as a rating of how well the species resists denting and wear. |
| `thermal_conductivity` | Thermal Conductivity | number |  | The rate at which heat passes through the material, the lambda value, published for flooring, insulation and building products. |

### Lighting (`lighting`)

What the fitting is: fixture type, lamping, features, light count and maximum wattage. Light output is in Photometric.

| Attribute | Name | Type | Dictionary | Description |
| --- | --- | --- | --- | --- |
| `lighting_fixture_types` | Lighting Fixture Types | term[] | Lighting Fixture Type | The kinds of fixture this is. Hybrids are common, so a fixture can carry several — pendant and cable, recessed and downlight, a semi-flush that also mounts on the wall. |
| `lighting_lamp_types` | Lamping | term[] | Lighting Lamp Type | The lamp or light-source types the fixture takes or includes — notably integrated LED (built in, not replaceable) as against an LED lamp (a replaceable bulb). |
| `lighting_features` | Lighting Features | string[] |  | The features a light fitting declares — dimmable, color-tunable, occupancy sensor, emergency. |
| `light_count` | Number of Lights | integer |  | Number of separate light sources within one fitting. |
| `max_wattage` | Maximum Wattage | number |  | Maximum supported wattage for the fixture (in watts). For LED-integrated, this is the consumed wattage. |

## Compliance



Certifications, environmental and health declarations, ingress rating and origin, as the brand declares them.



### Environmental Rating (`environmental_rating`)

Ingress protection (IP) rating against dust and water.

| Attribute | Name | Type | Dictionary | Description |
| --- | --- | --- | --- | --- |
| `ip_rating` | IP Rating | term | IP Rating | Ingress protection rating for dust and water resistance. |

### Sustainability (`sustainability`)

Environmental health, lifecycle, disclosure, circularity, carbon, social-impact, and sustainability certification indicators, plus the brand's catalogue feature badges.

| Attribute | Name | Type | Dictionary | Description |
| --- | --- | --- | --- | --- |
| `voc_emissions` | VOC Emissions | term | VOC Emissions | The VOC emission class a product is certified to — A+, E1, low-emitting, or an equivalent regional grade. |
| `epd_available` | EPD Available | boolean |  | Whether an Environmental Product Declaration can be had for the product: a yes or no, rather than the declaration's own type or status. |
| `cdph_v1_2_compliant` | CDPH v1.2 Compliant | boolean |  | Whether the brand declares the product compliant with CDPH Standard Method v1.2 for VOC emissions. |
| `sustainability_certifications` | Sustainability Certifications | object[] |  | The environmental certifications the product holds — scheme, level, issuing body and certificate — such as Cradle to Cradle, GREENGUARD Gold or FloorScore. |
| `environmental_product_declaration` | Environmental Product Declaration | term[] | EPD Type | The kinds of Environmental Product Declaration the product carries: product-specific, industry-wide or facility-specific. A product can carry more than one. |
| `lca_optimization_plan` | LCA Optimization Plan | boolean |  | Whether the brand has a plan to reduce the product's life-cycle environmental impact: Material Bank's yes-or-no LCA Optimization Plan answer. |
| `epd_expiration_date` | EPD Expiration Date | string |  | Expiration date of the Environmental Product Declaration when the source declares it. |
| `ingredient_disclosure` | Ingredient Disclosure | term[] | Ingredient Disclosure Programme | The disclosure programmes the brand publishes the product's contents under — Health Product Declaration, Declare, or a partial disclosure. Distinct from the carbon declaration, which is the EPD. |
| `ingredient_disclosure_threshold` | Ingredient Disclosure Threshold | term | Disclosure Threshold | The concentration down to which an ingredient disclosure lists substances: 100 ppm, 1,000 ppm, or the threshold of the safety data sheet. |
| `ingredients_disclosed_75_percent` | 75% of Ingredients Disclosed | boolean |  | Whether the source reveals at least 75% of product ingredients for transparency and green-building review. |
| `material_health_certifications` | Material Health Certifications | object[] |  | Third-party certifications and declarations that assess chemical safety, material health, or ingredient hazards, including Red List free status, Declare labels, Living Building Challenge compliance, and other healthy-materials requirements designers reference when screening for chemical safety. |
| `leed` | LEED Contribution | text |  | The LEED contribution the brand declares for the product — credits or compliance detail, in the brand's words. |
| `voc_emissions_testing_certificate` | VOC Emissions Testing Certificate | object[] |  | Certificate or programme confirming VOC emissions testing for indoor air quality, such as CDPH, FloorScore, GREENGUARD, or SCS Indoor Advantage. |
| `voc_emissions_testing_methodology` | VOC Emissions Testing Methodology | string |  | Standardised method used to measure VOC emissions, such as CDPH Standard Method, ISO 16000, or chamber testing. |
| `emissions` | Emissions | text |  | Quantified or certified VOC, formaldehyde, or other emissions information, in the source's own wording where no normalised value is available. |
| `global_warming_potential_gwp` | Global Warming Potential (GWP) | number |  | Global Warming Potential: the product's cradle-to-gate carbon footprint (usually EPD lifecycle stages A1–A3), expressed in kg CO2-equivalent. |
| `gwp_functional_unit` | GWP Functional Unit | string |  | The declared functional unit (the denominator) a carbon figure is measured against, e.g. "m2", "kg", or "declared unit". |
| `gwp_declared_unit` | GWP Declared Unit | term | LCA Declared Unit | The quantity of product a global warming potential figure is declared per, such as one square metre, one kilogram or one piece. |
| `gwp_lifecycle_modules` | GWP Life-Cycle Modules | term[] | LCA Life-Cycle Module | The EN 15804 life-cycle modules a global warming potential figure covers, such as A1 to A3 for cradle to gate. |
| `post_consumer_recycled_content_percentage` | Post-Consumer Recycled Content Percentage | number |  | Percentage (0–100) of the product's content made from post-consumer recycled material — waste diverted after end-user use. |
| `post_industrial_recycled_content_percentage` | Post-Industrial Recycled Content Percentage | number |  | Percentage (0–100) of the product's content made from post-industrial (pre-consumer) recycled material — factory scrap reclaimed before it reaches a consumer. |
| `fsc_certified_wood` | FSC Certified Wood | boolean |  | Whether wood content is declared as FSC certified or equivalent responsible forestry sourcing. |
| `environmental_benefits` | Environmental Benefits | text |  | Verified sustainability-related benefits in source wording, such as recycled content, low VOC, EPD, HPD, carbon, or responsible sourcing claims. |
| `environmental_benefits_filter` | Environmental Benefits Filter | term[] | Environmental Benefit | Search tags for a product's environmental benefits — recycled content, low VOC, EPD, responsible sourcing. |
| `sustainability_action_plan` | Sustainability Action Plan | text |  | Publicly available manufacturer or product sustainability plan, policy, or action commitment relevant to the product. |
| `climate_impact` | Climate Impact | term[] | Climate Impact Claim | Climate claims the brand publishes for the product — carbon and greenhouse-gas declarations such as an EPD, CARB compliance, a sustainability action plan or ISO 14001 environmental management. |
| `circular_economy` | Circular Economy | term[] | Circular Economy Claim | Circularity claims the brand publishes — recycled content, EPD or HPD transparency, FSC-certified wood, and end-of-life routes such as take-back or recycling. |
| `ecosystem_health` | Ecosystem Health | term[] | Ecosystem Health Claim | Ecosystem claims the brand publishes — environmental management (ISO 14001), responsible forestry (FSC), and schemes such as B Corp, Cradle to Cradle or EcoVadis. |
| `human_health_impact` | Human Health Impact | term[] | Human Health Claim | Occupant-health claims the brand publishes — low-emitting or low-VOC status, CDPH v1.2 or OEKO-TEX certification, and PVC-free or phthalate-free declarations. |
| `social_equity_impact` | Social Equity Impact | term[] | Social Equity Claim | Social-responsibility claims the brand publishes — labour and supply-chain standards such as B Corp, FSC or NSF/ANSI 336, and domestic-manufacture claims such as Made in USA. |
| `declared_free_of` | Declared Free Of | term[] | Chemical of Concern | Substances the brand declares the product free of, such as PFAS, PVC, formaldehyde, ortho-phthalates or halogenated flame retardants. |
| `sustainability_claims` | Sustainability Claims | object[] |  | Sustainability statements a brand publishes that have no dedicated field of their own, kept in the brand's wording with their source. |
| `bio_based_content_percentage` | Bio-Based Content Percentage | number |  | Percentage (0–100) of the product's content derived from bio-based (renewable biological) feedstock rather than fossil or mineral sources. |
| `feature_tags` | Feature Tags | string[] |  | The feature and marketing tags a brand publishes in the catalogue — 'Recycled Content', 'Class A Fire Rated', 'Low VOC'. The badge row, in the brand's words. |

### Compliance (`compliance`)

Regulatory certifications, CSI MasterFormat section with its OmniClass and UniFormat codes, and where the product is made.

| Attribute | Name | Type | Dictionary | Description |
| --- | --- | --- | --- | --- |
| `certifications` | Certifications | object[] |  | The regulatory and product certifications the item holds — UL, CE, UKCA, REACH, BABA or Buy American — with the issuing body, certificate number and validity. |
| `csi_masterformat` | CSI MasterFormat | string |  | CSI MasterFormat classification (section number/title) for architectural specification. |
| `omniclass_work_result` | OmniClass Work Result | string |  | OmniClass Table 22 (Work Results) number and title for the product's CSI MasterFormat section, from the 2013-08-25 edition. Copyright CSI and CSC, http://omniclass.org. |
| `uniformat_element` | UniFormat Element | string |  | UniFormat 2010 (CSI and CSC) element the product finishes, such as C2030 Flooring, C2050 Ceiling Finishes or C2010 Wall Finishes. |
| `country_of_origin` | Country of Origin | term | ISO 3166-1 Country | Country where the product is made or originates (manufacturing origin), as an ISO 3166-1 alpha-2 code. |
| `state_of_origin` | State / Region of Origin | string |  | State, province, or region where the product is made (within the country of origin). |
| `city_of_origin` | City of Origin | string |  | City or locality where the product is made (within the country of origin). |

## Procurement



Availability, price, sampling, and logistics needed to buy the product.



### Availability (`availability`)

Published lead times and the item's Material Bank catalogue status; current stock is the supplier's to confirm.

| Attribute | Name | Type | Dictionary | Description |
| --- | --- | --- | --- | --- |
| `material_bank_lifecycle_status` | Material Bank Lifecycle Status | term | Material Bank Lifecycle Status | Material Bank's lifecycle classification for the item. It is not a stock promise; current availability is on the item's Material Bank page. |
| `lead_time_days` | Lead Time (Maximum) | integer |  | Conservative (maximum) published lead time in calendar days — what you would promise a client. |
| `lead_time_min_days` | Lead Time (Minimum) | integer |  | Optimistic (minimum) end of the published lead-time range in calendar days. |
| `lead_time_text` | Lead Time Text | string |  | Published lead time, verbatim source prose (e.g. "3-5 weeks", "Contact your rep"). |

### Pricing (`pricing`)

Cost information for budget alignment. The cost consultant's block.

| Attribute | Name | Type | Dictionary | Description |
| --- | --- | --- | --- | --- |
| `price_tier` | Price Tier | term | Price Tier | Material Bank's relative price band, from $ to $$$$$: where a product sits against the rest of the catalogue, not an amount or a currency. |
| `display_price` | Display Price | object |  | Structured displayed list price for the default surfaced configuration. |
| `orderable_price` | Orderable Price | object |  | Structured list price for a named purchasable option or sellable variant. |
| `list_price` | List Price | number |  | A published price per unit whose kind the catalogue did not state — it may be trade or retail. The catalogue rate, where trade and retail are not separated. |
| `trade_price` | Trade Price | number |  | Unit price a specifier or trade buyer pays for the goods — wholesale, dealer or net. Not the consumer-facing published price, and not what a swatch costs. |
| `retail_price` | Retail Price | number |  | Consumer-facing published unit price for the goods. Not the discounted rate a specifier is quoted, and not what a swatch costs. |
| `sample_price` | Sample Price | number |  | What one physical sample or swatch costs to order. This prices the sample only, distinct from any per-yard, per-sq-ft or per-roll rate for the goods. |
| `price_min` | Minimum Price | number |  | The lower end of a published price range — the starting figure in a 'from' price. |
| `price_max` | Maximum Price | number |  | The upper end of a published price range — the closing figure a catalogue quotes above its starting price. |
| `currency` | Currency | term | ISO 4217 Currency | ISO 4217 currency code for every price in this block (e.g. 'GBP', 'USD', 'EUR'). |
| `moq` | Minimum Order Quantity | integer |  | Minimum order quantity the brand accepts, where one applies. |

### Sampleability (`sampleability`)

Whether a physical sample can be ordered, and where from.

| Attribute | Name | Type | Dictionary | Description |
| --- | --- | --- | --- | --- |
| `sampleable` | Sampleable | boolean |  | Whether this material is currently available to order as a physical sample. |
| `sample_sources` | Sample Sources | object[] |  | Where a physical sample of this material can be ordered from, in preference order. A channel names the seller, not the brand: a Samplize entry on a Benjamin Moore color says Samplize prints a peel-and-stick of it. |

### Packaging and Logistics (`packaging_logistics`)

Order units, box/roll/can packaging, coverage, pieces, weights, and sample-size logistics.

| Attribute | Name | Type | Dictionary | Description |
| --- | --- | --- | --- | --- |
| `packaging_units` | Packaging Units | object[] |  | The container the product is sold in and how much of it that container holds — the tin, can, box, carton, roll or pallet, its size and its coverage. The 'sold in' line on an order form. |
| `coverage_per_package` | Coverage Per Package | number |  | Normalised coverage per package, box, roll, can, or order unit, where a numeric coverage value is available. |
| `package_coverage_unit` | Package Coverage Unit | string |  | Unit for package coverage, such as sq ft, sq m, linear yd, linear m, gal, or l. |
| `pieces_per_package` | Pieces Per Package | integer |  | Number of tiles, sheets, planks, samples, or units in the package. |
| `package_weight` | Package Weight | number |  | What a package, box, roll, can, or pallet of the product weighs, in kilograms or pounds. |
| `sample_size` | Sample Size | string |  | How big the sample or swatch is, as the brand stated it — '9 in x 7.25 in', 'A4 memo'. The size line on a sample listing. |
| `sample_notes` | Sample Notes | text |  | Prose notes about sample procurement — ordering minimums, fulfilment caveats, or other free-text sample guidance not captured by the structured sample fields (e.g. "MOQ 2,000 sq ft"). |
| `sample_length_mm` | Sample Length | number |  | The sample's longer side in millimetres. The same as the width when the sample is square. |
| `sample_width_mm` | Sample Width | number |  | The sample's shorter side in millimetres. The same as the length when the sample is square. |
| `sample_image_mm_per_px` | Sample Image Scale | number |  | Physical millimetres per image pixel for the sample photo, which is what makes true-to-scale display and scale-normalised visual search possible. |

### Trade Signals (`trade`)

Brand-level specification-channel signals: Material Bank presence, samples, trade programme, BIM resources, and continuing-education support.

| Attribute | Name | Type | Dictionary | Description |
| --- | --- | --- | --- | --- |
| `material_bank_presence` | Material Bank Presence | boolean |  | Whether the brand has products or samples available through Material Bank. |
| `bim_library_url` | BIM Library URL | string |  | Direct URL to BIM, Revit, IFC, SketchUp, or specification-object resources. |
| `sample_program_url` | Sample Programme URL | string |  | Direct URL to the brand's sample-ordering or sample-request programme. |
| `trade_program_url` | Trade Programme URL | string |  | Direct URL to the brand's trade, designer, architect, or specifier programme. |
| `cpd_ceu_offerings` | CPD / CEU Offerings | boolean |  | Whether the brand offers accredited continuing-education content for architects or designers. |
| `trade_email` | Trade Contact Email | string |  | Trade, designer, architect, or specifier support email address for the brand. |

## Handover



Warranty, cleaning, lifecycle, and maintenance information.



### Warranty (`warranty`)

Warranty terms, expected lifespan, and the brand's cleaning and maintenance guidance. The facilities manager's block.

| Attribute | Name | Type | Dictionary | Description |
| --- | --- | --- | --- | --- |
| `warranty_years` | Warranty Period | integer |  | How long the manufacturer's warranty runs, in whole years — the '10 year guarantee' figure. |
| `warranty_text` | Warranty Text | string |  | Published warranty terms, verbatim source prose (e.g. "Lifetime Limited Warranty", "5 year"). |
| `expected_lifespan` | Expected Lifespan | integer |  | Expected product lifespan under normal use, in years. |
| `cleaning_method` | Cleaning Method | string |  | How to clean the product — damp cloth, pH-neutral cleaner, steam. The care line on a maintenance sheet; how often to do it is Maintenance Frequency. |
| `maintenance_frequency` | Maintenance Frequency | string |  | Recommended maintenance interval (e.g. 'Annual', 'Quarterly', 'As needed'). |

### Cleanability (`cleanability`)

Cleaning, disinfection, healthcare maintenance, and chemical compatibility characteristics.

| Attribute | Name | Type | Dictionary | Description |
| --- | --- | --- | --- | --- |
| `cleaning_code` | Cleaning Code | term | Cleaning Code | Manufacturer-declared upholstery cleaning / care code — W (water-based), S (solvent), WS (either), X (vacuum only), plus bleach-cleanable or healthcare-specific guidance. The 'how do I clean it' facet. |
| `cleaning_protocols` | Cleaning Protocols | object[] |  | Structured cleaning and disinfection protocols with chemical, concentration, compatibility, and claim sources. |
| `bleach_cleanable` | Bleach Cleanable | boolean |  | Whether the product is declared compatible with bleach cleaning or disinfection. |
| `disinfectant_compatible` | Disinfectant Compatible | boolean |  | Whether the product is declared compatible with disinfectants or healthcare cleaning protocols. |
| `antimicrobial_treatment` | Antimicrobial Treatment | boolean |  | Whether the product includes a declared antimicrobial treatment or additive. |
| `moisture_barrier` | Moisture Barrier | boolean |  | Whether the product includes or supports a declared fluid, moisture, or barrier backing. |
| `pfas_free` | PFAS Free | boolean |  | Whether the product is declared free of PFAS or fluorinated stain treatments, the healthy-materials declaration designers phrase as "PFAS free" or forever-chemical-free. |
| `flame_retardant_free` | Flame Retardant Free | boolean |  | Whether the brand declares the product free of added flame retardants. Printed as 'FR free' or 'no added flame retardants', and distinct from fire-performance ratings. |
| `ink_resistance` | Ink Resistance | string |  | Manufacturer-declared ink, denim, stain, or transfer resistance for healthcare and contract textiles. |

## Digital



Design-tool files, documents, and the brand's public links and contacts.



### Digital Assets (`digital_assets`)

3D models, CAD drawings, and BIM objects for design tools.

| Attribute | Name | Type | Dictionary | Description |
| --- | --- | --- | --- | --- |
| `digital_assets` | Digital Deliverables | object[] |  | The design-tool files published for the product — CAD drawings, BIM objects, Revit families, 3D models and PBR textures — and whether each is offered. The files rather than a download link. |

### Documents (`documents`)

The spec sheet, installation guide and declaration of conformity among the product's downloads, and how many downloads there are.

| Attribute | Name | Type | Dictionary | Description |
| --- | --- | --- | --- | --- |
| `spec_sheet_url` | Spec Sheet URL | string |  | Link to the product's technical specification sheet. |
| `install_guide_available` | Installation Guide | boolean |  | Whether a downloadable installation or fitting guide is published for the product. |
| `download_count` | Download Count | integer |  | Number of downloadable documents and files found for this item. |
| `declaration_of_conformity_url` | Declaration of Conformity URL | string |  | Link to a Declaration of Conformity or equivalent market-compliance declaration for the product. |

### Links and Contact (`links`)

Brand-level public URLs and contact channels: homepage, email addresses, phone, press kit, and brand guidelines.

| Attribute | Name | Type | Dictionary | Description |
| --- | --- | --- | --- | --- |
| `homepage_url` | Homepage URL | string |  | The brand's canonical root website address, the front door of its own site. |
| `general_email` | General Contact Email | string |  | General public enquiry email address for the brand. |
| `press_email` | Press Contact Email | string |  | Press, media, or PR contact email address for the brand. |
| `phone_number` | Phone Number | string |  | Primary public phone number for the brand. |
| `press_kit_url` | Press Kit URL | string |  | Public URL for the brand's press kit or media resources, when available. |
| `brand_guidelines_url` | Brand Guidelines URL | string |  | Public URL for the brand's identity guidelines, when available. |

## Units

| Unit | Symbol | Name | UN/CEFACT |
| --- | --- | --- | --- |
| `unitless` |  | Unitless | C62 |
| `percent` | % | Percent | P1 |
| `coefficient` |  | Coefficient | C62 |
| `count` | count | Count | C62 |
| `millimetre` | mm | Millimetre | MMT |
| `metre` | m | Metre | MTR |
| `inch` | in | Inch | INH |
| `square_foot` | ft2 | Square Foot | FTK |
| `square_metre` | m2 | Square Metre | MTK |
| `kilogram` | kg | Kilogram | KGM |
| `pound` | lb | Pound | LBR |
| `gram_per_square_metre` | g/m² | Gram per Square Metre | GM |
| `kilogram_per_square_metre` | kg/m² | Kilogram per Square Metre | 28 |
| `ounce_per_square_yard` | oz/yd² | Ounce per Square Yard | ON |
| `pound_per_square_foot` | lb/ft² | Pound per Square Foot | FP |
| `gram_per_metre` | g/m | Gram per Metre | GF |
| `kilogram_per_metre` | kg/m | Kilogram per Metre | KL |
| `ounce_per_yard` | oz/yd | Ounce per Yard |  |
| `pound_per_yard` | lb/yd | Pound per Yard | M84 |
| `day` | d | Day | DAY |
| `year` | yr | Year | ANN |
| `hour` | h | Hour | HUR |
| `minute` | min | Minute | MIN |
| `celsius` | °C | Celsius | CEL |
| `fahrenheit` | °F | Fahrenheit | FAH |
| `gram_per_litre` | g/L | Gram Per Litre | GL |
| `square_foot_per_gallon` | sq ft/gal | Square Foot Per Gallon |  |
| `square_metre_per_litre` | m2/L | Square Metre Per Litre | E31 |
| `newton` | N | Newton | NEW |
| `kilonewton` | kN | Kilonewton | B47 |
| `pound_force` | lbf | Pound-force | C78 |
| `watt_per_metre_kelvin` | W/(m·K) | Watt per Metre Kelvin | D53 |
| `mil` | mil | Mil | 77 |
| `volt` | V | Volt | VLT |
| `ampere` | A | Ampere | AMP |
| `watt` | W | Watt | WTT |
| `hertz` | Hz | Hertz | HTZ |
| `lumen` | lm | Lumen | LUM |
| `kelvin` | K | Kelvin | KEL |
| `kilogram_co2e` | kg CO2e | Kilogram CO2 equivalent |  |
