California first

Tax & legal

The product is written as a marketplace. Live money is a legal event, not a deploy event. Other states are in the table, dark, until counsel enables them.

Nature of the relationship

  • GigRentals LLC does not take title and does not employ drivers or hosts.
  • We do not dispatch TNC trips or set Uber/Lyft/DoorDash fares (Period 3 stays on their policy).
  • An application or quote is not an offer. Possession needs inspection, hardware, countersignature, and payment.

Insurance periods (already in product math)

PeriodWhenPrimary
1 Off-rentalCar with the ownerOwner personal / commercial
2 Possession, gig app OFFPer-trip PVSP binder (§ 11580.24)Driver named insured; owner additional insured; Lula/Tint/ABI
3 Gig app ONUber/Lyft/DoorDash engagedTNC commercial; binder excess

Tax collection and information returns

rentalTaxBps() returns 0 until TAX_COLLECTION_ENABLED=true and a city BPS table is loaded. That is deliberate: charging the wrong TOT is worse than charging none in demo. Host/driver cash-outs in production require TAX_FORM_1099_ENABLED so Stripe Connect (or our own file) can emit 1099-K / 1099-NEC.

backend/shared/golive/compliance.ts
COMPLIANCE_JURISDICTION=US-CA   # only CA is liveMoneyAllowed
LEGAL_COUNSEL_REVIEWED=true
TAX_FORM_1099_ENABLED=true
TAX_COLLECTION_ENABLED=true
TAX_CITY_BPS_JSON={"sf":0,"la":0}  # counsel fills real bps

TX, NY, FL, WA, and IL exist in JURISDICTIONS with liveMoneyAllowed=false. Countrywide is a series of state packets, not a new server.

Public compliance pages

  • /privacy — CPRA notice at collection, categories, retention, rights
  • /cookies — session vs device snapshots; GPC
  • /privacy/request — access / delete / correct intake
  • /disclosures — marketplace, money, tax, insurance, E-SIGN, FCRA
  • /licenses — LLC, city, CDI, TOT, seller's permit, 1099, FCRA, no TNC/TCP
  • /tax — 2026 NEC $600 / 1099-K $2500 factors
  • /admin/compliance — desk copy of the data map and discovery sources

Inventory lives in lib/compliance/catalog.ts so the public pages and the desk cannot drift.