Paint and wallpaper amounts, weather checks and lead paint safety for UK decorators' AI
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
For a UK postcode (or latitude and longitude) and dates from today up to 8 days ahead, fetches the hourly forecast (MET Norway) and checks each working hour against typical limits for the paint type: minimum temperature, humidity, 3 C above dew point, rain chance, wind, and a rain-free drying time after each coat. Returns each day's verdict (good, good_but_watch_rain, marginal, no), the best painting window, the main problems and an indicative recoat time at that day's temperature. Pass the data sheet's own limits to override. Example: {"postcode":"LS1 4AP","paint_type":"water_based_masonry","start_date":"2026-11-14","end_date":"2026-11-18"}.
Optional. The decorator's own business details (Nero Trade Profile v1). Used to prefill quotes and to give a stable nero_trade_ref. Not stored by Brush Pack.
YYYY-MM-DD, at most 15 days after today. Defaults to start + 6 days.
Working day end. Defaults to 17.
Full UK postcode of the job.
Minimum application temperature from the data sheet.
water_based_masonry: Water-based masonry paint, from 8 C, humidity up to 80%, 4 h rain free; solvent_based_masonry: Solvent-based (pliolite type) masonry paint, from 5 C, humidity up to 85%, 2 h rain free; water_based_trim: Water-based exterior gloss or satin for wood, from 8 C, humidity up to 80%, 3 h rain free; solvent_based_trim: Solvent-based (oil) exterior gloss or undercoat, from 5 C, humidity up to 85%, 4 h rain free; wood_stain_water: Water-based wood stain, from 8 C, humidity up to 80%, 4 h rain free; wood_stain_solvent: Solvent-based wood stain, from 5 C, humidity up to 85%, 4 h rain free; metal_paint: Solvent-based metal paint, from 5 C, humidity up to 85%, 4 h rain free
YYYY-MM-DD, today or later. Defaults to today.
Working day start, 24 hour clock. Defaults to 8.
Hours the coat must stay dry after it goes on.
Recoat time at 20 C from the data sheet.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http brush-pack https://brush-pack.nerolabs.workers.dev/mcp
For a UK postcode (or latitude and longitude) and dates from today up to 8 days ahead, fetches the hourly forecast (MET Norway) and checks each working hour against typical limits for the paint type: minimum temperature, humidity, 3 C above dew point, rain chance, wind, and a rain-free drying time after each coat. Returns each day's verdict (good, good_but_watch_rain, marginal, no), the best painting window, the main problems and an indicative recoat time at that day's temperature. Pass the data sheet's own limits to override. Example: {"postcode":"LS1 4AP","paint_type":"water_based_masonry","start_date":"2026-11-14","end_date":"2026-11-18"}.
| Argument | Type | Description |
|---|---|---|
| trade | object | Optional. The decorator's own business details (Nero Trade Profile v1). Used to prefill quotes and to give a stable nero_trade_ref. Not stored by Brush Pack. |
| end_date | string | YYYY-MM-DD, at most 15 days after today. Defaults to start + 6 days. |
| end_hour | number | Working day end. Defaults to 17. |
| latitude | number | |
| postcode | string | Full UK postcode of the job. |
| longitude | number | |
| min_temp_c | number | Minimum application temperature from the data sheet. |
| paint_type | string | water_based_masonry: Water-based masonry paint, from 8 C, humidity up to 80%, 4 h rain free; solvent_based_masonry: Solvent-based (pliolite type) masonry paint, from 5 C, humidity up to 85%, 2 h rain free; water_based_trim: Water-based exterior gloss or satin for wood, from 8 C, humidity up to 80%, 3 h rain free; solvent_based_trim: Solvent-based (oil) exterior gloss or undercoat, from 5 C, humidity up to 85%, 4 h rain free; wood_stain_water: Water-based wood stain, from 8 C, humidity up to 80%, 4 h rain free; wood_stain_solvent: Solvent-based wood stain, from 5 C, humidity up to 85%, 4 h rain free; metal_paint: Solvent-based metal paint, from 5 C, humidity up to 85%, 4 h rain free |
| start_date | string | YYYY-MM-DD, today or later. Defaults to today. |
| start_hour | number | Working day start, 24 hour clock. Defaults to 8. |
| rain_free_hours | number | Hours the coat must stay dry after it goes on. |
| recoat_hours_at_20c | number | Recoat time at 20 C from the data sheet. |
| max_humidity_percent | number |
{
"type": "object",
"properties": {
"trade": {
"type": "object",
"properties": {
"town": {
"type": "string"
},
"email": {
"type": "string"
},
"phone": {
"type": "string"
},
"address": {
"type": "string",
"description": "Business address for quotes."
},
"postcode": {
"type": "string"
},
"categories": {
"type": "array",
"items": {
"type": "string"
},
"description": "Trades offered. Defaults to [\"painting_decorating\"]."
},
"company_name": {
"type": "string",
"description": "Registered company name, if a limited company."
},
"display_name": {
"type": "string",
"description": "Trading name shown to customers, for example \"Fresh Coat Decorators\"."
},
"licence_body": {
"enum": [
"pda",
"dulux_select",
"trustmark",
"checkatrade",
"other",
"none"
],
"type": "string",
"description": "Trade body or accreditation the business belongs to (pda = Painting and Decorating Association)."
},
"company_number": {
"type": "string",
"description": "Companies House number, for example 12345678 or SC123456."
},
"licence_number": {
"type": "string",
"description": "Membership or registration number with that body."
}
},
"description": "Optional. The decorator's own business details (Nero Trade Profile v1). Used to prefill quotes and to give a stable nero_trade_ref. Not stored by Brush Pack.",
"additionalProperties": false
},
"end_date": {
"type": "string",
"description": "YYYY-MM-DD, at most 15 days after today. Defaults to start + 6 days."
},
"end_hour": {
"type": "number",
"description": "Working day end. Defaults to 17."
},
"latitude": {
"type": "number"
},
"postcode": {
"type": "string",
"description": "Full UK postcode of the job."
},
"longitude": {
"type": "number"
},
"min_temp_c": {
"type": "number",
"description": "Minimum application temperature from the data sheet."
},
"paint_type": {
"enum": [
"water_based_masonry",
"solvent_based_masonry",
"water_based_trim",
"solvent_based_trim",
"wood_stain_water",
"wood_stain_solvent",
"metal_paint"
],
"type": "string",
"description": "water_based_masonry: Water-based masonry paint, from 8 C, humidity up to 80%, 4 h rain free; solvent_based_masonry: Solvent-based (pliolite type) masonry paint, from 5 C, humidity up to 85%, 2 h rain free; water_based_trim: Water-based exterior gloss or satin for wood, from 8 C, humidity up to 80%, 3 h rain free; solvent_based_trim: Solvent-based (oil) exterior gloss or undercoat, from 5 C, humidity up to 85%, 4 h rain free; wood_stain_water: Water-based wood stain, from 8 C, humidity up to 80%, 4 h rain free; wood_stain_solvent: Solvent-based wood stain, from 5 C, humidity up to 85%, 4 h rain free; metal_paint: Solvent-based metal paint, from 5 C, humidity up to 85%, 4 h rain free"
},
"start_date": {
"type": "string",
"description": "YYYY-MM-DD, today or later. Defaults to today."
},
"start_hour": {
"type": "number",
"description": "Working day start, 24 hour clock. Defaults to 8."
},
"rain_free_hours": {
"type": "number",
"description": "Hours the coat must stay dry after it goes on."
},
"recoat_hours_at_20c": {
"type": "number",
"description": "Recoat time at 20 C from the data sheet."
},
"max_humidity_percent": {
"type": "number"
}
},
"additionalProperties": false
}Hours and days on site for a decorating job from rooms (same sizes as paint_quantity, with walls, ceiling and woodwork coats, new_plaster for mist coats) and extra tasks (strip_wallpaper_m2, hang_wallpaper_rolls, hang_patterned_wallpaper_rolls, masonry_smooth_m2_per_coat, masonry_rough_m2_per_coat, door_per_coat, window_per_coat, skirting_m_per_coat, custom_hours), plus prep (light, medium, heavy) and daily set up and clean up. With a day or hourly rate, materials, markup and VAT it gives a priced quote with lines. Rates are indicative for one experienced decorator. Example: {"rooms":[{"name":"Lounge","length_m":4,"width_m":3.5,"height_m":2.4}],"prep_level":"medium","day_rate_gbp":200}.
| Argument | Type | Description |
|---|---|---|
| rooms | array | At most 30. |
| trade | object | Optional. The decorator's own business details (Nero Trade Profile v1). Used to prefill quotes and to give a stable nero_trade_ref. Not stored by Brush Pack. |
| decorators | number | People on the job. Defaults to 1. |
| prep_level | string | light: sound surfaces; medium: normal filling and sanding (default); heavy: lots of filling, flaking paint, caulking. |
| extra_tasks | array | At most 50. |
| day_rate_gbp | number | Day rate per decorator, pounds. |
Judges how likely old paint is to contain lead from the build year, surfaces, paint condition and any test result, checks the planned removal methods (dry sanding, blowlamps and dry scraping are refused; wet abrading, chemical strippers and heat guns below about 450 C are allowed with care), and gives the safe test, removal, clean-up and waste steps from HSE and UK guidance, plus the Control of Lead at Work duties. Returns `urgency` only if paint has already been disturbed unsafely. Example: {"build_year":1935,"surfaces":["windows","doors"],"planned_methods":["dry_sanding"],"children_under_6_or_pregnant":true}.
| Argument | Type | Description |
|---|---|---|
| era | string | Use if the exact year is unknown. |
| trade | object | Optional. The decorator's own business details (Nero Trade Profile v1). Used to prefill quotes and to give a stable nero_trade_ref. Not stored by Brush Pack. |
| surfaces | array | |
| build_year | number | Year the home (or the painted item) was built. |
| test_result | string | |
| paint_condition | string | |
| planned_methods | array | |
Lists Brush Pack's tools, surfaces, paint types and what it deliberately does not do. Free, needs no input.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Works out paint for a room (walls, ceiling, woodwork from length, width, height, doors and windows), an exterior (perimeter x height plus gables, less openings) or a custom list of areas. Shows areas, coats, indicative coverage per surface type, litres, litres with waste and the tins to buy (least paint left over, plus a fewer tins option). New plaster adds a mist coat; a light over dark colour change adds a wall coat. Coverage is indicative: pass the tin's figure as coverage_m2_per_litre to make it exact. Example: {"job":"room","length_m":4,"width_m":3.5,"height_m":2.4,"doors":1,"windows":1}.
| Argument | Type | Description |
|---|---|---|
| job | string | Defaults to room, or exterior if perimeter_m is given, or custom if areas is given. |
| areas | array | Custom: list of { name, area_m2, surface, coats, coverage_m2_per_litre }. At most 100. |
| doors | number | Number of doors. Defaults to 1. |
| trade | object | Optional. The decorator's own business details (Nero Trade Profile v1). Used to prefill quotes and to give a stable nero_trade_ref. Not stored by Brush Pack. |
| gables | array | Exterior: gable triangles above the eaves line (width at the base, height to the ridge). |
| width_m | number | Room width, metres. |
| windows |
How to prepare a surface and which paint system goes on it: checks, prep steps, system (primer, undercoat, top coats) and what to avoid, for new_plaster, previously_painted_walls, bare_softwood, mdf, previously_painted_wood, exterior_wood, bare_metal_ferrous, galvanised_or_aluminium, masonry, damp_or_water_stained, smoke_or_nicotine, mould. With `cause` (fire_or_smoke, flood, active_leak, mould) it adds the making good steps and an `urgency` value. Example: {"surfaces":["new_plaster","previously_painted_wood"]}.
| Argument | Type | Description |
|---|---|---|
| cause | string | Why the work is needed, if it is making good after damage. |
| trade | object | Optional. The decorator's own business details (Nero Trade Profile v1). Used to prefill quotes and to give a stable nero_trade_ref. Not stored by Brush Pack. |
| surface | string | |
| surfaces | array |
{
"type": "object",
"properties": {
"cause": {
"enum": [
"none",
"fire_or_smoke",
"flood",
"active_leak",
"mould"
],
"type": "string",
"description": "Why the work is needed, if it is making good after damage."
},
"trade": {
"type": "object",
"properties": {
"town": {
"type": "string"
},
"email": {
"type": "string"
},
"phone": {
"type": "string"
},
"address": {
"type": "string",
"description": "Business address for quotes."
},
"postcode": {
"type": "string"
},
"categories": {
"type": "array",
"items": {
"type": "string"
},
"description": "Trades offered. Defaults to [\"painting_decorating\"]."
},
"company_name": {
"type": "string",
"description": "Registered company name, if a limited company."
},
"display_name": {
"type": "string",
"description": "Trading name shown to customers, for example \"Fresh Coat Decorators\"."
},
"licence_body": {
"enum": [
"pda",
"dulux_select",
"trustmark",
"checkatrade",
"other",
"none"
],
"type": "string",
"description": "Trade body or accreditation the business belongs to (pda = Painting and Decorating Association)."
},
"company_number": {
"type": "string",
"description": "Companies House number, for example 12345678 or SC123456."
},
"licence_number": {
"type": "string",
"description": "Membership or registration number with that body."
}
},
"description": "Optional. The decorator's own business details (Nero Trade Profile v1). Used to prefill quotes and to give a stable nero_trade_ref. Not stored by Brush Pack.",
"additionalProperties": false
},
"surface": {
"enum": [
"new_plaster",
"previously_painted_walls",
"bare_softwood",
"mdf",
"previously_painted_wood",
"exterior_wood",
"bare_metal_ferrous",
"galvanised_or_aluminium",
"masonry",
"damp_or_water_stained",
"smoke_or_nicotine",
"mould"
],
"type": "string"
},
"surfaces": {
"type": "array",
"items": {
"enum": [
"new_plaster",
"previously_painted_walls",
"bare_softwood",
"mdf",
"previously_painted_wood",
"exterior_wood",
"bare_metal_ferrous",
"galvanised_or_aluminium",
"masonry",
"damp_or_water_stained",
"smoke_or_nicotine",
"mould"
],
"type": "string"
}
}
},
"additionalProperties": false
}Checks the decorator's own business details (Nero Trade Profile v1: trading name, Companies House number, trade body and number such as PDA or TrustMark, postcode, contact) and returns them cleaned, with a stable `nero_trade_ref` computed from the trade body membership or company number. Pass the same object as `trade` to any other tool. Brush Pack stores nothing. The same profile and reference can later be used to sign the business into Nero Work, the agent job exchange for trades.
| Argument | Type | Description |
|---|---|---|
| trade* | object | Optional. The decorator's own business details (Nero Trade Profile v1). Used to prefill quotes and to give a stable nero_trade_ref. Not stored by Brush Pack. |
{
"type": "object",
"required": [
"trade"
],
"properties": {
"trade": {
"type": "object",
"properties": {
"town": {
"type": "string"
},
"email": {
"type": "string"
},
"phone": {
"type": "string"
},
"address": {
"type": "string",
"description": "Business address for quotes."
},
"postcode": {
"type": "string"
},
"categories": {
"type": "array",
"items": {
"type": "string"
},
"description": "Trades offered. Defaults to [\"painting_decorating\"]."
},
"company_name": {
"type": "string",
"description": "Registered company name, if a limited company."
},
"display_name": {
"type": "string",
"description": "Trading name shown to customers, for example \"Fresh Coat Decorators\"."
},
"licence_body": {
"enum": [
"pda",
"dulux_select",
"trustmark",
"checkatrade",
"other",
"none"
],
"type": "string",
"description": "Trade body or accreditation the business belongs to (pda = Painting and Decorating Association)."
},
"company_number": {
"type": "string",
"description": "Companies House number, for example 12345678 or SC123456."
},
"licence_number": {
"type": "string",
"description": "Membership or registration number with that body."
}
},
"description": "Optional. The decorator's own business details (Nero Trade Profile v1). Used to prefill quotes and to give a stable nero_trade_ref. Not stored by Brush Pack.",
"additionalProperties": false
}
},
"additionalProperties": false
}Rolls of wallpaper for a room or feature wall from wall widths (or room length and width), height, roll width and length (default 10.05 x 0.53 m), pattern repeat and match (free, straight, half drop). Shows drops, cut length, drops per roll and rolls, plus one spare. Example: {"length_m":4,"width_m":3.5,"height_m":2.4,"pattern_repeat_cm":53,"pattern_match":"straight"}.
| Argument | Type | Description |
|---|---|---|
| trade | object | Optional. The decorator's own business details (Nero Trade Profile v1). Used to prefill quotes and to give a stable nero_trade_ref. Not stored by Brush Pack. |
| width_m | number | Room width, if papering all four walls. |
| height_m* | number | Height to paper, metres. |
| length_m | number | Room length, if papering all four walls. |
| roll_width_m | number | Defaults to 0.53. |
| pattern_match | string | Defaults to straight when a repeat is given, otherwise free. |
| roll_length_m | number | Defaults to 10.05. |
| wall_widths_m | array |
We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 13, 2026.
| hours_per_day |
| number |
| Defaults to 8. |
| materials_gbp | number | Cost of materials, pounds. |
| vat_registered | boolean | Adds VAT at 20%. |
| hourly_rate_gbp | number | Use instead of a day rate. |
| materials_markup_percent | number |
{
"type": "object",
"properties": {
"rooms": {
"type": "array",
"items": {
"type": "object",
"required": [
"length_m",
"width_m"
],
"properties": {
"name": {
"type": "string"
},
"doors": {
"type": "number",
"description": "Number of doors. Defaults to 1."
},
"width_m": {
"type": "number",
"description": "Room width, metres."
},
"windows": {
"type": "number",
"description": "Number of windows at the 1.2 x 1.2 m default size. Defaults to 1. Ignored if window_sizes is given."
},
"height_m": {
"type": "number",
"description": "Wall height floor to ceiling, metres. Defaults to 2.4."
},
"length_m": {
"type": "number",
"description": "Room length, metres."
},
"wall_coats": {
"type": "number"
},
"new_plaster": {
"type": "boolean"
},
"paint_walls": {
"type": "boolean"
},
"door_width_m": {
"type": "number",
"description": "Defaults to 0.762 (standard 2 ft 6 in door)."
},
"window_sizes": {
"type": "array",
"items": {
"type": "object",
"required": [
"width_m",
"height_m"
],
"properties": {
"width_m": {
"type": "number"
},
"height_m": {
"type": "number"
}
}
},
"description": "Real window opening sizes."
},
"ceiling_coats": {
"type": "number"
},
"door_height_m": {
"type": "number",
"description": "Defaults to 1.981."
},
"paint_ceiling": {
"type": "boolean"
},
"paint_woodwork": {
"type": "boolean"
},
"woodwork_coats": {
"type": "number"
},
"skirting_height_m": {
"type": "number",
"description": "Painted skirting height, defaults to 0.15."
}
}
},
"description": "At most 30."
},
"trade": {
"type": "object",
"properties": {
"town": {
"type": "string"
},
"email": {
"type": "string"
},
"phone": {
"type": "string"
},
"address": {
"type": "string",
"description": "Business address for quotes."
},
"postcode": {
"type": "string"
},
"categories": {
"type": "array",
"items": {
"type": "string"
},
"description": "Trades offered. Defaults to [\"painting_decorating\"]."
},
"company_name": {
"type": "string",
"description": "Registered company name, if a limited company."
},
"display_name": {
"type": "string",
"description": "Trading name shown to customers, for example \"Fresh Coat Decorators\"."
},
"licence_body": {
"enum": [
"pda",
"dulux_select",
"trustmark",
"checkatrade",
"other",
"none"
],
"type": "string",
"description": "Trade body or accreditation the business belongs to (pda = Painting and Decorating Association)."
},
"company_number": {
"type": "string",
"description": "Companies House number, for example 12345678 or SC123456."
},
"licence_number": {
"type": "string",
"description": "Membership or registration number with that body."
}
},
"description": "Optional. The decorator's own business details (Nero Trade Profile v1). Used to prefill quotes and to give a stable nero_trade_ref. Not stored by Brush Pack.",
"additionalProperties": false
},
"decorators": {
"type": "number",
"description": "People on the job. Defaults to 1."
},
"prep_level": {
"enum": [
"light",
"medium",
"heavy"
],
"type": "string",
"description": "light: sound surfaces; medium: normal filling and sanding (default); heavy: lots of filling, flaking paint, caulking."
},
"extra_tasks": {
"type": "array",
"items": {
"type": "object",
"required": [
"task",
"quantity"
],
"properties": {
"name": {
"type": "string"
},
"task": {
"enum": [
"strip_wallpaper_m2",
"hang_wallpaper_rolls",
"hang_patterned_wallpaper_rolls",
"masonry_smooth_m2_per_coat",
"masonry_rough_m2_per_coat",
"door_per_coat",
"window_per_coat",
"skirting_m_per_coat",
"custom_hours"
],
"type": "string"
},
"quantity": {
"type": "number"
}
}
},
"description": "At most 50."
},
"day_rate_gbp": {
"type": "number",
"description": "Day rate per decorator, pounds."
},
"hours_per_day": {
"type": "number",
"description": "Defaults to 8."
},
"materials_gbp": {
"type": "number",
"description": "Cost of materials, pounds."
},
"vat_registered": {
"type": "boolean",
"description": "Adds VAT at 20%."
},
"hourly_rate_gbp": {
"type": "number",
"description": "Use instead of a day rate."
},
"materials_markup_percent": {
"type": "number"
}
},
"additionalProperties": false
}| already_disturbed |
| boolean |
| Old paint has already been sanded, scraped or burnt off without lead precautions. |
| original_paint_likely | boolean | False if the old layers are known to have been stripped back to bare before. Default true. |
| children_under_6_or_pregnant | boolean | A child under 6 or a pregnant person lives in or visits the home. |
{
"type": "object",
"properties": {
"era": {
"enum": [
"pre_1960",
"1960_1979",
"1980_1992",
"after_1992",
"unknown"
],
"type": "string",
"description": "Use if the exact year is unknown."
},
"trade": {
"type": "object",
"properties": {
"town": {
"type": "string"
},
"email": {
"type": "string"
},
"phone": {
"type": "string"
},
"address": {
"type": "string",
"description": "Business address for quotes."
},
"postcode": {
"type": "string"
},
"categories": {
"type": "array",
"items": {
"type": "string"
},
"description": "Trades offered. Defaults to [\"painting_decorating\"]."
},
"company_name": {
"type": "string",
"description": "Registered company name, if a limited company."
},
"display_name": {
"type": "string",
"description": "Trading name shown to customers, for example \"Fresh Coat Decorators\"."
},
"licence_body": {
"enum": [
"pda",
"dulux_select",
"trustmark",
"checkatrade",
"other",
"none"
],
"type": "string",
"description": "Trade body or accreditation the business belongs to (pda = Painting and Decorating Association)."
},
"company_number": {
"type": "string",
"description": "Companies House number, for example 12345678 or SC123456."
},
"licence_number": {
"type": "string",
"description": "Membership or registration number with that body."
}
},
"description": "Optional. The decorator's own business details (Nero Trade Profile v1). Used to prefill quotes and to give a stable nero_trade_ref. Not stored by Brush Pack.",
"additionalProperties": false
},
"surfaces": {
"type": "array",
"items": {
"enum": [
"windows",
"doors",
"skirting_and_trim",
"stairs_and_banisters",
"metal_railings_or_gates",
"walls",
"ceilings",
"exterior_woodwork"
],
"type": "string"
}
},
"build_year": {
"type": "number",
"description": "Year the home (or the painted item) was built."
},
"test_result": {
"enum": [
"not_tested",
"swab_positive",
"swab_negative",
"lab_positive",
"lab_negative"
],
"type": "string"
},
"paint_condition": {
"enum": [
"sound",
"flaking_or_chipping",
"chalky_or_powdery",
"unknown"
],
"type": "string"
},
"planned_methods": {
"type": "array",
"items": {
"enum": [
"overpaint_sound_paint",
"wet_abrading",
"chemical_stripper",
"heat_gun",
"dry_sanding",
"power_sanding",
"blowlamp_or_torch",
"abrasive_blasting",
"dry_scraping"
],
"type": "string"
}
},
"already_disturbed": {
"type": "boolean",
"description": "Old paint has already been sanded, scraped or burnt off without lead precautions."
},
"original_paint_likely": {
"type": "boolean",
"description": "False if the old layers are known to have been stripped back to bare before. Default true."
},
"children_under_6_or_pregnant": {
"type": "boolean",
"description": "A child under 6 or a pregnant person lives in or visits the home."
}
},
"additionalProperties": false
}| number |
| Number of windows at the 1.2 x 1.2 m default size. Defaults to 1. Ignored if window_sizes is given. |
| height_m | number | Wall height floor to ceiling, metres. Defaults to 2.4. |
| length_m | number | Room length, metres. |
| wall_coats | number | Defaults to 2 (plus a mist coat on new plaster). |
| openings_m2 | number | Exterior: total area of doors and windows to take off. |
| paint_walls | boolean | Default true. |
| perimeter_m | number | Exterior: total length of walls to paint, metres. |
| tin_sizes_l | array | Tin sizes on offer, litres. Defaults by product: emulsion 10, 5, 2.5, 1; masonry 10, 5, 2.5; trim 2.5, 1, 0.75, 0.5. |
| door_width_m | number | Defaults to 0.762 (standard 2 ft 6 in door). |
| wall_surface | string | Surface of the walls. Room default smooth_painted; exterior default masonry_smooth. smooth_painted: Previously painted smooth plaster or plasterboard (12 m2/L); new_plaster: New bare plaster (porous, needs a mist coat) (9 m2/L); bare_plasterboard: Bare plasterboard (10 m2/L); lining_paper: Lining paper (11 m2/L); textured: Textured coating or woodchip (7 m2/L); masonry_smooth: Smooth render or painted masonry (7 m2/L); masonry_rough: Pebbledash or rough cast (4 m2/L); bare_brick: Bare brick or block (5 m2/L); woodwork: Woodwork top coat (gloss, satin, eggshell) (15 m2/L); wood_primer: Primer or undercoat on bare wood (12 m2/L); metal: Metal paint (railings, gates, radiators) (12 m2/L); wood_stain: Exterior wood stain or treatment (12 m2/L) |
| window_sizes | array | Real window opening sizes. |
| ceiling_coats | number | Defaults to 2. |
| colour_change | string | light_over_dark and strong_colour add one wall coat. |
| door_height_m | number | Defaults to 1.981. |
| paint_ceiling | boolean | Default true. |
| waste_percent | number | Added to the litres before choosing tins. Defaults to 10. |
| woodwork_bare | boolean | Adds a primer or undercoat coat on the woodwork. |
| paint_woodwork | boolean | Default true (skirting, door faces and frames, window frames). |
| woodwork_coats | number | Top coats on woodwork, defaults to 2. |
| ceiling_surface | string |
| skirting_height_m | number | Painted skirting height, defaults to 0.15. |
| coverage_m2_per_litre | number | Spreading rate from the tin, used for every wall and ceiling line. |
{
"type": "object",
"properties": {
"job": {
"enum": [
"room",
"exterior",
"custom"
],
"type": "string",
"description": "Defaults to room, or exterior if perimeter_m is given, or custom if areas is given."
},
"areas": {
"type": "array",
"items": {
"type": "object"
},
"description": "Custom: list of { name, area_m2, surface, coats, coverage_m2_per_litre }. At most 100."
},
"doors": {
"type": "number",
"description": "Number of doors. Defaults to 1."
},
"trade": {
"type": "object",
"properties": {
"town": {
"type": "string"
},
"email": {
"type": "string"
},
"phone": {
"type": "string"
},
"address": {
"type": "string",
"description": "Business address for quotes."
},
"postcode": {
"type": "string"
},
"categories": {
"type": "array",
"items": {
"type": "string"
},
"description": "Trades offered. Defaults to [\"painting_decorating\"]."
},
"company_name": {
"type": "string",
"description": "Registered company name, if a limited company."
},
"display_name": {
"type": "string",
"description": "Trading name shown to customers, for example \"Fresh Coat Decorators\"."
},
"licence_body": {
"enum": [
"pda",
"dulux_select",
"trustmark",
"checkatrade",
"other",
"none"
],
"type": "string",
"description": "Trade body or accreditation the business belongs to (pda = Painting and Decorating Association)."
},
"company_number": {
"type": "string",
"description": "Companies House number, for example 12345678 or SC123456."
},
"licence_number": {
"type": "string",
"description": "Membership or registration number with that body."
}
},
"description": "Optional. The decorator's own business details (Nero Trade Profile v1). Used to prefill quotes and to give a stable nero_trade_ref. Not stored by Brush Pack.",
"additionalProperties": false
},
"gables": {
"type": "array",
"items": {
"type": "object",
"properties": {
"width_m": {
"type": "number"
},
"height_m": {
"type": "number"
}
}
},
"description": "Exterior: gable triangles above the eaves line (width at the base, height to the ridge)."
},
"width_m": {
"type": "number",
"description": "Room width, metres."
},
"windows": {
"type": "number",
"description": "Number of windows at the 1.2 x 1.2 m default size. Defaults to 1. Ignored if window_sizes is given."
},
"height_m": {
"type": "number",
"description": "Wall height floor to ceiling, metres. Defaults to 2.4."
},
"length_m": {
"type": "number",
"description": "Room length, metres."
},
"wall_coats": {
"type": "number",
"description": "Defaults to 2 (plus a mist coat on new plaster)."
},
"openings_m2": {
"type": "number",
"description": "Exterior: total area of doors and windows to take off."
},
"paint_walls": {
"type": "boolean",
"description": "Default true."
},
"perimeter_m": {
"type": "number",
"description": "Exterior: total length of walls to paint, metres."
},
"tin_sizes_l": {
"type": "array",
"items": {
"type": "number"
},
"description": "Tin sizes on offer, litres. Defaults by product: emulsion 10, 5, 2.5, 1; masonry 10, 5, 2.5; trim 2.5, 1, 0.75, 0.5."
},
"door_width_m": {
"type": "number",
"description": "Defaults to 0.762 (standard 2 ft 6 in door)."
},
"wall_surface": {
"enum": [
"smooth_painted",
"new_plaster",
"bare_plasterboard",
"lining_paper",
"textured",
"masonry_smooth",
"masonry_rough",
"bare_brick",
"woodwork",
"wood_primer",
"metal",
"wood_stain"
],
"type": "string",
"description": "Surface of the walls. Room default smooth_painted; exterior default masonry_smooth. smooth_painted: Previously painted smooth plaster or plasterboard (12 m2/L); new_plaster: New bare plaster (porous, needs a mist coat) (9 m2/L); bare_plasterboard: Bare plasterboard (10 m2/L); lining_paper: Lining paper (11 m2/L); textured: Textured coating or woodchip (7 m2/L); masonry_smooth: Smooth render or painted masonry (7 m2/L); masonry_rough: Pebbledash or rough cast (4 m2/L); bare_brick: Bare brick or block (5 m2/L); woodwork: Woodwork top coat (gloss, satin, eggshell) (15 m2/L); wood_primer: Primer or undercoat on bare wood (12 m2/L); metal: Metal paint (railings, gates, radiators) (12 m2/L); wood_stain: Exterior wood stain or treatment (12 m2/L)"
},
"window_sizes": {
"type": "array",
"items": {
"type": "object",
"required": [
"width_m",
"height_m"
],
"properties": {
"width_m": {
"type": "number"
},
"height_m": {
"type": "number"
}
}
},
"description": "Real window opening sizes."
},
"ceiling_coats": {
"type": "number",
"description": "Defaults to 2."
},
"colour_change": {
"enum": [
"similar",
"light_over_dark",
"dark_over_light",
"strong_colour"
],
"type": "string",
"description": "light_over_dark and strong_colour add one wall coat."
},
"door_height_m": {
"type": "number",
"description": "Defaults to 1.981."
},
"paint_ceiling": {
"type": "boolean",
"description": "Default true."
},
"waste_percent": {
"type": "number",
"description": "Added to the litres before choosing tins. Defaults to 10."
},
"woodwork_bare": {
"type": "boolean",
"description": "Adds a primer or undercoat coat on the woodwork."
},
"paint_woodwork": {
"type": "boolean",
"description": "Default true (skirting, door faces and frames, window frames)."
},
"woodwork_coats": {
"type": "number",
"description": "Top coats on woodwork, defaults to 2."
},
"ceiling_surface": {
"enum": [
"smooth_painted",
"new_plaster",
"bare_plasterboard",
"lining_paper",
"textured",
"masonry_smooth",
"masonry_rough",
"bare_brick",
"woodwork",
"wood_primer",
"metal",
"wood_stain"
],
"type": "string"
},
"skirting_height_m": {
"type": "number",
"description": "Painted skirting height, defaults to 0.15."
},
"coverage_m2_per_litre": {
"type": "number",
"description": "Spreading rate from the tin, used for every wall and ceiling line."
}
},
"additionalProperties": false
}| Width of each wall to paper. For one feature wall give one width. |
| deduct_width_m | number | Width of near full height openings (patio doors, wide windows) to take off. |
| pattern_repeat_cm | number | Pattern repeat from the roll label, cm. 0 or missing means no repeat. |
| trim_allowance_cm | number | Total extra per drop for trimming top and bottom. Defaults to 10. |
{
"type": "object",
"required": [
"height_m"
],
"properties": {
"trade": {
"type": "object",
"properties": {
"town": {
"type": "string"
},
"email": {
"type": "string"
},
"phone": {
"type": "string"
},
"address": {
"type": "string",
"description": "Business address for quotes."
},
"postcode": {
"type": "string"
},
"categories": {
"type": "array",
"items": {
"type": "string"
},
"description": "Trades offered. Defaults to [\"painting_decorating\"]."
},
"company_name": {
"type": "string",
"description": "Registered company name, if a limited company."
},
"display_name": {
"type": "string",
"description": "Trading name shown to customers, for example \"Fresh Coat Decorators\"."
},
"licence_body": {
"enum": [
"pda",
"dulux_select",
"trustmark",
"checkatrade",
"other",
"none"
],
"type": "string",
"description": "Trade body or accreditation the business belongs to (pda = Painting and Decorating Association)."
},
"company_number": {
"type": "string",
"description": "Companies House number, for example 12345678 or SC123456."
},
"licence_number": {
"type": "string",
"description": "Membership or registration number with that body."
}
},
"description": "Optional. The decorator's own business details (Nero Trade Profile v1). Used to prefill quotes and to give a stable nero_trade_ref. Not stored by Brush Pack.",
"additionalProperties": false
},
"width_m": {
"type": "number",
"description": "Room width, if papering all four walls."
},
"height_m": {
"type": "number",
"description": "Height to paper, metres."
},
"length_m": {
"type": "number",
"description": "Room length, if papering all four walls."
},
"roll_width_m": {
"type": "number",
"description": "Defaults to 0.53."
},
"pattern_match": {
"enum": [
"free",
"straight",
"half_drop"
],
"type": "string",
"description": "Defaults to straight when a repeat is given, otherwise free."
},
"roll_length_m": {
"type": "number",
"description": "Defaults to 10.05."
},
"wall_widths_m": {
"type": "array",
"items": {
"type": "number"
},
"description": "Width of each wall to paper. For one feature wall give one width."
},
"deduct_width_m": {
"type": "number",
"description": "Width of near full height openings (patio doors, wide windows) to take off."
},
"pattern_repeat_cm": {
"type": "number",
"description": "Pattern repeat from the roll label, cm. 0 or missing means no repeat."
},
"trim_allowance_cm": {
"type": "number",
"description": "Total extra per drop for trimming top and bottom. Defaults to 10."
}
},
"additionalProperties": false
}