Cavaridge Academy
Quoting Mastery
Module 2 of 5

Build a quote

From client conversation to signed quote — the right cadence, the right approvals.

Video — pending production
Read the transcript below. Once recording is complete, the video will replace this notice.
--- title: Build a quote status: draft note: AI-generated first-pass transcript pending video production + SME review. --- Open the Cavaridge Operations sandbox. The **cavalier-quoting-trio** seed gives you three sample MSPs (a Build-tier, an Operations-tier, and a Security-tier customer) and a partner record for deal registration. We'll build a quote for the Operations-tier customer. ## Cadence A quote in Cavaridge™ has four stages, and each stage is a Pulse event. 1. **Created.** You've started the draft. `deal_created` fires. 2. **Reviewed.** Your team has approved the contents and pricing. 3. **Sent.** The customer has received it. `quote_generated` fires. 4. **Signed.** The customer has signed; subscriptions activate. These map to your day. You don't manage the lifecycle by hand; the platform tracks it. ## Building the line items Click "new quote" and search the catalog by name. Pick three line items: an Operations Pro seat for the customer's primary office, a Healthcare add-on for their two-clinician practice, and a one-time onboarding service. Notice what the platform shows you for each line: - `catalog_id` — visible because it's the truth. - `gm` — gross-margin against COGS, in percent. - `tier` — auto-suggested based on customer profile. If any line drops the quote below 55% blended margin, you'll see a red bar. Don't ignore it. Don't hand-edit numbers to make it green. Open `tenantConfig.reseller.margin_overrides` for this customer and add a documented override. ## The taxonomy of fixes When something looks wrong: | Symptom | Fix | | --------------------------------- | ------------------------------------------------------------------ | | Price seems too high vs my notes | Catalog is canon — your notes might be from before the latest sync | | Customer has special pricing | margin_overrides on this customer's tenantConfig | | One-off line not in catalog | Add a catalog entry for the SKU; it should never be a one-off | | Customer wants a tier I don't see | Tier is per-customer in tenantConfig; not a catalog setting | ## Sending When the quote passes review, click send. Two things happen: 1. The quote PDF is rendered with the **customer's** brand chrome (their logo, their tone, your trademark in the footer). 2. A signed-link email goes to the customer with the platform's no-PHI gate enforced (the email never contains PHI even if a line item references a clinical workflow). Watch your Pulse feed in the next 15 minutes. You'll see `quote_generated` fire. If you don't, file a `pulse_missing` ticket — that's a real bug worth flagging. ## What customers see Customers click the link, see a clean quote rendered from the catalog, sign with DocuSign, and trigger the Stripe handoff in module 5. They never see your catalog ids or override notes. That's by design. ## Hands-on In the sandbox: 1. Build a quote for the Operations-tier customer with the three line items above. 2. Try to set the seat price 30% lower than catalog. Watch the gate fire. 3. Apply a documented margin override and re-send. Watch the gate pass. That's the discipline. Same gate, every quote, every time.
Hands-on sandbox
cavalier · seed: cavalier-quoting-trio · 60 min

Knowledge check

  1. Question 1 · select one
    When a client tier triggers a custom price, the right action is
  2. Question 2 · select one
    A quote with line items below GM-floor should
  3. Question 3 · select all that apply
    Which fields are required on every quote?