FIELD INVENTORY & INSPECTION · FIELD TO OFFICE
Culvert & Storm Inlet Inventory and Inspection System
Client: Millbrook Township, Ridgeline County (fictional)
Prepared by L. Brown, Chord & Arc
| REV | DESCRIPTION | DATE | BY |
|---|---|---|---|
| 0 | Issued for demo | 2026-10-08 | L. Brown |
SECTION 2
Purpose
The township maintains about 180 culverts and 320 storm inlets on local roads and has no current record of where they are, what condition they are in, or when they were last looked at.
Field technicians capture each asset once on a phone with a required-field form and photos, then re-inspect on a 36-month cycle (12 months for poor or failed assets); the office reviews new captures and programs the next year's inspections.
The outcome is an inventory the township engineer can open in a browser, a defensible inspection program for the MS4 permit, and a renewal list ranked by condition and age.
SECTION 3
Users and roles
| ROLE | WHAT THEY DO | WHERE | ARCGIS USER TYPE |
|---|---|---|---|
| Field technician (2) | Captures and inspects assets with the Field Maps form; takes photos; syncs | Field, phone or tablet | Mobile Worker |
| QA reviewer (1) | Reviews new captures, corrects attributes, sets the office-reviewed flag | Office, browser | Creator |
| Township engineer | Filters, reads condition and due lists, exports for budget requests | Office or phone, browser | Viewer (or public web app) |
| Consultant (owner) | Builds, administers, maintains; runs the quarterly health check | Remote | Creator (admin) |
| Client project lead | Approves scope, signs milestones and acceptance | Office | None required |
SECTION 4
Architecture
- 01Field captureArcGIS Field Maps (iOS/Android, offline areas)
- sync02Hosted feature layer + related inspection table + attachmentsArcGIS Online
- 03Web map (symbology, labels, forms)ArcGIS Online
- 04Office web app (this demo)ArcGIS Maps SDK for JavaScript, Next.js, Vercel
- 05Township dashboardArcGIS Dashboards
- scheduled06Nightly exportPython (ArcGIS API), CSV + GeoPackage to the client's drive
- Everything above the office app is standard Esri configuration (the Starter tier).
- The office web app reads the same layers through the web map; swapping the demo's static data for the hosted layer is a one-line change in configuration.
- No custom server: the app is static files on Vercel; the data lives in the client's ArcGIS Online org.
SECTION 5
Data model
These tables are generated from the same schema file the demo app and the data generator use, so the sheet cannot drift from the data. Computed fields are derived in the office, not collected.
Culverts · point · 22 fieldsshowhide
Cross-drain and driveway culverts on township-maintained roads.
Storm inlets · point · 16 fieldsshowhide
Curb, grate, combination, and yard inlets on downtown streets and collectors.
Storm mains · polyline · 7 fieldsshowhide
Storm sewer mains along downtown streets.
Outfalls · point · 3 fieldsshowhide
Storm outfalls to the river, with the MS4 permit flag.
Inspections · table · 8 fieldsshowhide
One row per inspection, related to culverts and inlets by asset_id.
SECTION 6
Workflows
Field capture
- Technician opens the Field Maps map (offline area downloaded for the day's roads).
- Taps the road at the culvert; the form requires road, shape, material, size, condition, and at least one photo; pick lists enforce the domains.
- Station is computed in the office from the road's stationing origin, not typed in the field.
- Submit; the feature syncs when in coverage and appears in the office app flagged office_reviewed = false.
Office QA
- Reviewer filters Office reviewed = Needs review.
- Checks the photo against the attributes, corrects anything, confirms the road snap.
- Sets office_reviewed = true. The asset enters the inspection cycle.
Inspection cycle and programming
- next_due = last_inspected + 36 months, or + 12 months when condition ≤ 2. Overdue = next_due before today.
- Monthly, the engineer opens Insights → Program the next year and exports the due list by month.
- Crews work the list; each inspection adds a row to the related table and updates the asset's condition and dates.
Reporting
- Condition-by-material chart supports the annual renewal request to the Board.
- Nightly export lands a CSV and a GeoPackage on the township's drive for records and the MS4 annual report.
SECTION 7
Integrations and inputs
| CLIENT PROVIDES | FORMAT | HOW IT ENTERS THE SYSTEM |
|---|---|---|
| Existing culvert spreadsheet (if any) | XLSX or CSV | Mapped to the data model and loaded once as the starting inventory, flagged unverified until a crew confirms it |
| Road centerlines with names | Shapefile, GeoJSON, or a state DOT service | Loaded as the road layer; stationing origins assigned per road |
| MS4 outfall list | Spreadsheet | Loaded as the outfall layer with the permit flag |
| Township branding | Logo (SVG or PNG), colors | Applied to the office app and the dashboard |
SECTION 8
Security and access
- All layers are shared to the township's ArcGIS Online organization only; nothing is public unless the township asks for a public view.
- A public view, if requested, is a separate read-only layer view with photos and inspector names removed.
- Field technicians can add and edit their own features; only the QA reviewer and the consultant can delete.
- The office app's basemap key is scoped to basemaps only and restricted to the township's domain.
- At handover the consultant's admin role is converted to a named support account or removed, per the township's policy.
SECTION 9
Hosting and running cost
| ITEM | QTY | UNIT | ANNUAL | NOTE |
|---|---|---|---|---|
| ArcGIS Online: Mobile Worker | 2 | $400 / yr | $800 | |
| ArcGIS Online: Creator (QA reviewer) | 1 | $700 / yr | $700 | |
| ArcGIS Online: Viewer | 3 | $125 / yr | $375 | |
| ArcGIS Online credits (storage, photos) | included | 1,300 included | $0 | A few hundred MB of features and photos stays well inside the included credits |
| Office web app hosting | 1 | included in retainer | — | Vercel; no server to patch |
| ArcGIS Enterprise (on-premises) | optional | priced separately | — | Available for clients whose policy requires on-premises hosting |
- Esri US list prices as of 2026-10-08; confirm at purchase. Licenses are bought in the township's name.
- The consultant's own Creator seat is separate and not billed to the client.
- Worked total for the roles above: $1,875 per year to Esri.
SECTION 10
Delivery plan
| MILESTONE | WHEN | DELIVERABLES |
|---|---|---|
| Scoping (0%) | Week 0 | Problem statement, data inventory, this sheet revised for the client, fixed-price proposal |
| Schematic (30%) | Week 1–2 | Data model signed, Field Maps form prototype on a phone, office app wireframes, roles and sharing plan |
| Design development (60%) | Week 2–4 | Working office app on the township's starting data, form tested by a crew for one day |
| Pre-release (90%) | Week 4–5 | QA pass, sharing review, phone performance check, training outline |
| Issued for use (100%) | Week 5 | Production deployment, training (2 hours), admin handover, acceptance signed |
| Record set | Week 6–7 | Data dictionary, runbook, credentials inventory, full export |
SECTION 11
Scope tiers
Starter
2–3 weeksField Maps, hosted layers, and an ArcGIS Dashboards view. No custom code.
- • Form design and domains
- • One manual data load
- • Dashboard
- • Training for one crew
Standard
5 weeksStarter plus the office web app shown here, branded for the client, with the due list and export.
- • Everything in Starter
- • Office web app
- • Inspection-cycle rules
- • Record set at handover
Full
8–10 weeksStandard plus integration with the client's work-order system, notifications, and a 12-month retainer.
- • Everything in Standard
- • Work-order integration
- • Email alerts for overdue assets
- • 12-month support
The demo on this site is the Standard tier.
SECTION 12
Acceptance criteria
The client signs this list at Issued for Use. The final 20% is invoiced on signature.
- 1The Field Maps form rejects a submission with any required field empty and requires at least one photo.
- 2A feature submitted from a phone in coverage appears in the office app within 5 minutes with office_reviewed = false.
- 3Every field in the data model is populated or explicitly null on 100% of loaded features.
- 4Filters, list, map, counts, and charts always show the same set (checked on five filter combinations).
- 5The due list export has the agreed columns and one row per asset due in the next 12 months.
- 6The three core workflows (capture, QA, programming) run end to end by township staff without the consultant present.
- 7The app loads and is usable on the township's phones over cellular.
- 8The record set is delivered.
SECTION 13
Operations and maintenance
- Township: field technicians capture and inspect; the QA reviewer clears new captures weekly; the engineer runs the monthly due list.
- Monthly (consultant, under retainer): usage and credit check, broken-link check, sync error review.
- Quarterly: SDK and dependency updates to the office app, backup export of the hosted layers to GeoPackage, health report.
- Annually: ArcGIS Online renewal reminder, review of the inspection-cycle rules and the condition domain, photo-storage check.
- Retainer covers 2 hours of small changes per month; beyond that at the hourly rate with a not-to-exceed.
SECTION 14
Demo notes
Demo data is synthetic. Ridgeline County does not exist. The county roads, river, and downtown are generated; the data model, the SDK, and the workflows are real.
What to tap
- Filter Condition to Poor and Failed, then Material to CMP
- Tap any red circle to open its record and history
- Open Insights and export the 12-month due list
Generator seed 101 · demo clock 2026-10-01 · culverts 180 · inlets 320 · storm_mains 140 · outfalls 24 · inspections 1191 · overdue culverts 32 · overdue inlets 48