A
?
← Handbook

Sales pipeline

How a lead moves from form fill to client, who touches it at each step, and which numbers we judge ourselves on. Draft from Alex's brief, 21 Sep 2026. Supersedes the process part of lead-follow-up.md once approved; that page keeps the "first message, same day" rules, which still hold.

GHL is the system of record. Cel works in GHL: inbox, dialling, calendar. Jun Kai works in the portal, which writes to GHL. Automations run in GHL. Nothing here is recorded in two places by hand.

Three things we track on every lead

They are separate because they answer separate questions.

1. Qualification: is this a real prospect? One of three values.

Value Meaning
Leadcame in, not yet confirmed
Qualified leadconfirmed their details and interest, by reply or by call
Disqualified leadruled out: no reply after the sequence, wrong fit, junk, or Cel or Jun Kai says so

2. Stage: where are they in the sale? Only moves forward, except to Lost.

Value Set when
Newlead created
Bookedan appointment exists on the calendar
Showedthey attended
No showthey did not attend and were not rebooked
Closedsigned or paid
Lostdecided against us, or went quiet after showing

3. Cohort: do they count in our numbers?

Value Who
Currentevery lead that comes in from the day this SOP starts
Legacythe 1,022 leads loaded on 21 Sep 2026, and anything older
Reneweda legacy lead that replies to a reactivation or gets booked again; treated as a new lead from that day

Legacy leads stay on the list and can be worked, but they are excluded from every rate. There is not enough history on them to judge appointment setting or closing fairly. A renewed lead gets a fresh Renewed On date and from then on is measured exactly like a current one.

The flow for a new lead

  1. Lead lands in GHL from the form. Qualification = Lead, Stage = New, Cohort = Current.
  2. Confirmation sequence, automatic, starts within minutes. A short message asks them to confirm their details and that they want to talk. Two reminders over 48 hours. No selling in these messages.
  3. They confirm. Qualification = Qualified lead. The next message offers the booking link. If they book, Stage = Booked. If they confirm but do not book within 24 hours, Cel calls to set it.
  4. They do not confirm. After the sequence ends, Cel calls. Reached and interested: Qualified lead, and she books. Reached and not a fit, or wrong number, or junk: Disqualified lead. Not reached after her attempts: Disqualified lead with the reason "no contact", so it can be reactivated later.
  5. The appointment. Cel confirms it the day before. Attended: Stage = Showed. Missed: rebook once, then No show.
  6. The sale. Jun Kai runs the call and sets Closed or Lost in the portal, with deal size, and a note saying why. A lead that showed and went quiet is Lost after 14 days without contact, with the reason "went quiet".

Later, once Cel is used to the flow, she calls every lead including the ones that booked themselves. The point of that call is to disqualify early, so Jun Kai's calendar holds only qualified leads. When that starts, step 3 changes to: confirmed and booked still gets a call before the appointment.

Legacy leads

Two ways a legacy lead gets worked, and both end in the same place.

  • Reactivation sequence. A message that asks whether they are still looking. A reply that says yes makes them Renewed, Qualification = Qualified lead, and they go into step 3 above. A reply that says no, or an unsubscribe, makes them Disqualified lead. No reply: nothing changes and they stay Legacy.
  • Cel outbound. Same outcomes as a reactivation reply, set by her after the call.

Every reactivation excludes: low-quality, disqualified, became-client, rating-1, Closed, and anyone with an appointment in the last 90 days.

Who sets what

Cel, in GHL Jun Kai, in portal Automation
Qualificationafter a callif he learns something on the sales callon confirm reply, on sequence end
StageBooked, Showed, No showClosed, LostBooked when a booking lands
CohortneverneverRenewed on reactivation reply
Rating, low-qualityyes
NotesGHL notesportal notes, which land in GHL

Rule: one owner per field per moment. If two people would set the same field, the one in the table wins and the other adds a note instead.

The numbers

All computed on Current and Renewed only, by the month the lead came in (or was renewed).

Rate Formula
Qualification rateQualified / all leads
Booking rateBooked / Qualified
Show rateShowed / Booked
Close rateClosed / Showed
Cost per qualified leadad spend / Qualified, per month

Legacy shows as a separate line with counts only, never rates. Any closed deal from a legacy lead is real revenue and is counted as such in finance, but it is not a close-rate event.

What has to exist in GHL for this to run

  • Fields: Qualification (Lead / Qualified lead / Disqualified lead), Stage, Cohort, Renewed On, Disqualify reason. Text for now, matching the existing eleven; typed later once values settle.
  • Tags mirroring Qualification and Stage (q-lead, q-qualified, q-disqualified, stage-*, cohort-*), because workflows filter on tags most easily and the portal keeps tag and field in step.
  • Workflows: Confirmation sequence (new leads), Booking offer (on confirm), Reactivation (legacy, manual start), Portal mirror (already specified), and one small workflow that sets Stage = Booked when an appointment is created and Showed / No show from appointment status.
  • No GHL pipeline and no opportunities. Alex, 21 Sep: GHL's pipeline view does not work well and opportunities are hard to manage next to contacts. Stage is a custom field, and the pipeline picture is drawn in the portal.

What changes in the portal

  • The eleven current fields stay. Lead Status is retired in favour of Qualification + Stage once the mapping below is applied; the portal will show all three and hide Lead Status when it is empty.
  • Views become: Qualified and unbooked, Booked, Showed and open, Closed, Lost, Disqualified, Legacy to reactivate. Rate tiles switch to the formulas above, Current and Renewed only, default this month against last month.

Mapping the existing 1,022 (all Cohort = Legacy):

Old Lead Status Qualification Stage
Not called, No pickup, No record, LegacyLeadNew
Not pursuedDisqualified leadNew
Follow upQualified leadShowed if Showed Up = Yes, else Booked if Appointment Set = Yes, else New
ClosedQualified leadClosed
LostQualified leadLost
any, with low-quality or disqualified tagDisqualified leadas above

Open for Alex to decide

  1. Reminder timing in the confirmation sequence: two reminders over 48 hours is a placeholder.
  2. Whether "Disqualified lead" after no contact should instead be a fourth value, "Unreachable", so the disqualification rate stays honest.
  3. When Cel starts calling booked leads too.
  4. The start date of Cohort = Current. Everything before it is Legacy.

Decided 21 Sep: no GHL pipeline or opportunities; Stage is a field; visualisation is the portal's job.