URL: /plays/creator-partnership · Id: `play:creator-partnership`

# Creator partnership

> Moves creators who already answer your buyers’ questions up one ladder of Agreements, each rung paid on revenue they bring after refunds, never on views.

Moves creators who already answer your buyers’ questions up one ladder of [Agreements](https://startupbuilder.dev/business/nouns/agreement), each rung paid on revenue they bring after refunds, never on views.

```text title="Set it up · Ask"
Be our Partnerships lead: find creators whose comments are full of landlords asking about renewals, and offer them 20 % of what we collect for a year, plus free access. Pay for a post only once they’ve sent 2 paying Customers, and I approve every guarantee. Never pay for views. Show me what’s missing; don’t send.
```

```text title="Run one · Ask"
Hand this week’s top creator to the Partnerships agent and show me what it chose and why. Don’t send.
```

```ts title="Run one · SDK"
import { $ } from 'startup-builder'

const { events: [last] } = await $.Event.list({ where: 'name in ("Post.published", "Monitor.checked", "Acquisition.recorded")', limit: 1 })   // { play } compiled to this Play’s Trigger Events
const { subject } = await $.Trigger.fire({ like: last.$id }, { mode: 'try' })   // the same Event again, in try mode · Not live yet, gaps #7
const { decisions: [decision] } = await $.Decision.list({ where: `on = "${subject}"` })   // what it chose, and why · Not live yet, gaps #7
const { actions } = await $.Action.list({ where: `on = "${subject}"` })   // what it did, with its checks · Not live yet, gaps #7
return { decision, actions }
```

```json title="Run one · Response · sample"
{
  "decision": {
    "$id": "https://api.sb/leaseline.app/decisions/decision_651",
    "$type": "Decision",
    "choice": "pitch-referral",
    "reason": "Rosa Lin’s property-management channel draws 7 renewal questions per 1,000 comments, above the floor of 5, and passed the authenticity read",
    "stakes": "low",
    "options": [
      "pitch-referral",
      "thank-the-mention",
      "offer-paid-post",
      "hold-the-commission",
      "renew-or-end",
      "not-now"
    ],
    "by": "worker_10",
    "on": "handle_23",
    "expected": "a signed referral Agreement within 14d",
    "reopensWhen": "no reply from handle_23 within 5d; one follow-up then sends in the same thread"
  },
  "actions": [
    {
      "$id": "https://api.sb/leaseline.app/actions/action_1",
      "$type": "Action",
      "status": "done",
      "mode": "try",
      "by": "worker_10",
      "verb": "Party.screen",
      "checks": []
    },
    {
      "$id": "https://api.sb/leaseline.app/actions/action_2",
      "$type": "Action",
      "status": "pending",
      "reason": "awaitingTime",
      "mode": "try",
      "by": "worker_10",
      "verb": "Message.schedule",
      "checks": [
        {
          "check": "owned-by-a-person",
          "status": "pass"
        },
        {
          "check": "fact-check",
          "status": "pass"
        },
        {
          "check": "creator-ceiling",
          "status": "pass"
        }
      ]
    }
  ]
}
```

`action_2` is the pitch from the Partnerships Mailbox, citing only Rosa’s own public posts, held for its delay window. One follow-up sends in 5 days only if she has not replied.

`$640 collected from Customers creators sent against $0 before · before-after, not proof · n 6 · path → arr`

| Try another: the creator | Choice | Reason |
| --- | --- | --- |
| Rosa Lin, a property-management channel: 7 renewal questions per 1,000 comments | `pitch-referral` | above the ask-density floor; no authenticity flag |
| Jess Moreno: 3 paying Customers from her link in 90 days | `offer-paid-post` | 2 or more paying Customers: the paid-post rung, which you approve |
| A creator’s reel with the link and the disclosure only in the caption’s fold | `hold-the-commission` | no disclosure in the content: Commission holds until a re-scan passes |
| A landlord creator showing Leaseline with no Agreement | `thank-the-mention` | an unprompted mention: you write the thank-you |

| Worth | Your time | Spend | First signal | Use it when | Instead |
| --- | --- | --- | --- | --- | --- |
| ≈ +$590 ARR a month at 7 signed creators | 30 min week 1, then about 1 h a week | 20 % of collected revenue; a paid post $50 to $164 | Day 9: the first creator signs | 20+ creators in your niche answering buyers’ questions | Under 20 creators: `community-answers` · none has shown your product: `creator-probe` |

**Where it sits:** **Stranger** → Lead → Trialing → Activated → At risk → Churned → Won back · Creator-attributed revenue → Referral share → New paying Customers → New Customers ↑ → ARR added each week → ARR

Worth’s formula: about +2.4 paying Customers a month per 10 signed creators (Other Startups’ results; no lift of your own yet) × 7 signed × $348 first order ARR ≈ +$585. Under First signal: At 6 new Customers in 8 weeks, the random post weeks read nothing within 90 days, so this page reads before-after and pools with Other Startups.

`sample · api.sb/leaseline.app · 41 Customers at 2026-10-19 · on Monitor.checked · first pitch drafted 18 min after vetting · 9 keys Not live yet`

## Start it this week
```bash
npx startup-builder add play creator-partnership   # 1 · writes plays/creator-partnership.mdx (Not live yet, gaps #5)

# 2 · dry run; below, its 422 on 2026-08-24
curl -X POST "https://api.sb/leaseline.app/campaigns?mode=try" \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"play":"creator-partnership"}'

# 3 · keep it, at You approve each one
curl -X POST https://api.sb/leaseline.app/campaigns \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"play":"creator-partnership"}'

# on
curl -X PATCH https://api.sb/leaseline.app/campaigns/creator-partnership \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"endsAt":null}'

# off: no pitch or brief sends; earned Commission still pays
curl -X PATCH https://api.sb/leaseline.app/campaigns/creator-partnership \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"endsAt":"now"}'
```


```json title="The dry run’s 422 · 2026-08-24 · sample"
{
  "type": "https://startupbuilder.dev/errors/refused",
  "title": "Refused",
  "status": 422,
  "detail": "creator-partnership can’t start yet: 1 check fails and 2 warn.",
  "checks": [
    {
      "check": "use-when",
      "status": "pass",
      "observed": "64 creators in the niche; 29 above the ask-density floor",
      "doc": "/plays/creator-partnership#check-use-when",
      "then": "Metric.query"
    },
    {
      "check": "baseline",
      "status": "warn",
      "observed": "no creator revenue in 90 days",
      "doc": "/plays/creator-partnership#check-baseline",
      "fix": "It reads before-after, not proof, until volume allows the random post weeks.",
      "then": "Metric.query"
    },
    {
      "check": "billing-connected",
      "status": "fail",
      "doc": "/plays/creator-partnership#check-billing-connected",
      "fix": "Connect Stripe so Commission reads collected revenue, net of refunds.",
      "then": "Integration.connect"
    },
    {
      "check": "domain-authenticated",
      "status": "pass",
      "observed": "leaseline.app: 3 of 3 records resolve",
      "doc": "/plays/creator-partnership#check-domain-authenticated",
      "then": "Domain.authenticate"
    },
    {
      "check": "role-unstaffed",
      "status": "warn",
      "roles": [
        "contracts-manager",
        "risk-analyst"
      ],
      "owned": 0,
      "doc": "/plays/creator-partnership#check-role-unstaffed",
      "fix": "Leave them: guarantees, renewals and fraud holds come to you.",
      "then": "Role.staff"
    }
  ]
}
```

| Check | Fix (one call) | Your time | Wait |
| --- | --- | --- | --- |
| <a id="check-use-when"></a>`use-when` · <a id="check-baseline"></a>`baseline` · pass: 29 creators above the floor · warn: no history (gaps #8) | <Op verb="Metric.query" /> on `creator-attributed-revenue`; it fills Before in Your number | 1 min | none |
| <a id="check-billing-connected"></a>`billing-connected` · fail | <Op verb="Integration.connect" /> with `system` payments (Stripe), payouts on | 10 min | Stripe’s payout check, about 1 day |
| <a id="check-domain-authenticated"></a>`domain-authenticated` · pass | <Op verb="Domain.authenticate" /> | 0 min | none |
| <a id="check-role-unstaffed"></a>`role-unstaffed` · warn (gaps #8): guarantees and holds come to you | <Op verb="Role.staff" />, or leave it: you approve each guarantee | 0 min | none |

`Your number · Before $0 · Now $640 collected from Customers creators sent · Target $1,500 by Dec 31 · before-after, not proof · n 6 Customers`

Referral terms cost nothing until a creator’s Customer pays: then 20 % of collected revenue for 12 months. A paid post costs $4 per 1,000 median views, $50 at the least. Pitches cost $0.04 each (Worker cost). That comes to about $130 a month at Leaseline’s 7 creators, with 1 paid post.

## When it starts
| When | Trigger id | Starts on | Window | How it gets in |
| --- | --- | --- | --- | --- |
| A creator passes vetting | `creator-fit-found` | `event` on `Monitor.checked` where niche fit, ask density at or above the floor, and no authenticity flag | 30d | the weekly sourcing run (<Op verb="Monitor.check" />) |
| A creator posts with your name, link or their code | `creator-post-published` | `event` on `Post.published` where the post names the Startup, its link or a creator’s code | 1d | <Op verb="Handle.connect" /> and the daily disclosure scan |
| A Customer arrives through a creator’s link or code | `creator-acquisition` | `event` on `Acquisition.recorded` where the Acquisition names a creator as its Partner | 90d | <Op verb="Integration.connect" /> (Stripe) and the code on the Order |
| + 4 more for unprompted mentions, closed refund windows, ending terms and leaked codes (`?lanes=all`) | | | | |

```json title="One signed delivery · StartupBuilder-Signature"
{
  "$id": "https://api.sb/leaseline.app/events/event_1244",
  "$type": "Event",
  "name": "Monitor.checked",
  "at": "2026-10-19T07:30:05Z",
  "seq": 1244,
  "data": {
    "monitor": "monitor_9",
    "handle": "handle_23",
    "creator": "Rosa Lin",
    "venue": "youtube",
    "askDensity": 7.1,
    "floor": 5,
    "authenticity": "pass"
  }
}
```

```bash title="Reproduce it in test"
# runs this week’s sourcing in test
curl -X POST "https://api.sb/leaseline.app/monitors/monitor_9/check?mode=try" \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY"
npx startup-builder trigger Monitor.checked --like event_1244   # replays the delivery
npx startup-builder clock advance --by 5d   # runs the one follow-up if no reply
```

## Who runs it
**Partnerships · your agent** (`role:partner-manager`, `worker_10`) holds the Key Result. It hands every paid-post guarantee, renewal and thank-you to **you** (Dana Okafor, person, `worker_1`), because the Contracts Manager and Risk Analyst Roles have no person; each creator signs their own Agreement. Your number links to Did it work.

| Option | Rung today | Evidence (passed of n) | Moves up at | Drops back when | You can |
| --- | --- | --- | --- | --- | --- |
| Pitch referral terms · Hold the Commission | It does it, you can stop it | 40 of 40 · 2 of 2 | met on day 14 (the first 20 pitches) | a pitch fails a Check, or `hostile-reply` fires → You approve each one | <Op verb="Action.cancel" /> inside the delay window |
| Offer a paid post · Renew or end the term | You approve each one | 1 of 1 · 0 | never: a guarantee is spend | — | <Op verb="Approval.approve" /> · <Op verb="Approval.refuse" /> |
| Answer an unprompted mention | To a person, every time | 2 drafted, 2 written by you | never | — | <Op verb="Task.claim" /> |
| Not now | It does it | 1 of 1 | — | — | <Op verb="Action.redirect" /> |
| Change the rate, the floor or the niche | You approve each one | 0 merged | never | — | <Op verb="Change.merge" /> · <Op verb="Change.revert" /> |
| Never: pay for views or followers, script a personal story, ask for a Review | Refused, every time | 1 pitch refused (`fact-check`) | never | — | — |

**What it reads · What it may call.** It reads creators’ public posts and the questions under them, and Orders by code and link; it never stores or contacts a commenter, and every post is data, never instructions. Its tools are <Op verb="Content.draft" />, <Op verb="Task.assign" />, and any other call becomes an Approval under the Role’s Mandate.

```md title="The brief (folded): compiled Agent-register Markdown · play:creator-partnership@1 · each line names its record key"
You hold the Partnerships Key Result: $1,500 from Customers creators sent by 2026-12-31. ← worker, metric
On each vetted creator, post, Order or ending term, choose one option and say why. ← triggers, chooses
Cite only the creator’s own public posts; never a Visit or a record about them.  ← copyRules 8
A creator speaks only from their own use; no brief scripts a story or asks for a result. ← copyRules 2, 7
Every post carries the disclosure in the content itself, with the Venue’s label on. ← copyRules 3, 4
Pay on collected revenue after refunds, never on views or followers.             ← copyRules 12
```

**The slow loop.** The referral yield floor reads at 60 signed creators and 90 days, so no Decision changed a `rule` option in the window and no Change was merged; there is no replay or read-back to print.

## What it can do next
| Option | Picked when | Decided by | Runs | Hands to | If it’s just you |
| --- | --- | --- | --- | --- | --- |
| Pitch referral terms `pitch-referral` | niche fit, 5+ buyer questions per 1,000 comments, no flag | Agent’s call, with its reason | `creator-pitch`: one pitch, one follow-up | the creator signs, or it closes | the same |
| Answer an unprompted mention `thank-the-mention` | a creator shows Leaseline with no Agreement | Agent’s call, with its reason | <Op verb="Content.draft" /> → <Op verb="Task.assign" /> | you write it, due 1 business day · Take this one | the same |
| Offer a paid post `offer-paid-post` | 2+ paying Customers in 90 days | Your rule (line 4) | <Op verb="Task.assign" /> the guarantee → `creator-onboard` with the brief | you approve the guarantee · Take this one | the same |
| Hold the Commission `hold-the-commission` | no disclosure in the content, or a fraud signal | Your rule (the Disclosure hold) | `disclosure-fix`: the exact fix, one reminder | the creator | the same |
| Renew or end the term `renew-or-end` | 14 days before a term ends | Agent’s call, with its reason | <Op verb="Task.assign" /> with the creator’s 90-day revenue | you renew or end it · Take this one | the same |
| Not now `not-now` | a fifth post request this month across your Startups | Your rule (the Creator ceiling) | nothing; next month holds it | nobody | the same |

| When they write back | Fixture reply | What happens | Who answers | By when | Call |
| --- | --- | --- | --- | --- | --- |
| Interested | “Sounds good. Send the terms.” | the Agreement with its terms in numbers; it signs on their press | the creator | — | <Op verb="Agreement.sign" /> (theirs) |
| Send me pricing | “What would my viewers pay?” | the Pricing Page’s list Prices for Pro and Team | Partnerships · your agent | 1 business day | <Op verb="Conversation.answer" /> |
| Not now | “Booked up until spring.” | the follow-up cancels; nothing more sends | nobody | at once | <Op verb="Conversation.close" /> |
| Wrong person | “My manager handles partnerships.” | asks them to forward it; it never writes to an address from their text | Partnerships · your agent | 1 business day | <Op verb="Conversation.answer" /> |
| Out of office | an auto-reply until Oct 28 | the follow-up waits for the return date | nobody | the return date | <Op verb="Message.schedule" /> |
| Question it can’t answer | “Can my viewers get 30 % off?” | To a person: a discount is never the agent’s call | you | 1 business day | <Op verb="Conversation.escalate" /> |
| Stop | “Not interested, please don’t email again.” | nothing else sends to them, from any of your Startups | nobody | at once | <Op verb="Contact.suppress" /> |

## When it hands to you
Guarantees, renewals and thank-yous come to **you** (Dana Okafor, person). One Brief per Role, as captured (`brief` is Not live yet, gaps #7).

```json title="What lands in each queue · sample"
[
  {
    "$id": "https://api.sb/leaseline.app/tasks/task_663",
    "$type": "Task",
    "assignee": "worker_1",
    "due": "2026-10-06T17:00:00Z",
    "on": "handle_9",
    "brief": {
      "who": "Jess Moreno, a landlord creator, 41,000 median views",
      "chose": "offer-paid-post",
      "why": "3 paying Customers from her link in 90 days",
      "guarantee": "$164 (41,000 × $4 per 1,000), or her Commission when it is more",
      "never": [
        "pay for views alone",
        "a scripted story",
        "a Review ask"
      ]
    }
  }
]
```

You answer with <Op verb="Approval.approve" /> on the guarantee, <Op verb="Task.return" /> with a reason, or <Op verb="Action.redirect" />. Nothing is promised to the creator until you approve; an approval left past its due time expires. A Task nobody claims by its due time stays with you, the last Role, and `person-promise` fires.

**On time:** you, 3 of 3 claimed within 1 business day, median 4 h 15 min, n 3, ■□□□ Too early to tell beside Other Startups’ 88 % on time. **Your queue:** counted by kind: about 1 approval and 1 thank-you every 2 weeks.

**The fixed line:** <Op verb="Deal.assign" /> sets `owner` to the receiving person, the agent is never a Deal’s owner, and Meetings land on the owner’s calendar under the owner’s name.

## When it won’t send
| Check (refuses one send) | Refuses | Fix | Then |
| --- | --- | --- | --- |
| <a id="check-owned-by-a-person"></a>`owned-by-a-person` (rule j; Not live yet, gaps #8) | a pitch to a creator whose Conversation a person claimed | Leave it to the person who owns it: the draft waits in their queue. | <Op verb="Task.assign" /> |
| <a id="check-fact-check"></a>`fact-check` (hub, on <Op verb="Content.publish" />) | a pitch, brief or Page with a claim no record backs | Cut the claim, or name the record that backs it. | <Op verb="Content.draft" /> |
| <a id="check-disclosure-hold"></a>`disclosure-hold` (the record’s Disclosure hold) | Commission on Orders from a post with no disclosure in its content, or no Venue label | The creator adds the disclosure; Commission pays after the re-scan. | <Op verb="Monitor.check" /> |
| <a id="check-category"></a>`category` (the record’s Category stop) | a brief or post with framing the Venue would reject for the Offer’s category | Cut the framing; that Venue drops from the Offer’s placements. | <Op verb="Content.draft" /> |
| <a id="check-fraud-hold"></a>`fraud-hold` (the record’s Fraud hold) | Commission on a self-purchase, a shared card, a coupon-site referrer or a Brand-name Ad | You decide pay or void on the Approval. | <Op verb="Approval.approve" /> |
| <a id="check-creator-ceiling"></a>`creator-ceiling` (the record’s Creator ceiling) | a fifth post request to one creator in a month, across your Startups | Wait for next month. | <Op verb="Decision.list" /> |

| Stop (pauses the Play) | Pauses when | Then |
| --- | --- | --- |
| <a id="stop-disclosure"></a>`disclosure` | a second disclosure miss within 90 days | every rung pauses for that creator; a third goes to you to end |
| <a id="stop-refund"></a>`refund` | refunds and Disputes over twice your baseline, over 20+ Orders | that creator’s code takes no new Orders; Commission holds |
| <a id="stop-referral-yield"></a>`referral-yield` | after 60 signed creators and 90 days, under 3 with a paying Customer | sourcing stops; a Decision on Offer, rate and niche opens |
| <a id="stop-paid-rung"></a>`paid-rung` | after 10 paid posts and 90 days, under $200 per $100 paid | new guarantees stop |
| <a id="stop-spend-limit"></a>`spend-limit` | guarantees and Commission over the month’s Limit | they wait for your approval |
| <a id="stop-complaint"></a>`complaint` | spam complaints near 0.1 % of a day’s pitches | pitches pause on every Mailbox |
| <a id="stop-bounce"></a>`bounce` | bounces over 2 % of a day’s pitches | the Mailbox pauses |
| <a id="stop-hostile-reply"></a>`hostile-reply` | 3 hostile replies in any 100 pitches | pitching pauses; the template returns to You approve each one |
| <a id="stop-kill-switch"></a>`kill-switch` | you press it | every step pauses; earned Commission still pays |
| + 1 more for the video lane: a Venue notice on a creator post (`?lanes=all`) | | |

The captured refusal, then the Stop that fired as a `Campaign.paused` reason (Not live yet, gaps #2); the rewrite that sent is the Rosa Lin thread in Example.

```json title="The captured refusal · sample"
{
  "type": "https://startupbuilder.dev/errors/refused",
  "title": "Refused",
  "status": 422,
  "detail": "The pitch to Rosa Lin did not send: it states a customer count no record backs.",
  "checks": [
    {
      "check": "fact-check",
      "status": "fail",
      "doc": "/plays/creator-partnership#check-fact-check",
      "fix": "Cut the claim, or name the record that backs it.",
      "then": "Content.draft"
    },
    {
      "check": "creator-ceiling",
      "status": "pass"
    }
  ]
}
```


```json title="The Stops that fired, as Campaign.paused reasons · sample"
[
  {
    "reason": {
      "limit": "disclosure",
      "observed": "2 misses",
      "bound": "1 in 90 days",
      "window": "90d"
    },
    "doc": "/plays/creator-partnership#stop-disclosure",
    "task": "task_671"
  }
]
```

## Did it work
At 6 new Customers in 8 weeks, the post weeks drawn at random read nothing within 90 days, so the basis is before-after (rule o): nothing prints as Added. Each figure’s call is <Op verb="Metric.query" /> by node, and every node above the leaf is Not live yet (gaps #4).

`$640 collected from Customers creators sent against $0 before · before-after, not proof · n 6 · path → arr`

| Node | Now (56 days) | Before (the 56 days before) | Added | Confidence | Basis |
| --- | --- | --- | --- | --- | --- |
| `creator-attributed-revenue` | $640 collected, net of refunds, from 6 Customers creators sent | $0 (no creators) | — · Worth about +$590 a month | — | before-after, not proof · Other Startups’ results +2.4 paying Customers a month per 10 signed creators, ■■□□ Early sign, n 310 |
| `referral-share` ↑ | 6 of 14 new paying Customers (43 %) | 2 of 11 (18 %) | — | — | before-after |
| `new-paying-customers` · `new-arr` | $2,088, 6 Customers · Booked $2,088: credited, not all caused by this Play | $0 | — | — | before-after · Jess’s paid post still inside its 90 days |
| `net-new-arr` · `arr` | carried from `new-arr` | carried | — | — | carried |

The leaf counts collected revenue, net of refunds and Disputes, from Orders whose first Acquisition names a creator, sealed weekly. The post-week read compares new Customers in weeks drawn at random for a paid post against the creator’s other weeks.

**How it moves it:** each creator gets a code, a link and free access, and their viewers’ questions already match what Leaseline answers; 3 of 7 signed creators sent a paying Customer.

**Guardrails:** before against after: refunds on creator Orders, 0 of 6 against a direct 1 in 14, and $200 per $100 paid, waiting for 10 paid posts.

```json title="The Campaign card · sample"
{
  "$id": "https://api.sb/leaseline.app/campaigns/creator-partnership",
  "$type": "Campaign",
  "play": "play:creator-partnership@1",
  "path": [
    "creator-attributed-revenue",
    "referral-share",
    "new-paying-customers",
    "new-arr",
    "net-new-arr",
    "arr"
  ],
  "experiment": {
    "metric": "creator-attributed-revenue",
    "unit": "usd",
    "heldBack": 0,
    "decision": null
  },
  "readout": {
    "value": null,
    "n": 6,
    "maturing": 2,
    "interval": null,
    "readability": "inadmissible",
    "basis": "before-after",
    "pooled": true
  },
  "ledger": {
    "spend": 292,
    "workerCost": 2,
    "hours": 1.4,
    "pipelineArr": 696,
    "wonArr": 2088,
    "projectedArr": 585,
    "paybackDays": 51
  }
}
```

Outside benchmark: 7.6 % of recruited partners make at least one referral and 1.28 % a sale, at an average Commission of 24.16 % (2,847 SaaS partner programs, a partner-program platform’s report, 2026-03-17).

**Before it · After it.** Before it: `creator-probe` finds which creators move Leads, and `community-answers` shows which questions they answer. After it: `creator-ads` runs a creator’s winning post as a paid Ad, and `commission-partners` pays every Partner on the same run.

## Example
Leaseline ran it from 2026-08-24 to 2026-10-19 (56 days): 64 creators sourced, 29 above the ask-density floor, 40 pitches (29 plus 11 follow-ups), 7 signed referral terms, 3 sent paying Customers, and 1 paid post. Read every captured thread at `?threads=all`; three follow the tables.

| What happened, by option | Decisions | Done | Customers (Booked: credited, not all caused by this Play) |
| --- | --- | --- | --- |
| Pitch referral terms | 29 | 29 pitches, 11 follow-ups, 7 signed | 6 · $2,088 |
| Offer a paid post | 1 | Jess, $164 guarantee, approved | still inside its 90 days |
| Answer an unprompted mention · Hold the Commission · Not now | 2 · 2 · 1 | 2 written by you · 2 fixed · — | — |
| At 20 creators in the niche (the Use it when volume) | about 5 signed in 8 weeks | before-after, not proof | Other Startups’ results: +2.4 per 10 signed a month, ■■□□ Early sign, n 310 |

| Day | Event | What happened | Your time |
| --- | --- | --- | --- |
| 0 | `event_118` Campaign.created | the three steps; the dry run fails `billing-connected` | 20 min |
| 1 | `event_131` Integration.connected | Stripe payouts on | 10 min |
| 3 | `event_160` Action.refused | `fact-check` refused a pitch stating a customer count; the rewrite sent | — |
| 9 | `event_222` Agreement.signed | the first creator signs referral terms | — |
| 14 | `event_290` Role.updated | promoted: pitches send after a delay window | — |
| 31 | `event_460` Campaign.paused | `disclosure`: a second miss; that creator’s rungs paused until she fixed both | 5 min |
| 43 | `event_590` Approval.approved | you approve Jess’s $164 paid post | 5 min |
| 1–56 | `event_141` Task.assigned, first of 4 | you wrote 2 thank-yous and approved 1 guarantee; weekly reviews, from the <Op verb="Task.next" /> log | 45 min · **total 1.4 h measured, 2 h asked** |

> **Partnerships · your agent → Jess Moreno, Sep 3, 10:05** · Your viewers keep asking how to get renewal notices out on time; your Aug 28 video drew 31 of those questions.¹ Leaseline does that job, and you can use it free.² If someone you send pays, you earn 20 % of what they pay for 12 months, after a 30-day refund window.³ *Signed with the Role’s disclosure line.*⁴
>
> **Jess, Sep 4, 09:12** · signed the referral terms; her first viewer paid on Sep 19.

```diff title="Rosa Lin, 2026-08-27 · the pitch fact-check refused, then the rewrite that sent"
- Over 2,000 landlords already trust Leaseline with their renewals.
+ Your viewers ask about renewal notices often: 7 of every 1,000 comments on your channel.
```

> **Jess, 2026-10-05 15:30** · “Happy to do a dedicated video. What would that pay?” · **Partnerships · your agent, 15:31** · *Thanks, Jess. Dana confirms the number by tomorrow evening.*⁵ The Brief went to you (`task_663`), due Oct 6 17:00; you approved $164 at 11:20.

¹ Only the creator’s own public posts and the questions under them. ² Free access counts as payment; the disclosure line covers it. ³ The terms in numbers. ⁴ The fixed signature line, compiled from the Role’s disclosure Setting. ⁵ The routed line, compiled from the Role’s Settings.

## Your settings
```mdx title="plays/creator-partnership.mdx"
---
rate: 0.20        # of collected revenue, for 12 months
floor: 5          # buyer questions per 1,000 comments
paid-post: 2      # paying Customers before a paid post
---
Offer creators whose comments are full of landlords asking about renewals our referral terms and free access. Pay for a post only after 2 paying Customers; I approve every guarantee.
```

```text
$ npx startup-builder show plays/creator-partnership
rate 0.20 · floor 5 · paid-post 2     your file  plays/creator-partnership.mdx:2-4,6 (Ask 2026-08-24)
family referral · worker role:partner-manager, owns never · chooses 6 (3 rule, 3 read) · sequences creator-pitch, creator-onboard, disclosure-fix · checks owned-by-a-person, fact-check, disclosure-hold, category, fraud-hold, creator-ceiling · stops 10 · placements gmail, outlook, yahoo-mail, tiktok, instagram, youtube, linkedin, x    catalog  play:creator-partnership@1 (Not live yet, gaps #5)
```

### Every key from the catalog
| Key | Id | What it is |
| --- | --- | --- |
| Tactic | <a id="tactic-creator-sourcing"></a>`creator-sourcing` | Creator sourcing ranks creators each week by how often their commenters ask for what the Startup sells, times fit to the ICP, never by followers. Starts at Sends nothing. |
| Tactic | <a id="tactic-creator-signing"></a>`creator-signing` | Creator signing pitches each ranked creator once, signs the rung’s Agreement inside the approved band, and issues codes, links and a Partner view. Starts at You approve each one. |
| Tactic | <a id="tactic-creator-brief"></a>`creator-brief` | Creator brief sends each creator the Problem, approved claims, code, link and disclosure line for one post, and leaves concept and publishing to the creator. Starts at You approve the first wave. |
| Tactic | <a id="tactic-disclosure-scan"></a>`disclosure-scan` | Disclosure scan reads every partner post for an in-content disclosure, the Venue’s toggle and labels, link text and claims, and holds Commission on a miss. Starts at Sends nothing. |
| Tactic | <a id="tactic-creator-attribution"></a>`creator-attribution` | Creator attribution seals a weekly reading of creator-attributed revenue per creator, holds suspect Orders, and pays Commission and guarantees through Stripe. Starts at It does it, you can stop it. |
| Tactic | <a id="tactic-creator-renewal"></a>`creator-renewal` | Creator renewal scores each creator at term end, re-prices the paid rung from the view median, and promotes, renews, demotes or ends by fixed bands. Starts at You approve each one. |
| Tactic | <a id="tactic-co-branded-offer"></a>`co-branded-offer` | Co-branded offer publishes an Offer under a creator’s name with the Startup named as operator, under a likeness license that reverts when the Agreement ends. Starts at You approve each one. |
| Trigger | <a id="trigger-unprompted-creator-mention"></a>`unprompted-creator-mention` | Unprompted creator mention: `event` on `Post.published`, window 14d. |
| Trigger | <a id="trigger-creator-fit-found"></a>`creator-fit-found` | Creator fit found: `event` on `Monitor.checked`, window 30d. |
| Trigger | <a id="trigger-creator-post-published"></a>`creator-post-published` | Creator post published: `event` on `Post.published`, window 1d. |
| Trigger | <a id="trigger-creator-acquisition"></a>`creator-acquisition` | Creator acquisition: `event` on `Acquisition.recorded`, window 90d. |
| Trigger | <a id="trigger-clawback-closed"></a>`clawback-closed` | Clawback closed: `at` on `Monitor.checked`, window 7d. |
| Trigger | <a id="trigger-creator-term-ending"></a>`creator-term-ending` | Creator term ending: `at` on `Monitor.checked`, window 14d. |
| Trigger | <a id="trigger-creator-code-leak"></a>`creator-code-leak` | Creator code leak: `event` on `Monitor.checked`, window 1d. |
| Sequence | <a id="sequence-creator-pitch"></a>`creator-pitch` | Creator pitch: 2 steps; it ends on The creator replies.; The creator signs an Agreement.; The creator declines, opts out or is suppressed.; 14 days pass from the pitch.. |
| Sequence | <a id="sequence-creator-onboard"></a>`creator-onboard` | Creator onboard: 3 steps; it ends on The creator publishes a first post.; The Agreement ends.; The creator asks for no more Messages.. |
| Sequence | <a id="sequence-disclosure-fix"></a>`disclosure-fix` | Disclosure fix: 3 steps; it ends on The fix is verified on a re-scan; The content is removed; The Agreement ends. |
| Benchmark | <a id="benchmark-partner-referral-rate"></a>`partner-referral-rate` | Share of recruited partners who make at least one referral.: 7.6 % (A partner-program platform’s 2026 report on its SaaS programs., 2026-03-17). |
| Benchmark | <a id="benchmark-partner-sale-rate"></a>`partner-sale-rate` | Share of recruited partners who generate at least one sale.: 1.28 % (A partner-program platform’s 2026 report on its SaaS programs., 2026-03-17). |
| Benchmark | <a id="benchmark-partner-commission-rate"></a>`partner-commission-rate` | Average commission rate across partner programs, typical range 20 to 30 percent.: 20–30 % (A partner-program platform’s 2026 report on its SaaS programs., 2026-03-17). |
| Benchmark | <a id="benchmark-partner-referred-buy-rate"></a>`partner-referred-buy-rate` | Share of partner-referred visitors who buy within 90 days.: 0.8 % (A partner-program platform’s 2026 report on its SaaS programs., 2026-03-17). |