# WBMCZ — deploy notes · 06 Sep 2026 (eighth pass)
## KYC is three steps on the ladder, not one

One file. No database change.

    includes/pipeline.php

---

## THE LADDER

**User** and **Seller**, both the same:

    Lead → Free User → Subscription → Pending KYC → KYC Request → KYC Complete → Refer → Order

One "KYC" chip was hiding three completely different jobs behind one number:
chasing somebody who has sent nothing, reading what has arrived, and being
finished. Different people do them, and they need different words.

| Rung | Who is on it | What to do |
|---|---|---|
| **Pending KYC** | asked for their KYC, nothing has come in | chase the documents |
| **KYC Request** | documents submitted, waiting on us | read them, approve or send back |
| **KYC Complete** | approved | ask them to refer somebody |

### How somebody reaches Pending KYC

There is a new outcome on the **Subscription** rung: **"KYC asked for"**. Record
it and the person moves to Pending KYC at once — exactly the way "Free user"
works today.

That is deliberate, and worth knowing why. "Pending KYC" cannot simply mean
*everybody with no KYC record*, because on your data that is 1,194 accounts —
every Lead included — and since the ladder tests from the top down it would
swallow the whole board. So Pending KYC means **we have asked and it has not
come**, which is a real state a person can be in, and one somebody has to have
put them into.

The other two need no marking: **KYC Request** fills itself the moment documents
are submitted, and **KYC Complete** the moment they are approved.

### Where your people sit right now

    user      Lead 375 · Order 40 · Free User 2 · KYC Complete 1
    seller    Lead 7 · Refer 1 · KYC Complete 1 · Subscription 1 · Order 1

The one member who had KYC landed on **KYC Complete**, which is right — they are
approved. Pending KYC and KYC Request are empty because nobody has been asked
yet and nothing is waiting for review.

---

## NOBODY LOSES THE OLD DESK

The single "KYC" desk became three keys. Anyone who had been given the old one
now holds all three, on both sides — rather than quietly losing the desk the day
this goes live. The same applies to a role carrying `tasks.tab_kyc`.

The board now has **29 tabs**, and the Roles screen lists a key for each.

---

## ONE THING I CHANGED THAT YOU DID NOT ASK FOR — AND WHY

The Office side already had a desk called **KYC Pending Request**. It holds
exactly the same people as the new **KYC Request** rung: everyone who has sent
their documents in. Two chips, same list, near-identical names — the sort of
thing you have twice told me to get rid of.

They are not really a duplicate, though, so I renamed rather than deleted:

* **KYC Request** (on the ladder) says *where somebody has got to*.
* **KYC · approve or reject** (the desk) is *where you read the documents and
  answer*, with the files and the accept / hold / reject buttons.

Its subtitle now says outright: *"the same people as the KYC Request rung"*.

If you would rather have only one of the two, say which and I will drop the
other — but I did not want to delete the screen with the documents on it without
asking.

---

## CHECKED

* `php -l` passes
* both ladders build, and the rung SQL runs against your real data — the counts
  above came out of it
* the new outcome appears in the outcome list
* 29 board tabs, with the three KYC rungs on each side
* 68 admin pages load with no fatal, no warning and no notice

**Needs your eyes**, because it is behind the sign-in: open Activity & Task →
User, check the three KYC chips are there, then open somebody on the Subscription
rung and record **"KYC asked for"** — they should move to Pending KYC straight
away.
