Skip to content
SHEET
S-101
STATUS
DEMO
DATE
2026-10-08
REV
0

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

REVDESCRIPTIONDATEBY
0Issued for demo2026-10-08L. 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

ROLEWHAT THEY DOWHEREARCGIS USER TYPE
Field technician (2)Captures and inspects assets with the Field Maps form; takes photos; syncsField, phone or tabletMobile Worker
QA reviewer (1)Reviews new captures, corrects attributes, sets the office-reviewed flagOffice, browserCreator
Township engineerFilters, reads condition and due lists, exports for budget requestsOffice or phone, browserViewer (or public web app)
Consultant (owner)Builds, administers, maintains; runs the quarterly health checkRemoteCreator (admin)
Client project leadApproves scope, signs milestones and acceptanceOfficeNone required

SECTION 4

Architecture

  1. 01
    Field capture
    ArcGIS Field Maps (iOS/Android, offline areas)
  2. sync
    02
    Hosted feature layer + related inspection table + attachments
    ArcGIS Online
  3. 03
    Web map (symbology, labels, forms)
    ArcGIS Online
  4. 04
    Office web app (this demo)
    ArcGIS Maps SDK for JavaScript, Next.js, Vercel
  5. 05
    Township dashboard
    ArcGIS Dashboards
  6. scheduled
    06
    Nightly export
    Python (ArcGIS API), CSV + GeoPackage to the client's drive
Edges: Field → Hosted; Hosted → Web; Web → Office; Web → Township; Hosted → Nightly
  1. Everything above the office app is standard Esri configuration (the Starter tier).
  2. 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.
  3. 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 fieldsshow

Cross-drain and driveway culverts on township-maintained roads.

Storm inlets · point · 16 fieldsshow

Curb, grate, combination, and yard inlets on downtown streets and collectors.

Storm mains · polyline · 7 fieldsshow

Storm sewer mains along downtown streets.

Outfalls · point · 3 fieldsshow

Storm outfalls to the river, with the MS4 permit flag.

Inspections · table · 8 fieldsshow

One row per inspection, related to culverts and inlets by asset_id.

SECTION 6

Workflows

Field capture

  1. Technician opens the Field Maps map (offline area downloaded for the day's roads).
  2. Taps the road at the culvert; the form requires road, shape, material, size, condition, and at least one photo; pick lists enforce the domains.
  3. Station is computed in the office from the road's stationing origin, not typed in the field.
  4. Submit; the feature syncs when in coverage and appears in the office app flagged office_reviewed = false.

Office QA

  1. Reviewer filters Office reviewed = Needs review.
  2. Checks the photo against the attributes, corrects anything, confirms the road snap.
  3. Sets office_reviewed = true. The asset enters the inspection cycle.

Inspection cycle and programming

  1. next_due = last_inspected + 36 months, or + 12 months when condition ≤ 2. Overdue = next_due before today.
  2. Monthly, the engineer opens Insights → Program the next year and exports the due list by month.
  3. Crews work the list; each inspection adds a row to the related table and updates the asset's condition and dates.

Reporting

  1. Condition-by-material chart supports the annual renewal request to the Board.
  2. 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 PROVIDESFORMATHOW IT ENTERS THE SYSTEM
Existing culvert spreadsheet (if any)XLSX or CSVMapped to the data model and loaded once as the starting inventory, flagged unverified until a crew confirms it
Road centerlines with namesShapefile, GeoJSON, or a state DOT serviceLoaded as the road layer; stationing origins assigned per road
MS4 outfall listSpreadsheetLoaded as the outfall layer with the permit flag
Township brandingLogo (SVG or PNG), colorsApplied 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

ITEMQTYUNITANNUALNOTE
ArcGIS Online: Mobile Worker2$400 / yr$800
ArcGIS Online: Creator (QA reviewer)1$700 / yr$700
ArcGIS Online: Viewer3$125 / yr$375
ArcGIS Online credits (storage, photos)included1,300 included$0A few hundred MB of features and photos stays well inside the included credits
Office web app hosting1included in retainer—Vercel; no server to patch
ArcGIS Enterprise (on-premises)optionalpriced 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

MILESTONEWHENDELIVERABLES
Scoping (0%)Week 0Problem statement, data inventory, this sheet revised for the client, fixed-price proposal
Schematic (30%)Week 1–2Data model signed, Field Maps form prototype on a phone, office app wireframes, roles and sharing plan
Design development (60%)Week 2–4Working office app on the township's starting data, form tested by a crew for one day
Pre-release (90%)Week 4–5QA pass, sharing review, phone performance check, training outline
Issued for use (100%)Week 5Production deployment, training (2 hours), admin handover, acceptance signed
Record setWeek 6–7Data dictionary, runbook, credentials inventory, full export

SECTION 11

Scope tiers

Starter

2–3 weeks

Field 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 weeks

Starter 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 weeks

Standard 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.

  1. 1The Field Maps form rejects a submission with any required field empty and requires at least one photo.
  2. 2A feature submitted from a phone in coverage appears in the office app within 5 minutes with office_reviewed = false.
  3. 3Every field in the data model is populated or explicitly null on 100% of loaded features.
  4. 4Filters, list, map, counts, and charts always show the same set (checked on five filter combinations).
  5. 5The due list export has the agreed columns and one row per asset due in the next 12 months.
  6. 6The three core workflows (capture, QA, programming) run end to end by township staff without the consultant present.
  7. 7The app loads and is usable on the township's phones over cellular.
  8. 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

  1. Filter Condition to Poor and Failed, then Material to CMP
  2. Tap any red circle to open its record and history
  3. 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