Cable sizing, Part P, certificate checks and G98/G99 for UK electricians' AI assistants
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.
Checks a filled EIC, Minor Works certificate or EICR (shape from get_certificate_schema) and returns `ready_to_transfer`, every missing required field by path, errors (readings that fail: insulation resistance under 1 megohm at 500 V, measured Zs above the maximum for the breaker, RCD trip times too slow, wrong polarity, an EICR marked satisfactory with a C1 or C2) and warnings (Zs above 80% of maximum, mismatched ring readings, low insulation resistance). Contractor fields left blank are filled from `trade`. Returns the (prefilled) data back.
The certificate object, shaped like the JSON Schema from get_certificate_schema.
Optional. The electrician's own business details (Nero Trade Profile v1). Used to prefill certificate contractor fields and to give a stable nero_trade_ref. Not stored by Spark Pack.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http spark-pack https://spark-pack.nerolabs.workers.dev/mcp
Checks a filled EIC, Minor Works certificate or EICR (shape from get_certificate_schema) and returns `ready_to_transfer`, every missing required field by path, errors (readings that fail: insulation resistance under 1 megohm at 500 V, measured Zs above the maximum for the breaker, RCD trip times too slow, wrong polarity, an EICR marked satisfactory with a C1 or C2) and warnings (Zs above 80% of maximum, mismatched ring readings, low insulation resistance). Contractor fields left blank are filled from `trade`. Returns the (prefilled) data back.
| Argument | Type | Description |
|---|---|---|
| data* | object | The certificate object, shaped like the JSON Schema from get_certificate_schema. |
| trade | object | Optional. The electrician's own business details (Nero Trade Profile v1). Used to prefill certificate contractor fields and to give a stable nero_trade_ref. Not stored by Spark Pack. |
| certificate* | string |
{
"type": "object",
"required": [
"certificate",
"data"
],
"properties": {
"data": {
"type": "object",
"description": "The certificate object, shaped like the JSON Schema from get_certificate_schema."
},
"trade": {
"type": "object",
"properties": {
"town": {
"type": "string"
},
"email": {
"type": "string"
},
"phone": {
"type": "string"
},
"address": {
"type": "string",
"description": "Business address for the certificate contractor block."
},
"postcode": {
"type": "string"
},
"categories": {
"type": "array",
"items": {
"type": "string"
},
"description": "Trades offered. Defaults to [\"electrical\"]."
},
"company_name": {
"type": "string",
"description": "Registered company name, if a limited company."
},
"display_name": {
"type": "string",
"description": "Trading name shown to customers, for example \"Bright Sparks Electrical\"."
},
"licence_body": {
"enum": [
"niceic",
"napit",
"elecsa",
"stroma",
"certsure",
"benchmark",
"other",
"none"
],
"type": "string",
"description": "Competent person scheme the business is registered with."
},
"company_number": {
"type": "string",
"description": "Companies House number, for example 12345678 or SC123456."
},
"licence_number": {
"type": "string",
"description": "Scheme registration or enrolment number."
}
},
"description": "Optional. The electrician's own business details (Nero Trade Profile v1). Used to prefill certificate contractor fields and to give a stable nero_trade_ref. Not stored by Spark Pack.",
"additionalProperties": false
},
"certificate": {
"enum": [
"eic",
"minor_works",
"eicr"
],
"type": "string"
}
},
"additionalProperties": false
}For solar PV, batteries, V2G chargers, EV chargers and heat pumps in Great Britain: says which network operator process applies and when. Generation: G98 (fully type tested, 16 A / 3.68 kW per phase or less: install, then notify within 28 days) or G99 (apply and wait for acceptance before installing), counting existing generation and battery inverters. Demand: the ENA EV charge point and heat pump form (connect and notify within 28 days if every criterion is met, otherwise apply first), with each criterion marked true, false or null (not yet known). Returns `generation`, `demand`, `facts_to_put_on_the_form` (prefilled from inputs and `trade`), `missing_facts` and sources. Example: 5 kW solar plus a 5 kW battery inverter on single phase: {"supply_phases":1,"new_equipment":[{"type":"solar_pv","rating_kw":5,"type_tested":true},{"type":"battery","rating_kw":5,"type_tested":true}]}.
| Argument | Type | Description |
|---|---|---|
| mpan | string | Meter point administration number (the supply number on the bill). |
| trade | object | Optional. The electrician's own business details (Nero Trade Profile v1). Used to prefill certificate contractor fields and to give a stable nero_trade_ref. Not stored by Spark Pack. |
| nation | string | Defaults to great_britain. |
| metered | boolean | The supply is metered (defaults to unknown). |
| earthing | string | Supply earthing, for example TN-C-S. |
Answers whether domestic electrical work in England or Wales must be notified to building control under Part P of the Building Regulations, with the reason and what to do next (self-certify through a competent person scheme within 30 days, or tell building control before starting). England and Wales differ: in Wales kitchens and outdoor areas are still special locations. Returns `notifiable` (true or false), `answer`, `reason`, `what_to_do`, `must_check` and sources. Scotland and Northern Ireland return not_covered. Example: adding a socket in a kitchen in England: {"nation":"england","work":"add_to_or_alter_existing_circuit","locations":["kitchen"]}.
| Argument | Type | Description |
|---|---|---|
| work* | string | The kind of work. Pick the most significant if the job has several parts (a new circuit outranks everything). |
| trade | object | Optional. The electrician's own business details (Nero Trade Profile v1). Used to prefill certificate contractor fields and to give a stable nero_trade_ref. Not stored by Spark Pack. |
| nation* | string | Where the property is. |
| building | string | Defaults to dwelling. |
| locations | array | Where the work is. bath_or_shower_zone means within the zoned space around a bath or shower. Defaults to ["elsewhere"]. |
| registered_with_competent_person_scheme |
Returns the fields an Electrical Installation Certificate (eic), Minor Electrical Installation Works Certificate (minor_works) or Electrical Installation Condition Report (eicr) needs, as a JSON Schema the assistant fills from the job notes and test readings (spark-pack-certs-1.0 (for BS 7671:2018+A4:2026 certificates)). Includes which certificate to use when, and the contractor block prefilled from `trade` if given. Send the filled object to check_certificate. Field names are Spark Pack's own; the electrician transfers the values to the official form in their scheme portal or software.
| Argument | Type | Description |
|---|---|---|
| trade | object | Optional. The electrician's own business details (Nero Trade Profile v1). Used to prefill certificate contractor fields and to give a stable nero_trade_ref. Not stored by Spark Pack. |
| certificate* | string | eic for new circuits, consumer units and new installations; minor_works for additions or alterations to one existing circuit; eicr for periodic inspection reports. |
{
"type": "object",
"required": [
"certificate"
],
"properties": {
"trade": {
"type": "object",
"properties": {
"town": {
"type": "string"
},
"email": {
"type": "string"
},
"phone": {
"type": "string"
},
"address": {
"type": "string",
"description": "Business address for the certificate contractor block."
},
"postcode": {
"type": "string"
},
"categories": {
"type": "array",
"items": {
"type": "string"
},
"description": "Trades offered. Defaults to [\"electrical\"]."
},
"company_name": {
"type": "string",
"description": "Registered company name, if a limited company."
},
"display_name": {
"type": "string",
"description": "Trading name shown to customers, for example \"Bright Sparks Electrical\"."
},
"licence_body": {
"enum": [
"niceic",
"napit",
"elecsa",
"stroma",
"certsure",
"benchmark",
"other",
"none"
],
"type": "string",
"description": "Competent person scheme the business is registered with."
},
"company_number": {
"type": "string",
"description": "Companies House number, for example 12345678 or SC123456."
},
"licence_number": {
"type": "string",
"description": "Scheme registration or enrolment number."
}
},
"description": "Optional. The electrician's own business details (Nero Trade Profile v1). Used to prefill certificate contractor fields and to give a stable nero_trade_ref. Not stored by Spark Pack.",
"additionalProperties": false
},
"certificate": {
"enum": [
"eic",
"minor_works",
"eicr"
],
"type": "string",
"description": "eic for new circuits, consumer units and new installations; minor_works for additions or alterations to one existing circuit; eicr for periodic inspection reports."
}
},
"additionalProperties": false
}Lists Spark Pack's tools, the regulations edition it targets, what it covers (nations, circuit types, cable types, installation methods) and what it deliberately does not do. Free, needs no input.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Sizes a UK final circuit or sub-main and shows the working: design current (with cooker diversity), protective device rating, the smallest cable size that passes current-carrying capacity, voltage drop (3% lighting, 5% other) and earth fault loop impedance (Zs against the maximum for B, C or D breakers), plus a cpc adiabatic check. Returns `recommended` (size and every check with status pass, fail, indicative_pass, needs_input), `sizes_considered` (one line per size), `must_check_against_regs` (points the electrician confirms in BS 7671) and sources. Current-carrying capacity comes from a cautious heat-flow model, not BS 7671 tables, so it is marked indicative; give `cable_size_mm2` plus `tabulated_capacity_a` from the regs for a firm check. Voltage drop and Zs are calculated from physics and are firm for the inputs given. Typical call: a 9.5 kW shower on an 18 m run clipped direct: {"circuit_type":"shower","load_kw":9.5,"run_length_m":18,"installation_method":"clipped_direct"}.
| Argument | Type | Description |
|---|---|---|
| cores | number | SWA only: number of cores. Defaults to 3 single phase (spare core as cpc) or 4 three phase. With 2 the armour is the cpc: give armour_resistance_mohm_per_m. |
| trade | object | Optional. The electrician's own business details (Nero Trade Profile v1). Used to prefill certificate contractor fields and to give a stable nero_trade_ref. Not stored by Spark Pack. |
| phases | number | Defaults to 1. |
| load_kw | number | Load in kW (for example 9.5 for a shower, 7.4 for a 32 A EV charger). Give this or design_current_a. |
Checks the electrician's own business details (Nero Trade Profile v1: trading name, Companies House number, competent person scheme and number, postcode, contact) and returns them cleaned, with a stable `nero_trade_ref` computed from the scheme registration or company number. Pass the same object as `trade` to any other tool to prefill certificates and grid forms. Spark 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 electrician's own business details (Nero Trade Profile v1). Used to prefill certificate contractor fields and to give a stable nero_trade_ref. Not stored by Spark 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 the certificate contractor block."
},
"postcode": {
"type": "string"
},
"categories": {
"type": "array",
"items": {
"type": "string"
},
"description": "Trades offered. Defaults to [\"electrical\"]."
},
"company_name": {
"type": "string",
"description": "Registered company name, if a limited company."
},
"display_name": {
"type": "string",
"description": "Trading name shown to customers, for example \"Bright Sparks Electrical\"."
},
"licence_body": {
"enum": [
"niceic",
"napit",
"elecsa",
"stroma",
"certsure",
"benchmark",
"other",
"none"
],
"type": "string",
"description": "Competent person scheme the business is registered with."
},
"company_number": {
"type": "string",
"description": "Companies House number, for example 12345678 or SC123456."
},
"licence_number": {
"type": "string",
"description": "Scheme registration or enrolment number."
}
},
"description": "Optional. The electrician's own business details (Nero Trade Profile v1). Used to prefill certificate contractor fields and to give a stable nero_trade_ref. Not stored by Spark Pack.",
"additionalProperties": false
}
},
"additionalProperties": false
}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.
| ct_metered |
| boolean |
| new_equipment* | array | Equipment being installed. |
| site_postcode | string |
| supply_phases | number | Defaults to 1. |
| looped_service | boolean | The supply is looped with a neighbour. |
| export_limit_kw | number | Export limit if an export limiting scheme (G100) is fitted. |
| cut_out_rating_a | number | Network cut-out fuse rating, amps. Do not open the cut-out to find it. |
| multiple_premises | boolean | Part of several installations in a close area (housing development, street-wide scheme). |
| commissioning_date | string | YYYY-MM-DD. |
| existing_equipment | array | Generation, storage or chargers already at the premises, same shape as new_equipment. |
| max_demand_after_a | number | Premises maximum demand after the installation, amps per phase (from a load survey). |
| battery_storage_kwh | number |
| load_limiting_device | boolean | A load limiting or curtailment device keeps demand below the cut-out rating. |
| service_equipment_ok | boolean | No safety or adequacy concerns with the cut-out and service cable. |
| heat_pump_single_controller | boolean |
{
"type": "object",
"required": [
"new_equipment"
],
"properties": {
"mpan": {
"type": "string",
"description": "Meter point administration number (the supply number on the bill)."
},
"trade": {
"type": "object",
"properties": {
"town": {
"type": "string"
},
"email": {
"type": "string"
},
"phone": {
"type": "string"
},
"address": {
"type": "string",
"description": "Business address for the certificate contractor block."
},
"postcode": {
"type": "string"
},
"categories": {
"type": "array",
"items": {
"type": "string"
},
"description": "Trades offered. Defaults to [\"electrical\"]."
},
"company_name": {
"type": "string",
"description": "Registered company name, if a limited company."
},
"display_name": {
"type": "string",
"description": "Trading name shown to customers, for example \"Bright Sparks Electrical\"."
},
"licence_body": {
"enum": [
"niceic",
"napit",
"elecsa",
"stroma",
"certsure",
"benchmark",
"other",
"none"
],
"type": "string",
"description": "Competent person scheme the business is registered with."
},
"company_number": {
"type": "string",
"description": "Companies House number, for example 12345678 or SC123456."
},
"licence_number": {
"type": "string",
"description": "Scheme registration or enrolment number."
}
},
"description": "Optional. The electrician's own business details (Nero Trade Profile v1). Used to prefill certificate contractor fields and to give a stable nero_trade_ref. Not stored by Spark Pack.",
"additionalProperties": false
},
"nation": {
"enum": [
"great_britain",
"northern_ireland"
],
"type": "string",
"description": "Defaults to great_britain."
},
"metered": {
"type": "boolean",
"description": "The supply is metered (defaults to unknown)."
},
"earthing": {
"type": "string",
"description": "Supply earthing, for example TN-C-S."
},
"ct_metered": {
"type": "boolean"
},
"new_equipment": {
"type": "array",
"items": {
"type": "object",
"required": [
"type",
"rating_kw"
],
"properties": {
"type": {
"enum": [
"solar_pv",
"battery",
"v2g_charger",
"ev_charger",
"heat_pump",
"wind",
"other_generation"
],
"type": "string"
},
"model": {
"type": "string"
},
"rating_kw": {
"type": "number",
"description": "AC rating in kW: the inverter rating for PV and batteries, the charge rate for EV chargers, the maximum electrical input for heat pumps."
},
"type_tested": {
"type": "boolean",
"description": "Fully type tested and on the ENA Type Test Verification Report Register."
},
"manufacturer": {
"type": "string"
},
"phase_connection": {
"enum": [
"single",
"three"
],
"type": "string",
"description": "Defaults to single."
},
"connect_and_notify_listed": {
"type": "boolean",
"description": "Heat pumps: the model is marked Connect and Notify in the ENA heat pump database."
}
},
"additionalProperties": false
},
"description": "Equipment being installed."
},
"site_postcode": {
"type": "string"
},
"supply_phases": {
"enum": [
1,
3
],
"type": "number",
"description": "Defaults to 1."
},
"looped_service": {
"type": "boolean",
"description": "The supply is looped with a neighbour."
},
"export_limit_kw": {
"type": "number",
"description": "Export limit if an export limiting scheme (G100) is fitted."
},
"cut_out_rating_a": {
"type": "number",
"description": "Network cut-out fuse rating, amps. Do not open the cut-out to find it."
},
"multiple_premises": {
"type": "boolean",
"description": "Part of several installations in a close area (housing development, street-wide scheme)."
},
"commissioning_date": {
"type": "string",
"description": "YYYY-MM-DD."
},
"existing_equipment": {
"type": "array",
"items": {
"type": "object"
},
"description": "Generation, storage or chargers already at the premises, same shape as new_equipment."
},
"max_demand_after_a": {
"type": "number",
"description": "Premises maximum demand after the installation, amps per phase (from a load survey)."
},
"battery_storage_kwh": {
"type": "number"
},
"load_limiting_device": {
"type": "boolean",
"description": "A load limiting or curtailment device keeps demand below the cut-out rating."
},
"service_equipment_ok": {
"type": "boolean",
"description": "No safety or adequacy concerns with the cut-out and service cable."
},
"heat_pump_single_controller": {
"type": "boolean"
}
},
"additionalProperties": false
}| boolean |
| Whether the electrician is registered with a scheme such as NICEIC or NAPIT. Changes the next steps. |
{
"type": "object",
"required": [
"nation",
"work"
],
"properties": {
"work": {
"enum": [
"new_circuit",
"consumer_unit_replacement",
"add_to_or_alter_existing_circuit",
"replace_like_for_like",
"repair_or_maintenance",
"connect_equipment_to_existing_point"
],
"type": "string",
"description": "The kind of work. Pick the most significant if the job has several parts (a new circuit outranks everything)."
},
"trade": {
"type": "object",
"properties": {
"town": {
"type": "string"
},
"email": {
"type": "string"
},
"phone": {
"type": "string"
},
"address": {
"type": "string",
"description": "Business address for the certificate contractor block."
},
"postcode": {
"type": "string"
},
"categories": {
"type": "array",
"items": {
"type": "string"
},
"description": "Trades offered. Defaults to [\"electrical\"]."
},
"company_name": {
"type": "string",
"description": "Registered company name, if a limited company."
},
"display_name": {
"type": "string",
"description": "Trading name shown to customers, for example \"Bright Sparks Electrical\"."
},
"licence_body": {
"enum": [
"niceic",
"napit",
"elecsa",
"stroma",
"certsure",
"benchmark",
"other",
"none"
],
"type": "string",
"description": "Competent person scheme the business is registered with."
},
"company_number": {
"type": "string",
"description": "Companies House number, for example 12345678 or SC123456."
},
"licence_number": {
"type": "string",
"description": "Scheme registration or enrolment number."
}
},
"description": "Optional. The electrician's own business details (Nero Trade Profile v1). Used to prefill certificate contractor fields and to give a stable nero_trade_ref. Not stored by Spark Pack.",
"additionalProperties": false
},
"nation": {
"enum": [
"england",
"wales",
"scotland",
"northern_ireland"
],
"type": "string",
"description": "Where the property is."
},
"building": {
"enum": [
"dwelling",
"outbuilding_or_garden_of_dwelling",
"common_parts_of_flats",
"commercial_or_industrial"
],
"type": "string",
"description": "Defaults to dwelling."
},
"locations": {
"type": "array",
"items": {
"enum": [
"bath_or_shower_zone",
"swimming_or_paddling_pool",
"sauna_heater_room",
"kitchen",
"outdoors",
"elsewhere"
],
"type": "string"
},
"description": "Where the work is. bath_or_shower_zone means within the zoned space around a bath or shower. Defaults to [\"elsewhere\"]."
},
"registered_with_competent_person_scheme": {
"type": "boolean",
"description": "Whether the electrician is registered with a scheme such as NICEIC or NAPIT. Changes the next steps."
}
},
"additionalProperties": false
}| ze_ohms |
| number |
| Measured external earth fault loop impedance Ze, ohms. Without it the typical network maximum is used (0.35 TN-C-S, 0.8 TN-S). |
| earthing | string | Supply earthing. Defaults to tn_c_s (PME). |
| ambient_c | number | Ambient temperature, C. Defaults to 30 in air, 20 in the ground. |
| cable_type | string | Defaults to twin_and_earth, or swa_xlpe for buried runs and sub-mains. |
| circuit_type* | string | What the circuit feeds. ring_final and radial_sockets can be sized without a load (the device rating is used). |
| cpc_size_mm2 | number | Override the circuit protective conductor size (twin and earth sizes are known). |
| power_factor | number | Defaults to 1 (resistive loads, EV chargers). Use about 0.95 for heat pumps or mixed sub-main loads. |
| run_length_m* | number | Cable length from the board to the furthest point, metres. For a ring, the total ring length. |
| cable_size_mm2 | number | Check this specific size as well as finding the smallest that passes. |
| grouping_factor | number | Grouping factor Cg from the regs for the arrangement, if known. Without it Spark Pack uses a cautious estimate. |
| design_current_a | number | Design current Ib in amps, if already known. Overrides load_kw. |
| grouped_circuits | number | Number of circuits bunched together along the run, including this one. Defaults to 1. |
| cooker_has_socket | boolean | Cooker only: the cooker control unit has a socket outlet. |
| protective_device | object | The breaker or fuse. Leave rating_a out to let Spark Pack choose the smallest standard rating at or above the design current. |
| installation_method* | string | How the cable is run. clipped_direct: Clipped direct to a wall or surface, in free air; in_conduit_or_trunking_on_wall: In conduit or trunking fixed on a wall; in_conduit_in_insulated_wall: In conduit in a thermally insulated wall; touching_insulation_one_side: In a stud wall or ceiling void, touching thermal insulation on one side; surrounded_by_insulation: Totally surrounded by thermal insulation (deep loft insulation, insulated stud wall); above_ceiling_insulation_under_100mm: Clipped to a joist above a plasterboard ceiling, insulation 100 mm or less, cable not covered; buried_direct: Buried direct in the ground (about 0.7 m deep); in_duct_underground: In a duct in the ground (about 0.7 m deep). If the run passes through several, give the worst one (usually insulation). |
| tabulated_capacity_a | number | Tabulated current-carrying capacity It for cable_size_mm2 and this method, read from BS 7671 Appendix 4 by the electrician. Makes the capacity check firm. |
| apply_cooker_diversity | boolean | Cooker only: apply the usual domestic cooker diversity (default true). |
| soil_thermal_resistivity | number | Buried runs: soil thermal resistivity K.m/W, defaults to 2.5 (cautious). |
| armour_resistance_mohm_per_m | number | SWA armour resistance from the cable datasheet, milliohms per metre, when the armour is the cpc. |
| upstream_voltage_drop_percent | number | Voltage drop already used upstream (for a circuit fed from a sub-board), percent. |
{
"type": "object",
"required": [
"circuit_type",
"run_length_m",
"installation_method"
],
"properties": {
"cores": {
"enum": [
2,
3,
4
],
"type": "number",
"description": "SWA only: number of cores. Defaults to 3 single phase (spare core as cpc) or 4 three phase. With 2 the armour is the cpc: give armour_resistance_mohm_per_m."
},
"trade": {
"type": "object",
"properties": {
"town": {
"type": "string"
},
"email": {
"type": "string"
},
"phone": {
"type": "string"
},
"address": {
"type": "string",
"description": "Business address for the certificate contractor block."
},
"postcode": {
"type": "string"
},
"categories": {
"type": "array",
"items": {
"type": "string"
},
"description": "Trades offered. Defaults to [\"electrical\"]."
},
"company_name": {
"type": "string",
"description": "Registered company name, if a limited company."
},
"display_name": {
"type": "string",
"description": "Trading name shown to customers, for example \"Bright Sparks Electrical\"."
},
"licence_body": {
"enum": [
"niceic",
"napit",
"elecsa",
"stroma",
"certsure",
"benchmark",
"other",
"none"
],
"type": "string",
"description": "Competent person scheme the business is registered with."
},
"company_number": {
"type": "string",
"description": "Companies House number, for example 12345678 or SC123456."
},
"licence_number": {
"type": "string",
"description": "Scheme registration or enrolment number."
}
},
"description": "Optional. The electrician's own business details (Nero Trade Profile v1). Used to prefill certificate contractor fields and to give a stable nero_trade_ref. Not stored by Spark Pack.",
"additionalProperties": false
},
"phases": {
"enum": [
1,
3
],
"type": "number",
"description": "Defaults to 1."
},
"load_kw": {
"type": "number",
"description": "Load in kW (for example 9.5 for a shower, 7.4 for a 32 A EV charger). Give this or design_current_a."
},
"ze_ohms": {
"type": "number",
"description": "Measured external earth fault loop impedance Ze, ohms. Without it the typical network maximum is used (0.35 TN-C-S, 0.8 TN-S)."
},
"earthing": {
"enum": [
"tn_c_s",
"tn_s",
"tt"
],
"type": "string",
"description": "Supply earthing. Defaults to tn_c_s (PME)."
},
"ambient_c": {
"type": "number",
"description": "Ambient temperature, C. Defaults to 30 in air, 20 in the ground."
},
"cable_type": {
"enum": [
"twin_and_earth",
"swa_xlpe",
"swa_pvc",
"singles_in_conduit"
],
"type": "string",
"description": "Defaults to twin_and_earth, or swa_xlpe for buried runs and sub-mains."
},
"circuit_type": {
"enum": [
"shower",
"cooker",
"ev_charger",
"ring_final",
"radial_sockets",
"lighting",
"immersion",
"heat_pump",
"sub_main",
"other"
],
"type": "string",
"description": "What the circuit feeds. ring_final and radial_sockets can be sized without a load (the device rating is used)."
},
"cpc_size_mm2": {
"type": "number",
"description": "Override the circuit protective conductor size (twin and earth sizes are known)."
},
"power_factor": {
"type": "number",
"description": "Defaults to 1 (resistive loads, EV chargers). Use about 0.95 for heat pumps or mixed sub-main loads."
},
"run_length_m": {
"type": "number",
"description": "Cable length from the board to the furthest point, metres. For a ring, the total ring length."
},
"cable_size_mm2": {
"type": "number",
"description": "Check this specific size as well as finding the smallest that passes."
},
"grouping_factor": {
"type": "number",
"description": "Grouping factor Cg from the regs for the arrangement, if known. Without it Spark Pack uses a cautious estimate."
},
"design_current_a": {
"type": "number",
"description": "Design current Ib in amps, if already known. Overrides load_kw."
},
"grouped_circuits": {
"type": "number",
"description": "Number of circuits bunched together along the run, including this one. Defaults to 1."
},
"cooker_has_socket": {
"type": "boolean",
"description": "Cooker only: the cooker control unit has a socket outlet."
},
"protective_device": {
"type": "object",
"properties": {
"kind": {
"enum": [
"mcb",
"rcbo",
"rewireable_fuse"
],
"type": "string",
"description": "Defaults to mcb."
},
"curve": {
"enum": [
"B",
"C",
"D"
],
"type": "string",
"description": "Breaker type, defaults to B."
},
"rating_a": {
"type": "number",
"description": "Device rating In, amps."
}
},
"description": "The breaker or fuse. Leave rating_a out to let Spark Pack choose the smallest standard rating at or above the design current.",
"additionalProperties": false
},
"installation_method": {
"enum": [
"clipped_direct",
"in_conduit_or_trunking_on_wall",
"in_conduit_in_insulated_wall",
"touching_insulation_one_side",
"surrounded_by_insulation",
"above_ceiling_insulation_under_100mm",
"buried_direct",
"in_duct_underground"
],
"type": "string",
"description": "How the cable is run. clipped_direct: Clipped direct to a wall or surface, in free air; in_conduit_or_trunking_on_wall: In conduit or trunking fixed on a wall; in_conduit_in_insulated_wall: In conduit in a thermally insulated wall; touching_insulation_one_side: In a stud wall or ceiling void, touching thermal insulation on one side; surrounded_by_insulation: Totally surrounded by thermal insulation (deep loft insulation, insulated stud wall); above_ceiling_insulation_under_100mm: Clipped to a joist above a plasterboard ceiling, insulation 100 mm or less, cable not covered; buried_direct: Buried direct in the ground (about 0.7 m deep); in_duct_underground: In a duct in the ground (about 0.7 m deep). If the run passes through several, give the worst one (usually insulation)."
},
"tabulated_capacity_a": {
"type": "number",
"description": "Tabulated current-carrying capacity It for cable_size_mm2 and this method, read from BS 7671 Appendix 4 by the electrician. Makes the capacity check firm."
},
"apply_cooker_diversity": {
"type": "boolean",
"description": "Cooker only: apply the usual domestic cooker diversity (default true)."
},
"soil_thermal_resistivity": {
"type": "number",
"description": "Buried runs: soil thermal resistivity K.m/W, defaults to 2.5 (cautious)."
},
"armour_resistance_mohm_per_m": {
"type": "number",
"description": "SWA armour resistance from the cable datasheet, milliohms per metre, when the armour is the cpc."
},
"upstream_voltage_drop_percent": {
"type": "number",
"description": "Voltage drop already used upstream (for a circuit fed from a sub-board), percent."
}
},
"additionalProperties": false
}