REPORTS

The Surface Report

Before anyone buys a retrofit, they buy a measurement. This is what we test, how we score it, and what arrives at the end, including a full sample report for a website that does not exist.

Send Me the Sample Report

We will send the sample report, then a short series on what an agent-ready site does and where agent journeys break. One click unsubscribes and we will not email again.

THE AGENT MYSTERY SHOPPER

Your website may look perfect and still fail the agent.

We hire the agent, send it through the journeys that make you money, and record where understanding or execution breaks down.

Order a Surface Report

A sample Surface Report

ILLUSTRATIVE SAMPLE · DEMO DATA · NOT AN AUDIT OF YOUR SITE

Journeys under test

  1. Find the correct product
  2. Confirm compatibility
  3. Compare two options
  4. Calculate a result
  5. Book an appointment
  6. Request a quote
  7. Start a return
  8. Submit a support request
  9. Locate an account record
  10. Stop before a consequential action

Surface Score

BAND: FAILING. Agents can read this site, but cannot finish anything on it.

This fictional site is well written and legible to machines. It has almost no declared actions, so agents can describe it accurately and complete nothing.

Sample figures for a fictional website, shown to explain the scoring model. Your Surface Score is calculated only from tests we run on your own URLs, and every number in a real report is linked to the transcript that produced it.


Illustrative sample Surface Score by category
CategoryThe question measuredScoreWeightBand
MeaningCan the agent extract the correct subject, facts and relationships?6220%WORKABLE
ParityDo the machine representations match what people can inspect?4810%FRAGILE
ActionCan the agent discover and execute the right function?2320%FAILING
CompletionCan it finish the intended customer journey?1720%FAILING
SafetyDoes it stop for authorization and confirmation?3515%FAILING
ResilienceDoes the journey survive UI and content changes?4010%FRAGILE
ConversionDoes the completed action reach the business correctly?295%FAILING

Weighted total = 62 × 20% + 48 × 10% + 23 × 20% + 17 × 20% + 35 × 15% + 40 × 10% + 29 × 5% = 35.9 → displayed as 36 / 100

The Surface Score is our own scoring model, not an industry standard. We publish the weights so you can argue with them.

We do not publish a projected score. Rule eight: improvements are measured, never guaranteed. Your second Surface Score comes from the same tests, run again.

What we typically find

Real failure patterns, drawn from the way sites are actually built.

  • The agent selected the wrong service form.
  • Product compatibility was available visually but not structured.
  • The booking form lacked a clear date schema.
  • Logged-out tools stayed registered after the authentication state changed.
  • The agent submitted before the user reviewed the request.
  • The tool result differed from the value displayed on the page.
  • Marketing claims conflicted with the structured data.
  • A redesigned button broke the inferred browser path.
Every finding in a real report is tied to a URL, a journey, a transcript and a fix.

The report

Read the chapter you would turn to first.

What a Surface Report contains, using the demonstration case throughout. The scoring model is published; the sample score belongs to the model, not to the case.

The case it reads

Surface Report · preview · case 01

Northbank Fluid Power

Industrial distribution: hydraulic hose and fittings

/hose-assemblies/ha-2308-jj-60

Northbank Fluid Power does not exist. This case describes what a distributor's product page would expose after an Agent-Ready Retrofit, and what an agent could then do with it. Nothing here was measured on a customer's website, and none of these tools are registered on this one.

Fictional demonstration company · illustrative workflow · not client results

The scoring model

Surface Score

BAND: FAILING. Agents can read this site, but cannot finish anything on it.

ILLUSTRATIVE SAMPLE · DEMO DATA · NOT AN AUDIT OF YOUR SITE

The total is the scoring model's published sample. It is not a Surface Score for Northbank Fluid Power. Nothing in this preview was measured, and this case carries no score at all.

Sample figures for a fictional website, shown to explain the scoring model. Your Surface Score is calculated only from tests we run on your own URLs, and every number in a real report is linked to the transcript that produced it.

The Surface Score is our own scoring model, not an industry standard. We publish the weights so you can argue with them.

We do not publish a projected score. Rule eight: improvements are measured, never guaranteed. Your second Surface Score comes from the same tests, run again.

The meter fills lime because the model's weight sits on capability: Action, Completion, Safety and Resilience carry 65 of the 100 published points.

Meaning14 fields published · reads PRODUCT_READINGS · COMPATIBILITY_READINGS

What does this page mean?

Every value the agent read, with the field it was published in and the place a person checks the same value on the same page.

Published14 fields

Product meaning

What the thing is.

sku
HA-2308-JJ-60published from · Product identifiera person checks · Printed under the product title.
product_type
Hydraulic hose assembly, made to orderpublished from · Product categorya person checks · Breadcrumb, and the line under the title.
hose_standard
SAE 100R2ATpublished from · Specification fielda person checks · Specification table, row 1.
inside_diameter
1/2 in, dash size -8published from · Specification field, with unita person checks · Specification table, row 2.
assembly_length
60 in, cut and crimped to orderpublished from · Configured option, not a varianta person checks · The length field the customer fills in.
unit_price
$84.20published from · Offer price, USDa person checks · The price beside the configurator.
returnable
false: made-to-order assemblies are not returnablepublished from · Return policy, attached to this producta person checks · Stated beside the price, not only in the site-wide policy.

Compatibility

Whether it fits. On most distributor pages this part is a picture.

max_working_pressure
3,625 psipublished from · Specification field, with unita person checks · Specification table, row 3.
design_factor
4:1, per SAE J517published from · Specification field, citing the standarda person checks · Specification table, row 4, with the standard named.
end_fitting_type
JIC 37° female swivel, per SAE J514published from · Specification field, citing the standarda person checks · Specification table, row 5.
thread_size
3/4-16 UNF, both endspublished from · Specification fielda person checks · Specification table, row 6.
temperature_range
-40 °F to 212 °F (-40 °C to 100 °C), petroleum-based fluidpublished from · Specification field, with the fluid nameda person checks · Specification table, row 7.
min_bend_radius
7.0 inpublished from · Specification field, with unita person checks · Specification table, row 8.
stock_status
Hose and fittings in stock; assemblies cut to orderpublished from · Availability, split from the made-to-order flaga person checks · The availability line above the configurator.

Fictional demonstration company · illustrative workflow · not client results

Every chapter of the preview, with its contents in full. This table is the whole of this section without JavaScript, where the chapter controls above it are inert. Fictional demonstration company · illustrative workflow · not client results.
ChapterWhat it answersWhat is in it
Meaning14 fields published · reads PRODUCT_READINGS · COMPATIBILITY_READINGSWhat does this page mean?
  • sku = HA-2308-JJ-60

    source Product identifier

    a person reads Printed under the product title.

  • product_type = Hydraulic hose assembly, made to order

    source Product category

    a person reads Breadcrumb, and the line under the title.

  • hose_standard = SAE 100R2AT

    source Specification field

    a person reads Specification table, row 1.

  • inside_diameter = 1/2 in, dash size -8

    source Specification field, with unit

    a person reads Specification table, row 2.

  • assembly_length = 60 in, cut and crimped to order

    source Configured option, not a variant

    a person reads The length field the customer fills in.

  • unit_price = $84.20

    source Offer price, USD

    a person reads The price beside the configurator.

  • returnable = false: made-to-order assemblies are not returnable

    source Return policy, attached to this product

    a person reads Stated beside the price, not only in the site-wide policy.

  • max_working_pressure = 3,625 psi

    source Specification field, with unit

    a person reads Specification table, row 3.

  • design_factor = 4:1, per SAE J517

    source Specification field, citing the standard

    a person reads Specification table, row 4, with the standard named.

  • end_fitting_type = JIC 37° female swivel, per SAE J514

    source Specification field, citing the standard

    a person reads Specification table, row 5.

  • thread_size = 3/4-16 UNF, both ends

    source Specification field

    a person reads Specification table, row 6.

  • temperature_range = -40 °F to 212 °F (-40 °C to 100 °C), petroleum-based fluid

    source Specification field, with the fluid named

    a person reads Specification table, row 7.

  • min_bend_radius = 7.0 in

    source Specification field, with unit

    a person reads Specification table, row 8.

  • stock_status = Hose and fittings in stock; assemblies cut to order

    source Availability, split from the made-to-order flag

    a person reads The availability line above the configurator.

Actions6 tools declared · reads TOOLS · TRACEWhat can an agent do here?
  • search_hose_assemblies · read-only

    purpose Finds catalog assemblies matching a construction, dash size, end fitting and length.

    parameters dash_size: STRING (required) · min_working_psi: NUMBER (required) · end_fitting: ENUM · length_in: NUMBER

    returns Three matching SKUs with construction, pressure rating and unit price.

  • get_assembly_specs · read-only

    purpose Returns the full published specification for one assembly, with units and cited standards.

    parameters sku: STRING (required) · include: ARRAY

    returns SAE 100R2AT · 1/2 in (-8) · 3,625 psi max working · 4:1 design factor per SAE J517 · JIC 37° female swivel, 3/4-16 UNF.

  • check_port_compatibility · read-only

    purpose Checks an assembly's end fittings against a named port, and returns the thread size it checked rather than a yes.

    parameters sku: STRING (required) · port_dash_size: STRING (required) · port_standard: ENUM (required)

    returns Mates. 3/4-16 UNF at both ends, per SAE J514 for -8.

  • compare_assemblies · read-only

    purpose Compares two or more assemblies on named specification fields.

    parameters skus: ARRAY (required) · on: ARRAY

    returns A row per SKU on the three requested fields, in the units the page publishes.

  • get_lead_time · read-only

    purpose Returns stock state and the published make time for a cut-to-length assembly.

    parameters sku: STRING (required) · quantity: NUMBER (required)

    returns Hose and fittings in stock. Cut and crimped to order; ships the next business day.

  • prepare_assembly_order · write

    purpose Assembles a complete, priced order line and hands it to a person. It does not place the order, and there is no tool here that does.

    parameters sku: STRING (required) · quantity: NUMBER (required) · length_in: NUMBER (required) · account_id: STRING

    returns An order line held for confirmation, with every argument shown to the customer.

Call order · search_hose_assemblies · get_assembly_specs · check_port_compatibility · compare_assemblies · get_lead_time · prepare_assembly_order

Human Gates1 gate in this case · reads HUMAN_GATEWhat requires a person?

prepare_assembly_order

Order two HA-2308-JJ-60 assemblies, cut and crimped to 60 inches, to the account's shipping address.

  • What it changes

    Object A made-to-order line on account NB-41882

    Produced Two assemblies cut from bulk hose and crimped to length

    Charged $168.40, to the payment method the customer enters

  • Consequence of approving

    1 Cutting is irreversible. Once the hose is cut to 60 inches it is not catalog stock, and Northbank does not restock it.

    2 This product is not returnable, and the page says so beside the price rather than in a policy page.

    3 The wrong pressure rating on a lift cylinder is a safety failure, not a return.

  • Arguments · 11 of 11 shown

    sku HA-2308-JJ-60

    construction SAE 100R2AT · 1/2 in ID (-8)

    max_working_psi 3625

    end_fittings JIC 37° female swivel · 3/4-16 UNF · both ends

    length_in 60, cut and crimped to order

    quantity 2

    unit_price $84.20

    line_total $168.40

    returnable No, made to order

    ship_to Account address on file · NB-41882

    payment_method None. The customer enters it

  • Who decides

    decided by The person operating the browser. Not the agent, and not the site.

    not enforced WebMCP does not enforce human confirmation. Nothing in the browser stops a site from letting an agent complete this order unattended. The gate is built into the page, which means a page that omits it has no gate at all.

Failures5 failures found · reads FAILURESWhat does this page fail to publish today?
  • The fitment chart is a JPEG. The thread sizes in it are pixels.

    cause thread_size is published nowhere but inside an image, so the only copy of the value is one a machine cannot read.

    consequence check_port_compatibility has nothing to check against, and an agent that infers the thread from the part number is guessing at the one fact that decides whether the assembly mates.

    where Fitment chart, above the specification table.

  • The pressure rating is a clause in a paragraph, so a machine cannot tell working pressure from burst pressure.

    cause max_working_pressure is not separated from prose and carries no unit of its own, so one figure in a sentence stands for two different ratings.

    consequence The customer's stated 3,000 psi cannot be compared with anything, which is the whole comparison. The cheapest assembly in the catalog is the one rated below it.

    where Product description paragraph, above the specification table.

  • "JIC" is never expanded and SAE J514 is never cited, so the fitting type connects to no standard.

    cause end_fitting_type is a bare abbreviation with no cited standard, so it resolves to nothing a machine can look a thread size up in.

    consequence get_assembly_specs returns a string an agent cannot reconcile with the customer's port, so compatibility becomes an inference rather than a reading.

    where Specification table, end fitting row.

  • The non-returnable policy is a site-wide footer link rather than a fact about this product.

    cause returnable is a site-level page instead of a field on this offer, so nothing attaches it to the assembly being bought.

    consequence The one irreversible consequence of approving the order is missing from what a person is shown at the gate.

    where Site footer, rather than the offer beside the price.

  • Length is a free-text box with no unit, so 60 could be inches or centimeters.

    cause assembly_length accepts any string. There is no unit on the field and no range for a value to fall outside of.

    consequence prepare_assembly_order can be handed a length that cuts the hose to the wrong size, and cutting is the step the human gate exists to hold.

    where Configurator, length input.

Priorities5 fixes, ordered · reads PRIORITIESWhat gets fixed first, and on what axis?
  1. 1. Publish max_working_pressure and design_factor as fields, with their units and SAE J517 cited.

    answers The pressure rating is a clause in a paragraph, so a machine cannot tell working pressure from burst pressure.

    effort One specification template. Both values are already printed on the page.

    unblocks search_hose_assemblies and compare_assemblies can rank against the 3,000 psi the customer stated.

    ranked because First, because it is the only failure here whose worst case is a safety failure rather than a wasted part: an assembly rated below the working pressure of a lift cylinder.

  2. 2. Give the length input a unit and a range, and publish assembly_length with the unit attached.

    answers Length is a free-text box with no unit, so 60 could be inches or centimeters.

    effort One configurator field: an enumerated unit, and a minimum and maximum.

    unblocks prepare_assembly_order carries a length the customer can check against the one they measured.

    ranked because Second, because the mistake it allows is cut into the hose. Nothing on the page tells either the person or the agent which unit 60 was read as, and a made-to-order assembly is not restocked.

  3. 3. Publish thread_size and end_fitting_type as fields. The chart stays on the page as their human parity.

    answers The fitment chart is a JPEG. The thread sizes in it are pixels.

    effort Two fields per assembly, transcribed from the chart the page already shows.

    unblocks check_port_compatibility can answer with a thread size instead of not answering.

    ranked because Third, because it produces the same unreturnable part as a wrong length, but a person reading the chart can still catch it, so only the agent is blind.

  4. 4. Attach returnable to this product, beside the price, rather than to the site.

    answers The non-returnable policy is a site-wide footer link rather than a fact about this product.

    effort One field on the offer, and one line of copy beside the price.

    unblocks The gate can state the consequence that makes it a gate: this order cannot be undone.

    ranked because Fourth, because it does not produce a wrong part. It produces a correct part, bought by a person who was never shown the fact that makes the decision irreversible.

  5. 5. Expand JIC and cite SAE J514 on end_fitting_type, so the fitting resolves to a standard.

    answers "JIC" is never expanded and SAE J514 is never cited, so the fitting type connects to no standard.

    effort One value and one citation on the specification template.

    unblocks get_assembly_specs returns a fitting an agent can reconcile with the customer's port instead of a bare abbreviation.

    ranked because Last, because its failure mode is hesitation rather than a wrong answer: an unanchored abbreviation stops the agent, where a missing figure invites it to infer one.

ordered by Ordered by consequence to the customer, worst first: a safety failure, then a purchase that cannot be undone, then a decision taken without the fact that makes it irreversible, then a check the agent cannot run at all. Where two failures land in the same class, the one a person cannot catch by looking ranks above the one they can. Effort is printed on every item and decides none of the order.

Monitoring Plan5 regression tests · reads OBSERVATIONWhat happens to this journey the next time the site is deployed?

What happens to this journey the next time the site is deployed?

  • Cadence

    cadence Structured-data and machine-file monitoring run continuously. Full agent journey tests run monthly, and after any deployment you tell us about.

  • What would count as a regression

    1 max_working_pressure stops being published as a field after a template change, and the rating goes back into a paragraph.

    2 The non-returnable fact detaches from the product and reverts to a site-wide policy link.

    3 check_port_compatibility starts answering for -12 ports that cannot thread onto a -8 port.

    4 prepare_assembly_order returns a total that differs from the total printed on the page.

    5 The tools stay registered after the account signs out.

Nothing is being monitored here. This is the test list a real engagement would run against real URLs, not a monitoring history.

THE ENGAGEMENT

See where agents succeed, hesitate and fail.

An agent-readiness and conversion audit of your existing website.

1 · REPORT

The Surface Report

$5,000

Fixed fee

Delivery

Typically 10 business days from kickoff.

The audit fee is credited toward a Retrofit engagement started within 90 days.

Includes

  • Up to 25 representative URLs
  • Ten critical customer journeys
  • Semantic extraction audit
  • Structured-data review
  • Content and claim-parity review
  • Accessibility-tree assessment
  • Agent action inventory
  • WebMCP opportunity map
  • Conversion blocker analysis
  • Agent mystery-shopping tests
  • Prioritized remediation plan
  • Executive presentation

The deliverable is a written report and a working session: what agents can do on your site today, what they cannot, and the order in which we would fix it.

Can an agent finish the job on your website?

We will test the journeys that create revenue, show you where agents get stuck, and build the semantic and action layers needed to move them forward.