Skip to main content

Availability and offers

check_availability can return address-resolution progress, FCC-reported coverage, live provider qualification, or more than one of those at once. Preserve each useful result and its provenance.

FCC evidence is area-level

An FCC match means a provider reported serving the returned census block or tract as of the returned data date. It does not prove that the provider will serve the exact address, that the provider currently sells every listed plan, or that the FCC list is exhaustive. Describe it as reported coverage in the returned area. Do not say “available at this address” based only on FCC data.

Live qualification is asynchronous

A live provider check attempts to qualify the resolved address. Its state is separate from the FCC state and can change across lookup revisions. Polling reads the current snapshot. Starting again with the address creates a separate lookup and can discard useful progress.

Common result combinations

Use the top-level status, both source states, warnings, and next_action together. An empty offers array is not a general no-service signal.

Address clarification

Hum can return up to five normalized candidates instead of silently choosing one. Show each candidate’s display value and ask the user to select it. Return its exact candidate_id. If the chosen candidate has requires_unit: true or the result requests unit, ask for that unit and continue with {candidate_id, unit}. Do not guess a unit, alter a candidate ID, or replace the candidate continuation with a new free-form address. Candidate and lookup IDs are opaque scoped capabilities. Do not show them as user-facing order or provider identifiers.

Qualification questions

Each question contains:
  • question_id: the key to use in answers
  • prompt: the text to present
  • type: string, boolean, single_choice, or date
  • choices: allowed values for a single-choice question
  • required: whether an answer is required
  • sensitivity: none, personal, or sensitive
Ask the current set and send the required answers together with the exact question_set_id. Do not invent an answer, select a default, answer a stale question set, or include extra answer keys. Apply the host’s normal information-access and user-interaction policies when collecting answers.

Provider provenance and freshness

A provider’s provenance can include fcc, live_provider_check, or both. Present the provenance with the relevant data_as_of, checked_at, qualified_at, and expires_at fields. Do not combine facts from different revisions into an apparently current offer. qualification_status is evidence about Hum’s qualification process. It is not an order or installation status.

Informational plans and executable offers

A provider can return two plan collections: An executable offer includes:
  • exact offer_id and provider_id
  • qualification_revision
  • qualified_at and expires_at
  • orderable_through_hum: true
  • returned plan, pricing, fee, contract, data-limit, and condition facts
Pass only the returned offer_id to validate_order. Never derive an ID from a plan name, send a catalog plan ID, or substitute a similar offer.

Unknown facts

Prices and fees are integer cents with a currency code. A null field is unknown, not zero. Preserve unknown values for:
  • current and regular monthly price
  • promotion length
  • self or professional installation fee
  • activation or recurring equipment fee
  • contract requirement and duration
  • download or upload speed
  • data limit and other conditions
Validation may refresh these facts. If the offer changes, present the new review and obtain a new decision before submission. See Ordering and recovery.