mcs150: enrich intake from FMCSA carrier census before PDF fill

The MCS-150 biennial update re-confirms the carrier's existing FMCSA
record. Previously the PDF filler only had whatever the intake form
collected; rescued/sparse orders (or orders where the carrier's data
lives in FMCSA, not the intake) produced near-empty forms. Now we pull
the carrier census (legal name, address, EIN, fleet counts) from the
FMCSA carrier API and merge it under any customer-provided intake values
(customer edits win), so the form is pre-filled with the carrier's
current registered data. Refactored the FMCSA fetch into a shared
_fetch_fmcsa_carrier helper used by both enrichment and status check.
This commit is contained in:
justin 2026-06-10 12:35:43 -05:00
parent 7e5946d65a
commit d5e66786a2
8 changed files with 294 additions and 15 deletions

Binary file not shown.

View file

@ -0,0 +1,74 @@
# Selling name availability: sell a Name RESERVATION, not a "check"
Decision (2026-06-09): the product to sell is a **state Name Reservation**, not a
bare "name check." Here's why, with the real state mechanics.
## The key distinction: a search is a snapshot, a reservation is a binding hold
- A **name search** (what our TX open-data API and a SOSDirect/SilverFlume search
do) is a non-binding *snapshot*. It tells you the name looks free *right now*. It
does not stop someone else from taking it tomorrow, and it is not the SOS's official
word. Charging for a snapshot is weak value and invites "I paid and then lost the
name" complaints.
- A **name reservation** is the authoritative, binding action: the Secretary of State
*holds the name for you* for a fixed window. This is a real deliverable with a real
filing receipt - exactly the kind of thing we should sell.
## What each state actually offers (public fee schedules)
### Texas
- **SOSDirect online name search: $1.00 per search** (statutory fee, requires a
SOSDirect login). Non-binding snapshot.
- **Preliminary determination by phone/email: free** (call 512-463-5555 or email
Corporations) - also non-binding, and slow/manual.
- **Name Reservation (Form 501): $40 state fee, holds the name 120 days, renewable.**
This is the binding hold and the thing worth selling.
### Nevada
- **SilverFlume name availability: free** (but the portal is behind Incapsula bot
protection, so we cannot automate it - and a free snapshot is low value anyway).
- **Name Reservation: $25 state fee, holds the name 90 days.** The binding hold.
## Product recommendation
1. **Free instant pre-check (lead magnet, not a SKU):** keep the TX open-data API
check on the order form as a *free* "looks available / looks taken" instant signal.
It costs us nothing, reduces friction, and qualifies the lead. Label it clearly as
a preliminary check, not a guarantee. (NV pre-check returns "we'll verify manually"
since NV is bot-blocked.)
2. **Sell the Name Reservation as the paid SKU.** Flat service fee + the state fee at
cost. This is the authoritative hold the customer actually wants, and it's a clean,
deliverable-backed product:
- `name-reservation-tx`: service fee + **$40** TX state fee (Form 501, 120 days).
- `name-reservation-nv`: service fee + **$25** NV state fee (90 days).
- or a generic `name-reservation` with the state chosen at intake and the gov fee
resolved per state (cleaner, matches how foreign-qualification fans out).
3. **Bundle it into the formation / DEXIT flow:** offer "reserve the name now" as an
add-on/step before the full formation or conversion, so the customer locks the name
while the rest of the paperwork is prepared. Natural upsell, removes the "what if I
lose the name while you file?" objection.
## Pricing note (house rule: use the higher price on any mismatch)
Suggested service fee in the $49-$99 range on top of the state fee, billed as a flat
fee with the government fee passed through at cost and labeled as such (consistent
with our other corporate SKUs and the no-hidden-fees trust posture).
## Fulfillment reality (be honest about automation)
- **TX reservation (Form 501)** is filed via SOSDirect (login-gated) or by mail/fax.
SOSDirect filing automation is **not yet verified** (same as TX formation), so the
reservation would start **admin-assisted** until that flow is proven by the e2e
harness. The $1 SOSDirect search and the $40 reservation both require the SOSDirect
account we use for filing.
- **NV reservation** is filed on SilverFlume, which is Incapsula-blocked for
automation, so NV reservation is **admin-assisted** (a person files it). Still a
perfectly good paid product - the customer pays for the outcome (a held name), not
for our automation.
- Both: capture the name + entity type at intake, file the reservation, deliver the
state confirmation/receipt through the portal. The free pre-check gates obviously
bad names before the customer pays.
## Next steps to ship this
1. Add `name-reservation` SKU(s) to `api/src/service-catalog.ts` with per-state gov
fee (TX $40 / NV $25) and create the matching ERPNext Items.
2. Add an admin-assisted `NameReservationHandler` (or reuse the MCS150-style
admin-assisted pattern) that records the order and surfaces an admin to-do to file
the reservation, then attaches the SOS receipt.
3. Keep the free instant TX pre-check on the form; relabel as preliminary.
4. Offer the reservation as a step in the formation + DEXIT intake.