Data Model
The marketplace has a seller side, a buyer side, and contracts joining them.
Seller side
- Seller company — the organisation generating leads.
- Seller campaign — a specific traffic source. Carries the campaign key you post with, and belongs to exactly one vertical.
A company can run many campaigns. Each campaign posts independently.
Buyer side
- Buyer company — the organisation buying leads.
- Buyer offer — a specific thing a buyer wants to buy, scoped to one vertical.
- Buyer offer endpoint — where accepted leads are delivered. An offer can have several, tried in sequence.
- Buyer offer filter — a rule determining which leads qualify.
Contracts
A contract joins a buyer offer to the marketplace at a price. It carries:
- What the buyer pays on acceptance
- What the seller receives
- Capacity — how many, over what period
- Duplicate windows, by phone and by email
Seller campaigns are linked to contracts through a junction that also carries the routing weight and order used by the weighted and ordered distribution types.
Leads
A lead records one inbound submission: which campaign sent it, which buyer bought it (if any), what was paid in and out, and its status.
Field values are stored separately from the lead record, which is what allows verticals to define their own fields without schema changes.
Every distribution decision is logged, as is every delivery attempt — including the buyer's actual response body.