ARC Journey Scanner

Documentation

Everything ARC Journey Scanner checks, how it scores, and what it does with your data. If a finding surprised you, the rule behind it is on this page.

How the score is calculated

This is a Journey Friction Score derived only from the journey you described. It is not a CSAT, NPS, or CES measurement and does not predict churn. Where the description lacks metrics, the report says so rather than estimating.

Each dimension starts at 100. Findings deduct a fixed penalty by severity: critical −30, high −18, medium −9, low −4, info −0. Dimension scores are combined as a weighted average. Bands: 80+ strong, 60–79 adequate, 40–59 at risk, below 40 critical.

DimensionWeightWhat it measures
Customer Effort3Starts at 100. Deducts for each detected point where the customer must repeat information, re-enter data, or chase the business for a response.
Channel Continuity2Starts at 100. Deducts for each channel switch where context is not carried, each unowned channel, and channel fragmentation without a system of record.
Wait States2Starts at 100. Deducts for each stage where the customer waits with no stated acknowledgement, ETA, confirmation, or status visibility.
Ownership Clarity2Starts at 100. Deducts for each stage with no named owner, each person-dependent continuity, and each handoff with no stated context transfer.
Back-office Friction2Starts at 100. Deducts where staff cannot see the customer record or shuttle work between systems. Customer effort and staff effort are scored as two sides of the same gap.
Critical Moments1Starts at 100. Deducts where a high-stakes moment (first value, escalation, renewal, failure recovery) is handled by an unowned or fully automated path with no human fallback.
Stated Drop-off1Starts at 100. Deducts only when the description itself states abandonment or drop-off. This is not a churn forecast and is not inferred from silence.
Purchase Path2Starts at 100. Deducts for account walls, sales-only buy paths, long pre-pay forms, missing price, forced phone purchase, guest-checkout gaps, funnel gaps, and SPA gaps on scanned purchase URLs.

What the score is not

Rule catalog (v0.5.0)

31 deterministic rules. No network, no model, no randomness — the same input always produces the same findings. Rule ids are permanent; a rule whose meaning changes gets a new id.

effort

  • JY-EFFORT-001simplify
    Customer must repeat information already given

    Carry context across the handoff. The fix is usually giving the second team read access to what the first team collected — not a new channel.

  • JY-EFFORT-002simplify
    Customer must chase for a response

    Make the next step the business's obligation, with a visible commitment. If a customer has to chase, the process, not the customer, failed.

  • JY-EFFORT-003simplify
    Customer re-enters the same data

    Prefill from the record you already have. A form that asks for known data is a broken integration, not a necessary step.

channel

  • JY-CHANNEL-001simplify
    Channel switch loses context

    Give each channel read access to the same record. Multi-channel without shared context is worse than one channel done well.

  • JY-CHANNEL-002govern
    Channel with no stated owner

    Assign ownership and a response target per channel, or route the channel into a system that assigns for you.

  • JY-CHANNEL-003simplify
    Channel fragmentation without a system of record

    Pick a system of record every channel writes to before adding another channel. Channel count is not a capability.

wait

  • JY-WAIT-001simplify
    Customer waits with no acknowledgement or ETA

    Acknowledge immediately and set an expectation. Reducing perceived wait is often cheaper and more effective than reducing actual wait.

  • JY-WAIT-002simplify
    Conversion point with no confirmation

    Send a confirmation that the action registered, with what happens next. Silence after submit is a manufactured wait.

ownership

  • JY-OWNERSHIP-001govern
    Stage described as a process with no named owner

    Name an owner per stage. Ownership is a prerequisite for measurement, and measurement is a prerequisite for improvement.

  • JY-OWNERSHIP-002govern
    Continuity depends on a specific individual

    Convert the dependency to a role with documented context. Keep the relationship, remove the single point of failure.

  • JY-OWNERSHIP-003simplify
    Handoff between teams with no stated context transfer

    Define the handoff as a record the receiving team can open, not as an email a person forwards.

moment

  • JY-MOMENT-001keep-human
    High-stakes moment with no human path

    Keep a human reachable at the moments that decide the relationship. Automate the routine and staff the decisive.

  • JY-MOMENT-002keep-human
    First-value moment with no guidance

    Design a first-value path with a named owner. Self-serve is not the same as abandoned.

abandon

  • JY-ABANDON-001simplify
    Stated drop-off or abandonment, with evidence

    Treat the stated drop-off point as a measurement target. Do not estimate a rate this tool did not observe — instrument that step and watch it.

backoffice

  • JY-BACKOFFICE-001simplify
    Staff cannot see what the customer already submitted

    Give serving staff read access to the customer-created record before you train them to ask better questions.

  • JY-BACKOFFICE-002automate
    Staff re-key or shuttle work between systems

    Remove the re-key. Integrate or drop a system. This is automation of a chore, not a use case for a language model.

personalization

  • JY-PERSONAL-001simplify
    Same message to everyone at a relationship moment

    Use fields you already have (name, plan, last action) in the relationship message. That is personalization; a new model is not required.

automate

  • JY-AUTO-001automate
    Repetitive mechanical work that a rule could do

    Replace the repeated mechanical step with a rule, a template, or an integration. Do not introduce a model to do a lookup.

augment

  • JY-AI-001augment-with-ai
    Unstructured judgment work where a model might help — after the process is clean

    Only after waits, ownership and context-carrying are fixed: trial a model on the unstructured judgment step with a human review path. The mechanism is assistance, not autonomy.

purchase

  • JY-BUY-001simplify
    Account or login required on the purchase path

    Offer guest checkout, or defer account creation until after payment. Requiring a password before value is a common abandon point.

  • JY-BUY-002simplify
    Purchase path routes to sales instead of self-serve checkout

    If self-serve is intended, put price and checkout on the page. If sales-assist is intended, say that clearly and remove fake buy CTAs.

  • JY-BUY-003simplify
    Long form before payment

    Cut fields to what payment and fulfillment require. Move enrichment to after the purchase.

  • JY-BUY-004simplify
    Purchase language without a clear price

    Show price (or a clear price range) next to the buy CTA. Do not make the buyer start checkout to learn the cost.

  • JY-BUY-005simplify
    Phone required to complete purchase

    Add a self-serve path, or label the phone path as the only way to buy so expectations match the process.

  • JY-BUY-006simplify
    Little visible HTML on a purchase URL — possible SPA gap

    Re-scan after confirming critical checkout steps are in the server-rendered HTML, or supply a plain-language description of the steps the SPA hides.

  • JY-BUY-007simplify
    Competing buy and sales CTAs on the same purchase page

    Make one path primary on the page. If self-serve is the goal, demote “Book a demo” below the fold or route it only for enterprise tiers. If sales-assist is the goal, remove fake buy CTAs.

  • JY-BUY-008simplify
    Buy path with no shipping or returns link on scanned pages

    Link shipping, returns, or refund terms from the buy path pages this scan can see. If they already exist on an unfetched page, surface them earlier in the funnel.

  • JY-BUY-009simplify
    Account wall without a guest checkout option

    Add guest checkout, or defer account creation until after payment. If account is required by policy, say why on the page and keep the form to the minimum.

  • JY-BUY-010simplify
    Free trial CTA without a visible price

    Show post-trial price (or a clear range) next to the trial CTA, and state what happens when the trial ends.

  • JY-BUY-011simplify
    Checkout/cart page without payment method signals

    If payment methods are present only via JavaScript, add a server-rendered trust line (accepted cards / wallets). If they are missing, add them before asking for payment details.

  • JY-BUY-012simplify
    Buy intent observed but no cart or checkout page reached

    Ensure pricing and product pages link to a reachable cart or checkout URL in the HTML. Marketing and engineering should walk the path together and confirm the public link graph.

API

Everything the web UI does is available over HTTP. No key, no account. Please keep it to a few requests a minute — the rate limiter will tell you if you do not.

POST /api/assess
Content-Type: application/json

{
  "url": "https://example.com/pricing",
  "text": "optional notes (not required when url is set)",
  "context": { "industry": "saas" },
  "useModel": false
}

→ 200 AssessmentResult   (findings, evidence, score, recommendations, blueprint, limitations)
→ 400 { "error": "..." }   input failed validation
→ 429 { "error": "..." }   rate limited

GET /api/rules    the catalog above, as JSON
GET /api/health   { status, version, rulePackVersion, ruleCount }

Data policy

The text you submit is processed in the request and discarded when the response is sent. It is not written to a database, not used for training, and not sent to a model provider unless you explicitly opt in to the optional narrative pass. Errors are logged with the content redacted.

Email is collected only if you ask for a copy of a report. Assessment never requires it. The full policy is in docs/05-data-policy.md.

Everything else

The complete build package — product brief, PRD, architecture, threat model, evaluation plan, runbook — is in the repository. The roadmap is public and the issue tracker is open.