EC
Example County Council

Highways & roads · Licensed works (Section 50)

Section 50 licence works

StreetWorks SDK example — the applicant submits an S50 application to Street Manager under the highway authority's own promoter account; the authority grants or refuses it there, with evidence attached and reinstatement bond estimated.

Demo — not connected to Street Manager

Submit a Section 50 application to Street Manager — where the authority manages, grants or refuses it. The applicant fills this in; it lands on Street Manager as a submitted S50 application under the authority's own promoter account, with supporting evidence attached to the record (insurance, accreditation, plans, via file_ids) and a surface-area bond estimate folded in. The highway authority then works it in Street Manager — reviews the application, grants or refuses — and confirms the outcome to the applicant directly by email or phone. Street Manager is the intake and case-management platform; the binding Section 50 licence itself, with its conditions, bond and signed undertakings, is the separate legal instrument the authority issues alongside. So this puts an S50 onto Street Manager and drives its workflow — it does not replace the licensing judgement, and an attached certificate is evidence lodged, not assessed. Every "Build request" button runs the SDK's real BNG reprojection and request-assembly in-page — the JSON shown is genuinely what streetmanager_section_50.py sends to the sandbox.

Step 1 · Street

Which street

Stated by the applicant, never inferred from the drawn extent — this is the load-bearing join, resolved by a human pick against Street Manager's own Lookup API.

Ferguson Court, Bishop Auckland — USRN 42820309

Step 2 · Extent

Draw the works extent

Click inside the grid to place the extent. The applicant draws in WGS84; the connector reprojects to British National Grid before it reaches Street Manager — Street Manager's own coordinate convention, not WGS84.

Drawn (WGS84)
53.611990° N, 1.664442° W
Reprojected (BNG)
412878.741 N, 422297.792 E

Step 3 · Works detail

Tell us about the works

Everything here is passed through unchanged — the connector is transport and identity injection only, never a rules engine.

confirmed required via live sandbox testing
also confirmed required via live sandbox testing
how the authority returns the grant/refuse decision — load-bearing here, so required even though Street Manager itself allows it empty

An S50 has no separate licensee field — the licensee's identity rides here, in the contact details, not in a promoter field of its own.

Step 4 · Evidence

Attach supporting evidence

The real Section 50 form demands "copies must be attached" — insurance, street works accreditation, site and land-registry plans. Street Manager accepts attachments, so these ride on the works record itself via file_ids. The connector uploads each file, collects the id Street Manager returns, and references it on the request — a genuine sandbox-verified two-step, not a mockup.

attached ≠ assessed — filing a certificate is evidence lodged, not evidence accepted. The grant decision still sits with the highway authority. Demo files are synthetic placeholders, never real documents.

Step 5 · Bond

Estimate the reinstatement bond

S50 bonds are priced by surface area — carriageway reinstatement costs multiples of footway or verge, so a flat rate misprices badly. Area comes metres-accurate from the drawn extent (already in British National Grid), split by surface as the applicant apportions it. The figure is a note folded into additional_info — never a structured Street Manager field, because bonds sit outside the permit schema entirely.

SurfaceArea (m²)Rate (£/m²)Subtotal
Carriageway £0.00
Footway £0.00
Verge £0.00
Estimated bond £0.00

Rates are illustrative — bond rates are council policy, vary by authority, change yearly. They're injected, never baked into the SDK, exactly like the SWA code above.

Assembles the real request body — nothing is sent anywhere.

POST /works — not sent


            

This is the exact WorkCreateRequest body section_50_utils.build_work_create_request would assemble from the form above — reprojected with the real BNG transform, not an approximation. Only the network call is missing.