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.
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.
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.
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.
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.
Start
Record the actual start date
Keyed on work_reference_number only — the permit reference isn't used past apply.
PUT /works/…/start — not sent
Stop
Record the actual stop date
Must be after the actual start date; Street Manager enforces the ordering server-side.
PUT /works/…/stop — not sent