Case study / InspectIQ

Turn vehicle evidence into condition reports people can trust.

A production-shaped platform for wholesale, auction, fleet, and offsite inspection teams. It connects guided photo capture, AI-assisted review, human-confirmed damage, grading, and buyer-ready condition reporting.

Role
Independent builder
System
InspectIQ

Demo boundary

Live AWS-backed application

Public walkthrough is read-only

Live AWS-backed application. The public Evaluation Workspace requires no login and is read-only. Cognito JWT/RBAC protects authenticated workflow actions at the application layer; this does not establish API Gateway authorizer enforcement.

01 / Product

What InspectIQ is for

  • Wholesale, auction, fleet, and offsite teams need complete, consistent photo evidence before a vehicle can be graded, routed to reconditioning, or presented to a buyer.
  • Missing angles, unreadable VIN or odometer photos, poor image quality, and inconsistent damage review create retakes, slower reports, recon uncertainty, and avoidable disputes.
  • InspectIQ turns capture, AI-assisted inspection, human review, grading, and report release into one accountable workflow with an audit trail.

What the system must protect

  • AI can suggest required angles, image-quality problems, OCR values, and visible damage, but a reviewer remains accountable for every buyer-visible fact.
  • Original photos, model output, and reviewer decisions must remain separate and traceable when a condition is questioned.
  • Offline capture, failed analysis jobs, and incomplete evidence must recover visibly without losing inspection state or releasing an unfinished report.

02 / Workflow

From field capture to a report a buyer can rely on.

  1. 01

    Capture

    An Inspector gathers the required angles on web or mobile; offline capture stays queued until a connection returns.

  2. 02

    Protect

    Photos upload to private S3 with stable operation IDs, checksums, and short-lived preview access.

  3. 03

    Analyze

    SQS and a Lambda worker isolate model latency before Bedrock output is accepted through a strict schema.

  4. 04

    Decide

    A Reviewer compares each suggestion with its source image, then accepts, edits, rejects, or requests a retake.

  5. 05

    Release

    Confirmed evidence drives grading and report approval; unresolved blockers keep the condition report from release.

  6. 06

    Operate

    Audit records, outbox events, queue health, projections, alarms, and replay controls keep the workflow inspectable.

03 / System

Current architecture, with every major boundary visible.

InspectIQ architecture showing web and mobile clients, Cognito, API Gateway, Lambda, Neon Postgres, private S3, SQS and DLQ, Bedrock, EventBridge, a Python projector, DynamoDB, CloudWatch, X-Ray, SNS, Terraform, and GitHub Actions
Current serverless AWS architecture. The source record explains data ownership, failure handling, and why deferred services remain outside this version. Architecture source

04 / Product in use

The workflow exists in the product, not only in the diagram.

InspectIQ mobile inspection view showing required evidence, workflow status, uploaded vehicle images, and review actions

Inspector capture

Required-angle evidence, offline-aware upload state, retake guidance, and workflow status in the mobile path.

Full-resolution source
InspectIQ reviewer suggestions queue with evidence, confidence, status, SLA, and accept or reject controls

Reviewer decisioning

A prioritized queue keeps the source evidence, confidence, owner, SLA, and accept-or-reject decision together.

Full-resolution source
InspectIQ Platform Health view showing runtime proof, role separation, queue metrics, service levels, alerts, and recovery controls

Platform Health

Runtime mode, role separation, queues, service levels, alerts, cost controls, and failed-work recovery are visible to operators.

Full-resolution source

05 / Decisions

Three decisions and the cost of each.

  1. 01

    Keep AI advisory and human decisions authoritative

    Bedrock can accelerate angle, quality, OCR, and damage review, but only a Reviewer can turn a suggestion into a buyer-visible fact.

    Tradeoff

    Human review adds time and operating cost, but it prevents model output from silently becoming disclosure truth.

  2. 02

    Keep business truth in Postgres and operations state disposable

    Neon Postgres owns inspections, evidence, decisions, reports, and audit facts; EventBridge and DynamoDB support projections, idempotency, and model-usage reservations.

    Tradeoff

    Projected operational views can lag and require replay, so they must never become a second business system of record.

  3. 03

    Move image analysis behind a durable queue

    Private S3 uploads, SQS jobs, and a bounded Lambda worker keep model latency and provider failure outside the interactive capture request.

    Tradeoff

    The workflow becomes eventually consistent and needs idempotency, job states, DLQs, visible blockers, and recovery controls.

06 / Evidence

What the record supports—and how far it goes.

  • No fallback

    Marketplace damage workflow

    One Ford photo reached Bedrock, schema validation, and Reviewer acceptance; this is not an accuracy benchmark.

    Inspect evidence
  • 108 / 12

    Inputs / independent sources

    Controlled contract and promotion-gate evidence; deterministic results do not establish Bedrock model accuracy.

    Inspect evidence
  • 3 roles

    Inspector, Reviewer, Admin

    Capture, approval, and recovery responsibilities are separated in the UI, API permissions, and proof path.

    Inspect evidence
  • Live path

    AWS-backed evidence processing

    Cognito, S3, SQS, Lambda, Bedrock, Neon, audit events, and operational projections are documented together.

    Inspect evidence

07 / Reliability & security

No model finding becomes a buyer-visible fact without human approval.

Raw and validated output remain separate, invalid output fails closed, and Reviewer decisions, corrections, and report finalization stay in the audit history. Cognito roles and object authorization restrict who can act on each inspection.

Security boundary notes

Incomplete evidence and failed analysis block release, then route to the right recovery.

A low-quality image requests a field retake; a provider or schema failure can be retried or moved through DLQ and replay controls. Platform Health exposes queues, outbox delivery, projections, alarms, and recovery state so the operator sees the right next action.

Operator runbook

08 / Limits

Known limits

  • The 108-image challenge set derives from 12 independent sources, and one marketplace result does not establish Bedrock precision or recall.
  • Mobile angle selection remains Inspector-driven; there is no deployed on-device classifier or reviewer-adjustable damage region.
  • The buyer export is not yet a polished PDF and photo package, and generic CSV or signed-webhook integrations are not implemented.
  • The system has not accumulated sustained production workload, SLO, cost, or real-inspector pilot evidence.
  • Some Postgres flows still hydrate the in-memory domain store; high-concurrency use needs aggregate-specific DB-first repositories.
  • The public walkthrough is read-only, and the documented application boundary does not prove API Gateway authorizer enforcement.

Path to sustained operation

  1. Build an independently adjudicated field corpus and measure precision, recall, calibration, override rate, latency, and cost by model and prompt version.
  2. Replace the hydration bridge with aggregate-specific repositories and prove transaction, concurrency, and tenant-isolation behavior under load.
  3. Run soak tests, controlled queue and event recovery drills, rollback exercises, and a seven-day idle-cost and SLO observation window.
  4. Pilot with working Inspectors and Reviewers, then refine capture speed, reports, photo packages, and the integrations customers actually require.
  5. Split public and protected gateway routes, attach the JWT authorizer to protected routes, and complete a production security and data-retention review.

09 / Artifact index

Follow the work into the repository.

AWSCloudflare PagesReactTypeScriptExpo / React NativeCognitoAPI GatewayLambdaS3SQSBedrockNeon PostgresEventBridgeDynamoDBCloudWatch / X-RayPythonTerraformGitHub Actions