Residential plumbing · San Francisco, Oakland, Berkeley · v0

The fulfillment index for AI agents.

Give Tallyho a job spec. It ranks the businesses most likely to keep their promises on that exact job, books it through the business’s own systems, and learns from what actually happened.

Every likelihood is printed with its effective sample size, an 80% interval, and how fresh its evidence is.

Example response to find for the job: Tankless water heater, no hot water, Rinnai · today · under $600 · Oakland 94610. Three candidates, ranked: Example Plumbing Co., 1.8 mi; Example Rooter & Drain, 3.0 mi; Example Bay Plumbing, 4.4 mi.

For the first, the likelihood it keeps every promise in scope for this job is 68%, effective sample size 9.2, 80 percent interval 52–81%, evidence checked two days ago. The agent’s gate is 0.65, so it books it.

Band: 80% credible interval. Rule: p. All printed, never implied.

01 · The problem

A directory can’t say who will do the job.

4.6 (212)

A listing and an average of opinions. Nothing about this job: whether they work on tankless units, can come today, or what it will cost.

Example · Rinnai tankless, no hot water, today, under $600

Keeps this job as specified

68%n 9.252–81%

Last resolved Oct 27, 2026

The likelihood this business keeps every promise that matters for this job, with its sample size and the evidence behind it.

An attempt either succeeded or it didn’t. Tallyho counts attempts, not opinions.

02 · How it works

Find, book, report.

  1. 01

    Find

    The agent sends a job spec: the system, the issue, when, the price ceiling, where. It gets businesses ranked by the likelihood each keeps the promises that matter for that job, with the evidence and its age behind every number.

  2. 02

    Book

    The job goes through the business’s own scheduler, receptionist or booking page, and the agent gets a confirmation. Tallyho calls the shop itself only when there’s no system to book through.

  3. 03

    Report

    After the job, the agent reports a verdict per promise (kept, broken or unobserved) and the actual price and time. One job is several data points, and the next ranking moves.

03 · The promises

Can do the job, at the time, for the price.

Tallyho defines the promises, businesses say which ones they make, and outcomes score whether they keep them. A promise enters the vocabulary only if its outcome can be observed without asking the customer. Businesses can’t write their own; that would make them impossible to compare. A license, a bond and workers’ comp aren’t promises: they’re facts, checked against the state record and shown on every candidate.

  • P01universal

    Every trade 3

    1. Can do the job

      Accepts the booking for this system, brand and issue, and doesn’t turn it down on arrival.

    2. At the time

      Offers a slot inside the window the agent asked for.

    3. For the price

      Quotes at or under the price ceiling in the job spec.

  • P02plumbing · v0 vocabulary

    Plumbing adds 4

    1. Arrives in the window

      The technician checks in inside the booked window, from the platform or the agent’s report.

    2. The quote holds

      The invoice lands within 10% of the quote, from the platform or the receipt.

    3. Job completed

      The job is marked done, by the platform, the agent’s report or the invoice.

    4. No upsell

      No invoice line beyond the job spec that the customer didn’t ask for.

04 · Evidence

Every claim has a source and a price.

Tallyho gathers what businesses can do, and what happened when they tried, from every channel it can reach, and uses the cheapest source that settles the question. Every record carries its source, timestamp, confidence and cost, so a license record counts for more than a services page, and a confirmed booking for more than both.

Public records · ≈ free
Existence, license class, bond and workers’ comp, discipline history (CSLB, permits).
Contractor websites · ≈ free
Services and brands worked on. Low confidence until something confirms it.
Booking pages · low
Service menus, sometimes live availability.
Text replies · low
What the business says it does. A reply is a claim, at medium confidence.
Partner platforms · integration
Field-service software and AI receptionists: the strongest claims, and the only confirmed bookings.
Agent reports · free
What happened after the booking. The only source that says.
Tallyho’s own calls · 30–75¢, to be measured
An attempt with a known outcome: the backstop for evidence, reached for last. Until platforms integrate, also how bookings are made.

05 · For agents

Three tools over MCP.

find(job_spec, promises?)
ranked candidates, each with a likelihood per promise in scope, the joint likelihood for the job, confidence, freshness, the evidence behind it, and how to book it. Free
book(candidate, job_spec, window)
a confirmation or a decline, routed through the business’s own scheduler, receptionist or booking page. Where there’s no system to book through (for now, most of the time), Tallyho books by a supervised phone call. The customer’s details go to the business and aren’t stored
report(booking_id, verdicts, actuals)
a verdict per promise (kept, broken or unobserved) plus the actual price and time. Nothing reported is published as a review; it moves the likelihoods
One candidate from find, as returned. Example values.
{
  "business": "Example Plumbing Co.",
  "joint":   { "p": 0.68, "n": 9.2,  "interval": [0.52, 0.81] },
  "promises": {
    "can_do":      { "p": 0.97, "n": 18.0, "interval": [0.91, 0.99] },
    "at_time":     { "p": 0.84, "n": 12.4, "interval": [0.71, 0.93] },
    "for_price":   { "p": 0.90, "n": 9.6,  "interval": [0.78, 0.97] },
    "quote_holds": { "p": 0.93, "n": 7.1,  "interval": [0.80, 0.99] }
  },
  "fresh": "2026-10-27",
  "book_via": "supervised_call"
}
joint
The likelihood the business keeps every promise in scope for this job, not just one of them.
fresh
When the strongest evidence behind the numbers was last checked. Claims decay as they age.

In development: this contract replaces the prototype’s tools. The hosted endpoint and npm install @tallyho/mcp come first; email hello@asktallyho.com for early access. Your agent signs with its own key, which is its identity. Reports are attributed to it, and agents that report will get higher rate limits and priority routing.

06 · Audience

Who it’s for.

  • A01agents

    Agents

    Find is free, and consumers never pay. An agent that books through Tallyho and reports what happened makes the next answer better for every agent.

  • A02platforms

    Platforms

    Field-service software and AI receptionists: expose your customers’ capability profiles, and agent-booked jobs arrive through your receptionist and calendar. Revenue share, not a fee.

  • A03businesses

    Businesses

    Pay only when an agent-booked job is completed, through the platform you already use. Never for placement: rank isn’t for sale, because selling it would break the calibration that is the product.

07 · Status

Where this stands.

Wedge
Residential plumbing in San Francisco, with Oakland and Berkeley as the service area. HVAC is next.
Built
The likelihood engine (every number with its sample size and interval), the ledger, and a supervised voice caller run end to end on a prototype. Plumbing coverage loads next from state license records, so find is useful on public data alone. No job has been booked through Tallyho yet. The first 10–20 will be booked by Tallyho’s own agent for property managers and short-term-rental hosts in San Francisco, by supervised call.
Revenue
A per-job fee, paid by the business when an agent-booked job is completed, through its platform. A direct billing pilot with a handful of plumbers tests the price first. No paid placement, ever.
North star
Calibration per promise: when Tallyho says a plumber arrives in the window 80% of the time, they do.

08 · Contact

Talk to us.

Building an agent, running a field-service platform, fixing pipes, or investing.

hello@asktallyho.com

Email only. No forms, no sales sequence.