LM
Last Mile Report
AI agent task-completion benchmark · Where agent journeys actually end.
July 21, 2026

Executive thesis

The scan said ready. The agent still failed.

Static scans look for signals. Agents reveal what actually works.

Cross-model lab report: every run on this page was driven by gemma4-cloud under the same deterministic rules as the published index — 33/63 measurable tasks completed (52%). Each dossier carries the probe evidence (llms.txt discovery, WebMCP tool calls, consent walls) and, for cloud runs, the full session replay.

Run summary
3Sites tested
150Browser tasks
0 / 3Sites completed
100%Verified outcomes
Evaluation flow
01Static scan

Baseline readiness signal.

02Agent run

Real browser task attempt.

03Verified outcome

Binary pass/fail with evidence.

3Sites
150Tasks
0 / 3Sites completed
100%Verified outcomes
DeterministicSame inputs. Repeatable results.
Evidence-firstScreenshots, traces, console signals.
No averagesBinary task completion only.
ActionableEach failure maps to a fix.

Last Mile Index

Binary results. Verified evidence. No averages.

0 scan/run inversions detected

Sites are ranked by tasks completed by a real browser agent. The static scan column stays visible so the report can show where readiness signals disagree with task reality.

Rank Scenario Tasks Passed Agent Run Layer-1 Static Scan Key Failure Evidence Page
1 Friction Airways (ready) 40 / 44 +6 gated Fail Failure Transparency Evidence 1
2 Friction Airways (median) 24 / 36 +14 gated Fail Discoverability Evidence 2
3 Friction Airways (hostile) 0 / 32 +18 gated Fail Discoverability Evidence 3

AI Opportunity Tree

Where agents fall off the customer journey — and the fix at each stage.

64/150 agent-ready · 38 gated at an access wall

Each enhancement is mapped to the customer-journey funnel. A leaf is Pass (agent completed it), Blocked (an honest access wall — login / booking reference / payment), or Fail (the site broke the agent before any wall). Failing leaves carry a concrete Tier 0–2 fix.

Inspiration & Planning

624
6/12 agent-ready

Compare & Select

1410
14/24 agent-ready

Book Travel

12210
12/24 agent-ready

Plan & Prepare

783
7/18 agent-ready

Get to the airport & await flight

891
8/18 agent-ready

Take flight

12
1/3 agent-ready

Connect

324
3/9 agent-ready

Arrive at the destination

534
5/12 agent-ready

Stay involved

555
5/15 agent-ready

Help

375
3/15 agent-ready

Evidence dossier · Rank 1

Friction Airways (ready)

Task: Fa airport journey assistant

Fail

Evidence captured

Screenshot exhibit unavailable for this fixture. The production run record can attach a browser screenshot here.

Session replay — full browser recording of this run (Browserbase).

Short diagnosis

The journey completed and the extracted answer passed verification.

The static scan did not prove task success. The agent completed the journey and the answer was verified.

What the agent experienced

The agent found a readable answer: Gate A12, Terminal 3.

Friction signals

✓ Structured path✓ Consent wall✓ Input affordances✓ Failure transparency✓ Discoverability

Discovered via /llms.txt (20 links indexed at /llms.txt).

Signal evidence

Structured path
WebMCP · present · document.modelContext · tools: flights · invoked: getFare, searchFlights
Discoverability
entry point found · channel: dom+llms.txt · /llms.txt: 20 links
/llms.txt links
/fares · /total-cost · /total-cost.md · /baggage · /tool-fare · /tool-fare.md · /manage · /budget-destinations · /budget-destinations.md · /inspiration · /inspiration.md · /why-this-flight
Discovery candidates
Flight status (markdown) → /flight-status.md · Flight status → /flight-status

Discovered via /llms.txt (20 links indexed at /llms.txt).

What the site does right

On the same site, Fa ancillary timing completed through structured agent surfaces:

Structured path
WebMCP · present · document.modelContext · tools: flights, bagTiming · invoked: getFare, searchFlights, getBagTimingPrice · verified ✓ → SAR 2050
Discoverability
no entry point found · channel: dom

Agent run trace

  1. 01Go to frictionair.me-892.workers.dev (200)
  2. 02Read the page
  3. 03Type "FA7Q2X" into input[name="bookingReference"] — timed out
  4. 04Read page region "input"
  5. 05Read the page
  6. 06Type "FA7Q2X" into text="Booking reference"
  7. 07Type "Test" into text="Last name"
  8. 08Click text="Find booking"
  9. 09Read the page
  10. 10Finish — answer found: "Gate A12, Terminal 3"
10 stepscompleted

Evidence dossier · Rank 2

Friction Airways (median)

Task: Fa airport journey assistant

Fail

Evidence captured

Screenshot exhibit unavailable for this fixture. The production run record can attach a browser screenshot here.

Session replay — full browser recording of this run (Browserbase).

Short diagnosis

Task completion: The agent could not recover because the interface did not expose actionable error feedback.

The scan could not see that the journey failed under real browser operation.

What the agent experienced

The agent could not recover because the interface did not expose actionable error feedback.

Friction signals

✓ Structured path✓ Consent wall✓ Input affordances✓ Failure transparency× Discoverability

Signal evidence

Structured path
present · document.modelContext
Discoverability
no entry point found · channel: dom

Agent run trace

  1. 01Go to frictionair.me-892.workers.dev (200)
  2. 02Read the page
  3. 03Type "FA7Q2X" into input[name="booking-reference"] — timed out
  4. 04Type "Test" into input[name="last-name"] — timed out
  5. 05Click button:has-text("Find booking")
  6. 06Read the page
  7. 07Read the page
  8. 08Type "FA7Q2X" into #booking-reference — timed out
  9. 09Type "Test" into #last-name — timed out
  10. 10Click button:has-text("Find booking")
  11. 11Finish — gave up: Booking reference wall: The page requires a booking reference and last name to proceed, and the form is not responding to inputs.
11 stepsgave_up

Evidence dossier · Rank 3

Friction Airways (hostile)

Task: Fa airport journey assistant

Fail

Evidence captured

Screenshot exhibit unavailable for this fixture. The production run record can attach a browser screenshot here.

Session replay — full browser recording of this run (Browserbase).

Short diagnosis

Task completion: The agent could not recover because the interface did not expose actionable error feedback.

The scan could not see that the journey failed under real browser operation.

What the agent experienced

The agent could not recover because the interface did not expose actionable error feedback.

Friction signals

✓ Structured path✓ Consent wall✓ Input affordances✓ Failure transparency× Discoverability

Signal evidence

Structured path
present · document.modelContext
Discoverability
no entry point found · channel: dom

Agent run trace

  1. 01Go to frictionair.me-892.workers.dev (200)
  2. 02Read the page
  3. 03Finish — gave up: The page states: "Airport journey assistant is available by phone only for now. Please call our service centre." No input form for booking reference and last name is present on the page.
3 stepsgave_up