← Sponsor Ladder
API
Tokens

Run Sponsor Ladder from your own code

Both metered lanes are available over HTTP and each returns one JSON object. The division of labour: the page fixes the target, picks the architecture, checks the ladder, the add-ons and the in-kind offers, and sets the calendar - all free, in sponsorkit.js. The run writes the rate card or the policy; the page then holds the reply to its own numbers (sponsorreply.js).

Base URL and the response shape

Every endpoint lives under https://api.skillsafe.ai/v1/app-api, and every response has one shape:

{ "ok": true,  "data":  { ... } }
{ "ok": false, "error": { "code": "...", "message": "..." } }

The token is minted for this app (the guest call takes {"slug":"sponsor-ladder"}), so no slug header is needed afterwards. Send it as Authorization: Bearer …. The run body is the input object, sent bare.

StatusCodeMeaning
400validation_errorThe body is not a JSON object, or a required key (task, event, ladder, facts) is missing.
401unauthorizedNo token, or a stale one. Mint a guest token or sign in again.
402insufficient_creditsThe balance is under min_credits. Price with /estimate first.
403forbiddenA guest token tried to run: both lanes are metered and need a personal sign-in.
404not_foundUnknown job id.
429rate_limitedBack off and retry.
5xxserver_errorTransient. Retry with the same Idempotency-Key so a retry never double-bills.

The task field comes first

Two lanes - card (the rate card to validate; needs tiers unless there is no ladder by design) and policy (the negotiation and discount policy). A missing or unknown task is answered as card. Both lanes send the same four fields.

The input

FieldRequiredWhat
taskyescard or policy. If it is missing or neither, do card and set "task": "card".
eventyesthe event, its pole and format, attendance, ticket price and date, the budget, the inventory, the selling context, the discount and policy choices entered, and any comparable cards.
ladderyesthe tiers top first (as entered or proposed by the page) with slots, passes and their value, net after passes, floor presence, stage minutes, benefits and each tier's method; the add-ons with their status; each in-kind offer at displaced cost with the tier it earns.
factsyesthe page's target and method, architecture, ratio, projection, booth floor and staff-free tiers, discount mechanic, calendar, the readiness gate, the signals to record and every finding tagged [fix], [check] or [info].
retry_notenooptional; if present, your previous reply was unusable - follow it.

The rules the model applies

House rules

The replies

card

  1. summary - one sentence, at most 35 words: the target, the architecture and the first thing to settle.
  2. target - amount (the page's target as a number), math (one sentence: the expenses times the share, and what the card raises at full sellout), method (cost-recovery).
  3. architecture - pick (published, quote or none, the page's pick), tiers (the number of tiers on the card, 0 when there is no ladder), why (one sentence, from the input's pole, format and selling capacity as stated - nothing else).
  4. ladder - one object per tier, in the page's order (top first): name (exactly), price (a number, or null for contact us), slots (a number), benefits (short: the passes, floor presence, stage time and branding it gates), method (the page's label for that tier, exactly), note (one short sentence: what the tier is for - the anchor, the best value, a step between them, the entry rung, or a persona). [] when there is no ladder.
  5. ratio - value (the page's top:floor ratio exactly, or "" when it does not apply), note (one sentence against the published range).
  6. addons - one object per add-on the page keeps on the card, in its order: name, price (a number, or null for contact us), note (short). Leave out the ones the page deleted or took off the card; name those in the caveats.
  7. inkind - one short string per in-kind offer: its value at displaced cost and the tier it earns. [] when there are none.
  8. calendar - signing (the page's signing deadline, or ""), early_bird (the page's early-bird date, or ""), note (one sentence: the add-on cutoff, and the renewal date for a series).
  9. signals - 2 or 3 short strings, the page's signals to record, each with the repricing it would trigger next edition (your design).
  10. caveats - at most 4 short strings: every [fix] finding first, then the most important [check] findings while there is room. [] when there are none of either.
{
  "task": "card",
  "summary": "one sentence",
  "target": { "amount": 40000, "math": "one sentence", "method": "cost-recovery" },
  "architecture": { "pick": "published", "tiers": 3, "why": "one sentence" },
  "ladder": [ { "name": "Gold", "price": 6000, "slots": 2, "benefits": "short", "method": "market-comp", "note": "one sentence" } ],
  "ratio": { "value": "4:1", "note": "one sentence" },
  "addons": [ { "name": "Coffee", "price": 1500, "note": "short" } ],
  "inkind": [ "an offer and its value" ],
  "calendar": { "signing": "YYYY-MM-DD", "early_bird": "", "note": "one sentence" },
  "signals": [ "what to record and what it changes" ],
  "caveats": [ "a caveat" ]
}

The page holds it to its own numbers: the target, the architecture and tier count, every tier top first with its exact name, price, slots and method, the ratio, only the add-ons it keeps on the card, and the signing and early-bird dates; no number may appear that the input does not hold.

policy

  1. summary - one sentence, at most 35 words: what holds, who decides and the first thing to settle.
  2. negotiable - exactly 3 short strings: the payment schedule, equal-value benefit swaps, and bundling add-ons into a tier at the sum of their card prices.
  3. never - 4 short strings: published tier prices, anything the program policy forbids selling, exclusivity not already on the card, and the early-bird deadline (or, with no early-bird, any deadline printed on the card).
  4. authority - approver (the approver from the input, exactly; a role when none is named), floor_pct (the floor from the input as a number, or null when it is not set), rule (one sentence: never the person closing the deal alone, and adding a benefit before cutting a number).
  5. log - exactly 5 short strings, the columns of the deviation log: sponsor, tier, what moved, why, who approved.
  6. discount - pick (earlybird, bundling, negotiated or none, the page's pick), text (one sentence: the mechanic as the page states it, with its price and date or its percentage).
  7. inkind - one or two sentences: displaced-cost value, placement at that value, the top tier cash-majority, and the value, delivery and failure terms written into the agreement.
  8. renewal - what to say to a returning sponsor who asks for loyalty pricing, a few sentences: the price holds; the post-event report; the early-bird date on this card when the page has one; price protection to a published date or a time-boxed right of first negotiation as the alternatives.
  9. request_reply - what to say to a sponsor who asks for a discount on a published price, a few sentences: the price holds, and what can move instead (the payment schedule, an equal-value swap, bundling at card prices). No percentage off.
  10. note - one sentence, at most 30 words, for the organizers: what to settle before the first call.
{
  "task": "policy",
  "summary": "one sentence",
  "negotiable": [ "the payment schedule", "an equal-value benefit swap", "bundling add-ons at card prices" ],
  "never": [ "published tier prices", "...", "...", "..." ],
  "authority": { "approver": "a name or a role", "floor_pct": 5, "rule": "one sentence" },
  "log": [ "sponsor", "tier", "what moved", "why", "who approved" ],
  "discount": { "pick": "earlybird", "text": "one sentence" },
  "inkind": "one or two sentences",
  "renewal": "a few sentences",
  "request_reply": "a few sentences",
  "note": "one sentence"
}

The page requires its discount pick, the approver and the floor from the input, the three negotiable and four fixed items, the five log columns, in-kind at displaced cost, the post-event report in the renewal answer, and no percentage off in either answer.

Worked examples - every lane, every sample

These are the page's three free samples (fictional events, people and companies; the comparable cards quote published rate cards with their years). Each input is exactly what the page sends; each reply is the saved reply the sample replays, shipped as the validating model wrote it; the last line is the page's own check. Every sample has both lanes.

Riverbend Ops Conf (300 people, tiers entered) - card

Target $48,000; Published ladder, 4 tiers at 5.3:1; full sellout $53,000; signing deadline 2027-01-14; 4 of 5 settled.

Input:

{
 "task": "card",
 "event": "Event: Riverbend Ops Conf; community-run; a single one-off event; free to attend no; attendees 300; ticket price $250; event date 2027-04-15\nBudget: total expenses $60,000; sponsorship share 80%\nInventory: booth or table slots the floor supports 8; stage minutes the program policy allows to be sold 6\nContext: signing window a quarter or more; selling capacity some organizer hours for selling; mandate a compounding multi-edition card; local hiring holding; last edition the top tier sold out\nDisclosure wanted: Published ladder; early-bird yes at $7,000; returning-sponsor discount planned yes; bundle percentage none\nNegotiation policy entered: approver Dana Okavell (treasurer); discount floor 10% of card price; deviation log kept\nComparable cards: Baltimore devopsdays 2025: Digital Only $1,500 / Gold $3,500 / Platinum $6,000 / Chattanooga devopsdays 2024: Bronze $1,000 / Silver $3,000 / Gold $5,000 / A neighbouring meetup conference: Gold $5,000 / Silver $2,000",
 "ladder": "Tiers, top first (as entered; passes valued at the ticket price):\nPlatinum | $8,000 | 2 slots | 4 passes ($1,000) | net after passes $7,000 | floor: table | stage: 2 min | Largest logo, dedicated slide, a table, a 2-minute pitch | method: value-based\nGold | $4,000 | 4 slots | 2 passes ($500) | net after passes $3,500 | floor: table | stage: none | Logo on slides and web, a table | method: market-comp\nSilver | $1,500 | 8 slots | 1 pass ($250) | net after passes $1,250 | floor: none | stage: none | Logo on web and slides, no table | method: market-comp\nCommunity | $0 | 3 slots | 1 pass ($250) | floor: none | stage: none | Logo and one ticket - non-commercial local groups only | method: persona (free)\nAdd-ons:\nLunch | $5,000 | capped at 1 | gives visibility | on the card\nLanyards | $2,500 | capped at 1 | gives visibility | on the card\nCoffee | $1,500 | capped at 1 | gives visibility | on the card\nHappy hour | contact us | capped at 1 | gives visibility | on the card\nExpo table | $1,000 | capped at 2 | gives booth | off the card until priced above $4,000\nIn-kind offers:\nCumulo Cloud | cloud credits | retail $10,000 | displaced $0 | cash $0 | worth $0 | earns no paid tier | asks for Gold\nBrightline AV | stage AV and streaming | retail $6,000 | displaced $3,500 | cash $0 | worth $3,500 | earns Silver | asks for Gold\nNorthwind Labs | lunch catering | retail $9,000 | displaced $6,000 | cash $2,000 | worth $8,000 | earns Platinum | asks for Platinum",
 "facts": "Target (cost-recovery): expenses $60,000 x share 80% = $48,000\nPrice-setting method: Cost-recovery fixes the total, market comps band each tier by ratio, value-based allocates within the band (value-based promoted for the top tier: it sold out last edition)\nArchitecture: published - Published ladder; community-run pole; 4 tiers on the card (3 paid); recommended 3; a persona tier is present\nTop:floor ratio: 5.3:1 (Platinum $8,000 to Silver $1,500; published community range 2:1 to 7.5:1, modal 4-5:1; best-tier rule 2-3x)\nProjection at full sellout: tiers $44,000 + add-ons on the card $9,000 = $53,000 against $48,000 (110% coverage); 27 passes given away, worth $6,750\nBooth price floor: Gold at $4,000; staff-free visibility tiers: Silver\nDiscount mechanic: earlybird - Early-bird deadline on the top tier; Platinum at $7,000 until 2027-01-14\nCalendar: signing deadline 2027-01-14 (about a quarter, 91 days, before 2027-04-15); early-bird 2027-01-14; add-on purchase cutoff 2027-01-14\nReadiness gate (4 of 5): The revenue target with its share math settled; A 2-4 tier ladder with a staff-free visibility tier settled; No add-on re-selling a gated benefit below its tier MISSING; Every in-kind deal valued at displaced cost settled; The written policy: approver, floor and log settled\nSignals to record: Target coverage by the signing deadline (2027-01-14): the share of the $48,000 target signed (self-set); Tier fill pattern: which tier sells out first, and whether the middle moves (self-set); Booth versus visibility sell-through, read against the hiring market (self-set)\nFindings (16):\n[check] addon_dependent (target): The tiers alone raise $44,000 of the $48,000 target; the card reaches it only if the add-ons sell ($9,000).\n[check] passes_cut (target): Counting the 27 passes the card gives away ($6,750 of tickets not sold), it nets $46,250 - under the target.\n[info] hiring (ladder): Hiring is on hold in the local market - recruiting sponsors leave first, so booth-led tiers sell slower while visibility still sells. Read booth against visibility sell-through.\n[info] prior_top (ladder): The top tier sold out last edition - a sellout is the repricing signal: price it higher, never lower.\n[info] addon_beats_mid (add-ons): Lunch ($5,000) out-prices the Gold tier - published practice, fine: it sells a named surface, not a gated benefit.\n[fix] addon_cannibal (add-ons): Expo table re-sells floor presence at $1,000, below Gold ($4,000), the cheapest tier that includes it - price it above that or don't sell it.\n[check] inkind_zero (in-kind): Cumulo Cloud (cloud credits) displaces no budget line the event would pay in cash, so it is worth nothing on the card - the $10,000 retail figure is the donor's number, not the event's.\n[check] inkind_tier (in-kind): Cumulo Cloud (cloud credits) asks for Gold ($4,000) but is worth $0 at displaced cost - it earns no paid tier.\n[info] inkind_retail (in-kind): Brightline AV (stage AV and streaming) is valued at the $3,500 budget line it displaces, not the $6,000 retail figure - retail framing inflates the tier by the donor's margin.\n[check] inkind_tier (in-kind): Brightline AV (stage AV and streaming) asks for Gold ($4,000) but is worth $3,500 at displaced cost - it earns Silver.\n[info] inkind_retail (in-kind): Northwind Labs (lunch catering) is valued at the $6,000 budget line it displaces, not the $9,000 retail figure - retail framing inflates the tier by the donor's margin.\n[fix] inkind_top_cash (in-kind): Northwind Labs (lunch catering) asks for the top tier with only $2,000 in cash - keep the top tier cash-majority: venue deposits, insurance and catering minimums are paid in cash.\n[fix] returning (discounts): A returning-sponsor discount is deleted - it compounds into a permanently discounted anchor sponsor. The renewal lever is the post-event report and the relationship (price protection to a published date, open to every sponsor, is the compatible alternative).\n[info] earlybird (discounts): One dated price on the top tier only, until 2027-01-14 - a date on the card, not a percentage-off banner, and never extended.\n[check] comp_undated (comps): 1 comp line carries no year - an undated price is a rumor.\n[check] gate (readiness): Readiness: 4 of 5 settled before the first sponsor call - missing: No add-on re-selling a gated benefit below its tier."
}

Reply:

{
 "task": "card",
 "summary": "The card targets $48,000 by cost-recovery on a published four-tier ladder; settle the Expo table add-on, which re-sells Gold's floor presence below Gold's price, before this goes to the organizers.",
 "target": {
  "amount": 48000,
  "math": "Expenses of $60,000 multiplied by an 80% sponsorship share set the target at $48,000, and the card raises $53,000 if every tier and add-on sells.",
  "method": "cost-recovery"
 },
 "architecture": {
  "pick": "published",
  "tiers": 4,
  "why": "The event is community-run, a single one-off event, with some organizer hours available to sell it."
 },
 "ladder": [
  {
   "name": "Platinum",
   "price": 8000,
   "slots": 2,
   "benefits": "4 passes ($1,000), a table, 2 minutes of stage time, the largest logo and a dedicated slide",
   "method": "value-based",
   "note": "the anchor tier, priced after last edition's sellout"
  },
  {
   "name": "Gold",
   "price": 4000,
   "slots": 4,
   "benefits": "2 passes ($500), a table, logo on slides and web",
   "method": "market-comp",
   "note": "the best-value tier, the step most sponsors should take"
  },
  {
   "name": "Silver",
   "price": 1500,
   "slots": 8,
   "benefits": "1 pass ($250), no table, logo on web and slides",
   "method": "market-comp",
   "note": "the entry rung, a staff-free visibility tier"
  },
  {
   "name": "Community",
   "price": 0,
   "slots": 3,
   "benefits": "1 pass ($250), no table, logo and one ticket, for non-commercial local groups only",
   "method": "persona (free)",
   "note": "a persona tier, not a funnel"
  }
 ],
 "ratio": {
  "value": "5.3:1",
  "note": "At 5.3:1, Platinum to Silver sits inside the published 2:1 to 7.5:1 community range, just above the 4-5:1 mode."
 },
 "addons": [
  {
   "name": "Lunch",
   "price": 5000,
   "note": "capped at one; a named surface, not a gated benefit, so it may out-price Gold"
  },
  {
   "name": "Lanyards",
   "price": 2500,
   "note": "capped at one; visibility item"
  },
  {
   "name": "Coffee",
   "price": 1500,
   "note": "capped at one; visibility item"
  },
  {
   "name": "Happy hour",
   "price": null,
   "note": "contact us; capped at one; visibility item"
  }
 ],
 "inkind": [
  "Cumulo Cloud's cloud credits displace no cash budget line, so they are worth $0 at displaced cost and earn no paid tier.",
  "Brightline AV's stage AV and streaming are worth $3,500 at displaced cost and earn Silver.",
  "Northwind Labs' lunch catering is worth $8,000 at displaced cost ($6,000 displaced plus $2,000 cash) and earns Platinum."
 ],
 "calendar": {
  "signing": "2027-01-14",
  "early_bird": "2027-01-14",
  "note": "Add-on purchases close by the same 2027-01-14 cutoff, and no series renewal date applies to this one-off event."
 },
 "signals": [
  "Target coverage of the $48,000 target by 2027-01-14: a shortfall raises next edition's floor tier; full coverage holds prices.",
  "Tier fill pattern, including whether Gold moves: any tier that sells out is priced higher next edition, never lower.",
  "Booth versus visibility sell-through against the local hiring slowdown: if booth tiers lag, shift inventory toward staff-free visibility next edition."
 ],
 "caveats": [
  "[fix] Expo table re-sells floor presence at $1,000, below Gold's $4,000 - price it above $4,000 or don't sell it.",
  "[fix] Northwind Labs asks for Platinum with only $2,000 in cash - keep the top tier cash-majority or move it to a lower tier.",
  "[fix] A returning-sponsor discount is planned, but the rule deletes it - use the post-event report and price protection instead.",
  "[check] The tiers alone raise $44,000 of the $48,000 target; the card reaches it only if the add-ons sell ($9,000)."
 ]
}

The page's check: kept - nothing to flag

Riverbend Ops Conf (300 people, tiers entered) - policy

Target $48,000; Published ladder, 4 tiers at 5.3:1; full sellout $53,000; signing deadline 2027-01-14; 4 of 5 settled.

Input:

{
 "task": "policy",
 "event": "Event: Riverbend Ops Conf; community-run; a single one-off event; free to attend no; attendees 300; ticket price $250; event date 2027-04-15\nBudget: total expenses $60,000; sponsorship share 80%\nInventory: booth or table slots the floor supports 8; stage minutes the program policy allows to be sold 6\nContext: signing window a quarter or more; selling capacity some organizer hours for selling; mandate a compounding multi-edition card; local hiring holding; last edition the top tier sold out\nDisclosure wanted: Published ladder; early-bird yes at $7,000; returning-sponsor discount planned yes; bundle percentage none\nNegotiation policy entered: approver Dana Okavell (treasurer); discount floor 10% of card price; deviation log kept\nComparable cards: Baltimore devopsdays 2025: Digital Only $1,500 / Gold $3,500 / Platinum $6,000 / Chattanooga devopsdays 2024: Bronze $1,000 / Silver $3,000 / Gold $5,000 / A neighbouring meetup conference: Gold $5,000 / Silver $2,000",
 "ladder": "Tiers, top first (as entered; passes valued at the ticket price):\nPlatinum | $8,000 | 2 slots | 4 passes ($1,000) | net after passes $7,000 | floor: table | stage: 2 min | Largest logo, dedicated slide, a table, a 2-minute pitch | method: value-based\nGold | $4,000 | 4 slots | 2 passes ($500) | net after passes $3,500 | floor: table | stage: none | Logo on slides and web, a table | method: market-comp\nSilver | $1,500 | 8 slots | 1 pass ($250) | net after passes $1,250 | floor: none | stage: none | Logo on web and slides, no table | method: market-comp\nCommunity | $0 | 3 slots | 1 pass ($250) | floor: none | stage: none | Logo and one ticket - non-commercial local groups only | method: persona (free)\nAdd-ons:\nLunch | $5,000 | capped at 1 | gives visibility | on the card\nLanyards | $2,500 | capped at 1 | gives visibility | on the card\nCoffee | $1,500 | capped at 1 | gives visibility | on the card\nHappy hour | contact us | capped at 1 | gives visibility | on the card\nExpo table | $1,000 | capped at 2 | gives booth | off the card until priced above $4,000\nIn-kind offers:\nCumulo Cloud | cloud credits | retail $10,000 | displaced $0 | cash $0 | worth $0 | earns no paid tier | asks for Gold\nBrightline AV | stage AV and streaming | retail $6,000 | displaced $3,500 | cash $0 | worth $3,500 | earns Silver | asks for Gold\nNorthwind Labs | lunch catering | retail $9,000 | displaced $6,000 | cash $2,000 | worth $8,000 | earns Platinum | asks for Platinum",
 "facts": "Target (cost-recovery): expenses $60,000 x share 80% = $48,000\nPrice-setting method: Cost-recovery fixes the total, market comps band each tier by ratio, value-based allocates within the band (value-based promoted for the top tier: it sold out last edition)\nArchitecture: published - Published ladder; community-run pole; 4 tiers on the card (3 paid); recommended 3; a persona tier is present\nTop:floor ratio: 5.3:1 (Platinum $8,000 to Silver $1,500; published community range 2:1 to 7.5:1, modal 4-5:1; best-tier rule 2-3x)\nProjection at full sellout: tiers $44,000 + add-ons on the card $9,000 = $53,000 against $48,000 (110% coverage); 27 passes given away, worth $6,750\nBooth price floor: Gold at $4,000; staff-free visibility tiers: Silver\nDiscount mechanic: earlybird - Early-bird deadline on the top tier; Platinum at $7,000 until 2027-01-14\nCalendar: signing deadline 2027-01-14 (about a quarter, 91 days, before 2027-04-15); early-bird 2027-01-14; add-on purchase cutoff 2027-01-14\nReadiness gate (4 of 5): The revenue target with its share math settled; A 2-4 tier ladder with a staff-free visibility tier settled; No add-on re-selling a gated benefit below its tier MISSING; Every in-kind deal valued at displaced cost settled; The written policy: approver, floor and log settled\nSignals to record: Target coverage by the signing deadline (2027-01-14): the share of the $48,000 target signed (self-set); Tier fill pattern: which tier sells out first, and whether the middle moves (self-set); Booth versus visibility sell-through, read against the hiring market (self-set)\nFindings (16):\n[check] addon_dependent (target): The tiers alone raise $44,000 of the $48,000 target; the card reaches it only if the add-ons sell ($9,000).\n[check] passes_cut (target): Counting the 27 passes the card gives away ($6,750 of tickets not sold), it nets $46,250 - under the target.\n[info] hiring (ladder): Hiring is on hold in the local market - recruiting sponsors leave first, so booth-led tiers sell slower while visibility still sells. Read booth against visibility sell-through.\n[info] prior_top (ladder): The top tier sold out last edition - a sellout is the repricing signal: price it higher, never lower.\n[info] addon_beats_mid (add-ons): Lunch ($5,000) out-prices the Gold tier - published practice, fine: it sells a named surface, not a gated benefit.\n[fix] addon_cannibal (add-ons): Expo table re-sells floor presence at $1,000, below Gold ($4,000), the cheapest tier that includes it - price it above that or don't sell it.\n[check] inkind_zero (in-kind): Cumulo Cloud (cloud credits) displaces no budget line the event would pay in cash, so it is worth nothing on the card - the $10,000 retail figure is the donor's number, not the event's.\n[check] inkind_tier (in-kind): Cumulo Cloud (cloud credits) asks for Gold ($4,000) but is worth $0 at displaced cost - it earns no paid tier.\n[info] inkind_retail (in-kind): Brightline AV (stage AV and streaming) is valued at the $3,500 budget line it displaces, not the $6,000 retail figure - retail framing inflates the tier by the donor's margin.\n[check] inkind_tier (in-kind): Brightline AV (stage AV and streaming) asks for Gold ($4,000) but is worth $3,500 at displaced cost - it earns Silver.\n[info] inkind_retail (in-kind): Northwind Labs (lunch catering) is valued at the $6,000 budget line it displaces, not the $9,000 retail figure - retail framing inflates the tier by the donor's margin.\n[fix] inkind_top_cash (in-kind): Northwind Labs (lunch catering) asks for the top tier with only $2,000 in cash - keep the top tier cash-majority: venue deposits, insurance and catering minimums are paid in cash.\n[fix] returning (discounts): A returning-sponsor discount is deleted - it compounds into a permanently discounted anchor sponsor. The renewal lever is the post-event report and the relationship (price protection to a published date, open to every sponsor, is the compatible alternative).\n[info] earlybird (discounts): One dated price on the top tier only, until 2027-01-14 - a date on the card, not a percentage-off banner, and never extended.\n[check] comp_undated (comps): 1 comp line carries no year - an undated price is a rumor.\n[check] gate (readiness): Readiness: 4 of 5 settled before the first sponsor call - missing: No add-on re-selling a gated benefit below its tier."
}

Reply:

{
 "task": "policy",
 "summary": "Published tier prices hold for every sponsor; Dana Okavell, the treasurer, decides on any deviation; settle the readiness gate's missing item - the Expo table pricing conflict - before the first call.",
 "negotiable": [
  "the payment schedule",
  "equal-value benefit swaps",
  "bundling add-ons into a tier at the sum of their card prices"
 ],
 "never": [
  "published tier prices",
  "anything the program policy forbids selling (talk slots, judging results, program influence)",
  "exclusivity not already on the card",
  "the early-bird deadline on Platinum (2027-01-14)"
 ],
 "authority": {
  "approver": "Dana Okavell (treasurer)",
  "floor_pct": 10,
  "rule": "No one closes a deal alone - Dana Okavell or a second approver signs off, and a benefit is added before any number is cut."
 },
 "log": [
  "sponsor",
  "tier",
  "what moved",
  "why",
  "who approved"
 ],
 "discount": {
  "pick": "earlybird",
  "text": "Platinum is $7,000 until 2027-01-14, a dated price on the top tier only, never extended."
 },
 "inkind": "Each in-kind offer is valued at the budget line it displaces, not the donor's retail figure, and buys tier placement at that value like cash. The top tier stays cash-majority - Northwind Labs' $2,000 cash against its $8,000 value needs more cash or a lower tier - and the value, delivery, and what happens if delivery fails go into the sponsor agreement.",
 "renewal": "The published price holds - there is no returning-sponsor discount. What we can offer instead: the post-event report, this card's early-bird price of $7,000 on Platinum until 2027-01-14 open to every sponsor, price protection to a published future date, or a time-boxed right of first negotiation on next edition's card - never a price cut below what is published.",
 "request_reply": "The published price holds. What can move instead: the payment schedule, an equal-value benefit swap, or bundling add-ons into your tier at the sum of their card prices - no percentage off the tier price.",
 "note": "Before the first call, settle the Expo table add-on's conflict with Gold's floor presence - the one readiness-gate item not yet closed."
}

The page's check: kept - nothing to flag

Harbor JS Monthly (a free monthly series) - card

Target $9,600; Published ladder, 2 tiers at 2:1; full sellout $10,800; signing deadline 2026-10-02; 4 of 5 settled.

Input:

{
 "task": "card",
 "event": "Event: Harbor JS Monthly; community-run; a recurring series sold as one annual sponsorship; free to attend yes; attendees 80; ticket price not given; event date 2027-01-01 (the series year starts)\nBudget: total expenses $9,600; sponsorship share 100%\nInventory: booth or table slots the floor supports 0; stage minutes the program policy allows to be sold 0\nContext: signing window a quarter or more; selling capacity a volunteer team with no sales capacity; mandate a compounding multi-edition card; local hiring recruiting; last edition no fill record\nDisclosure wanted: Quote-gated; early-bird no; returning-sponsor discount planned no; bundle percentage 10%\nNegotiation policy entered: approver not named; discount floor not set; deviation log not kept\nComparable cards: none entered",
 "ladder": "Tiers, top first (proposed by the page; passes valued at the ticket price):\nAnnual Partner | $1,600 | 3 slots | 0 passes | floor: none | stage: none | Logo on site, slides and web, named at the opening for the year, across every edition | method: cost-recovery\nAnnual Supporter | $800 | 6 slots | 0 passes | floor: none | stage: none | Logo on slides and web, no table - staff-free for the year, across every edition | method: cost-recovery\nAdd-ons:\nLivestream and recordings | $1,200 | capped at 1 | gives visibility | on the card\nIn-kind offers:\nTidewater Brewing | bar tab for one evening | retail $600 | displaced $450 | cash $0 | worth $450 | earns no paid tier | asks for Annual Supporter",
 "facts": "Target (cost-recovery): expenses $9,600 x share 100% = $9,600\nPrice-setting method: Cost-recovery only - a free event's sequence collapses: the total is a fundraising target divided across tiers\nArchitecture: published - Published ladder; community-run pole; 2 tiers on the card (2 paid); recommended 2\nTop:floor ratio: 2:1 (Annual Partner $1,600 to Annual Supporter $800; published community range 2:1 to 7.5:1, modal 4-5:1; best-tier rule 2-3x)\nProjection at full sellout: tiers $9,600 + add-ons on the card $1,200 = $10,800 against $9,600 (113% coverage); 0 passes given away\nBooth price floor: no tier includes floor presence; staff-free visibility tiers: Annual Partner, Annual Supporter\nDiscount mechanic: none - No discount mechanic\nCalendar: signing deadline 2026-10-02 (about a quarter, 91 days, before 2027-01-01); early-bird none; add-on purchase cutoff 2026-10-02; annual renewal date 2026-10-02\nReadiness gate (4 of 5): The revenue target with its share math settled; A 2-4 tier ladder with a staff-free visibility tier settled; No add-on re-selling a gated benefit below its tier settled; Every in-kind deal valued at displaced cost settled; The written policy: approver, floor and log MISSING\nSignals to record: Target coverage by the signing deadline (2026-10-02): the share of the $9,600 target signed (self-set); Tier fill pattern: which tier sells out first, and whether the middle moves (self-set); Annual renewal rate against the renewal date, one cohort per series year\nFindings (9):\n[fix] quote_deleted (architecture): Quote-gated pricing is deleted for an event sold by a volunteer team with no sales capacity: \"contact us for pricing\" stalls every deal behind organizer availability and reads as having something to hide. The card is a published ladder.\n[info] proposed (ladder): No tiers entered - the page proposes a 2-tier ladder: the total from cost-recovery, a 2:1 top:floor ratio transposed from the published community range, grossed up for the passes it gives away. Band every price against your own dated comps.\n[info] inkind_retail (in-kind): Tidewater Brewing (bar tab for one evening) is valued at the $450 budget line it displaces, not the $600 retail figure - retail framing inflates the tier by the donor's margin.\n[check] inkind_tier (in-kind): Tidewater Brewing (bar tab for one evening) asks for Annual Supporter ($800) but is worth $450 at displaced cost - it earns no paid tier; for a series, take it as a single-surface deal for one edition, priced at the bill it displaces.\n[fix] bundle_series (discounts): An annual series sponsorship is priced from the yearly total and sold for the organizer time it saves - never with a bundle percentage attached.\n[fix] policy (policy): Discounting without a written policy - missing who approves a deviation, the discount floor, the deviation log. Until it exists, negotiated case-by-case is deleted: the first exception becomes the market price.\n[info] series (calendar): A recurring series sells annual tiers: one sale per sponsor per year, priced from the yearly total; renewal date 2026-10-02, a fiscal quarter before the series year starts.\n[info] no_comps (comps): No comparable cards entered - band each tier against same-community, same-region, same-scale cards, with their dates, and transpose ratios, never dollars.\n[check] gate (readiness): Readiness: 4 of 5 settled before the first sponsor call - missing: The written policy: approver, floor and log."
}

Reply:

{
 "task": "card",
 "summary": "The card targets $9,600 on a published 2-tier annual ladder for Harbor JS Monthly; settle the written policy - approver, floor and log - before the first sponsor call.",
 "target": {
  "amount": 9600,
  "math": "Expenses of $9,600 times a 100% sponsorship share set the $9,600 target, and the card raises $10,800 across both tiers and the add-on at full sellout.",
  "method": "cost-recovery"
 },
 "architecture": {
  "pick": "published",
  "tiers": 2,
  "why": "The event is community-run, a free-to-attend recurring series, sold by a volunteer team with no sales capacity."
 },
 "ladder": [
  {
   "name": "Annual Partner",
   "price": 1600,
   "slots": 3,
   "benefits": "No passes, no floor presence, no stage time; logo on site, slides and web, named at the opening for the year, across every edition.",
   "method": "cost-recovery",
   "note": "The anchor tier."
  },
  {
   "name": "Annual Supporter",
   "price": 800,
   "slots": 6,
   "benefits": "No passes, no floor presence, no stage time; logo on slides and web only, no table - staff-free for the year, across every edition.",
   "method": "cost-recovery",
   "note": "The entry rung, staff-free."
  }
 ],
 "ratio": {
  "value": "2:1",
  "note": "2:1 sits at the low end of the published community range of 2:1 to 7.5:1, below the modal 4-5:1."
 },
 "addons": [
  {
   "name": "Livestream and recordings",
   "price": 1200,
   "note": "Capped at one; gives visibility; stays on the card."
  }
 ],
 "inkind": [
  "Tidewater Brewing's bar tab for one evening is worth $450 at displaced cost, not the $600 retail figure, and earns no paid tier - not the $800 Annual Supporter tier it was asked for; take it as a one-edition, single-surface deal priced at the $450 it displaces."
 ],
 "calendar": {
  "signing": "2026-10-02",
  "early_bird": "",
  "note": "Add-on purchases close 2026-10-02; the annual renewal date for the next series year is also 2026-10-02."
 },
 "signals": [
  "Target coverage against the $9,600 target by the 2026-10-02 signing deadline - short coverage would raise next edition's cost-recovery price.",
  "Which tier sells out first, Annual Partner or Annual Supporter - a tier selling out fast would get a higher price next edition.",
  "The annual renewal rate against the 2026-10-02 renewal date, one cohort per series year - a weak renewal rate would hold or lower next edition's price."
 ],
 "caveats": [
  "Quote-gated pricing is deleted for a volunteer team with no sales capacity - the card is published, not quote-gated.",
  "An annual series is priced from the yearly total and sold for the organizer time it saves, never with a bundle percentage - the entered 10% bundle percentage does not apply.",
  "Discounting case-by-case is deleted until the written policy - approver, discount floor and deviation log - exists.",
  "Tidewater Brewing's bar tab is worth $450 at displaced cost, not the $800 Annual Supporter price it was offered against, so it earns no paid tier."
 ]
}

The page's check: kept - nothing to flag

Harbor JS Monthly (a free monthly series) - policy

Target $9,600; Published ladder, 2 tiers at 2:1; full sellout $10,800; signing deadline 2026-10-02; 4 of 5 settled.

Input:

{
 "task": "policy",
 "event": "Event: Harbor JS Monthly; community-run; a recurring series sold as one annual sponsorship; free to attend yes; attendees 80; ticket price not given; event date 2027-01-01 (the series year starts)\nBudget: total expenses $9,600; sponsorship share 100%\nInventory: booth or table slots the floor supports 0; stage minutes the program policy allows to be sold 0\nContext: signing window a quarter or more; selling capacity a volunteer team with no sales capacity; mandate a compounding multi-edition card; local hiring recruiting; last edition no fill record\nDisclosure wanted: Quote-gated; early-bird no; returning-sponsor discount planned no; bundle percentage 10%\nNegotiation policy entered: approver not named; discount floor not set; deviation log not kept\nComparable cards: none entered",
 "ladder": "Tiers, top first (proposed by the page; passes valued at the ticket price):\nAnnual Partner | $1,600 | 3 slots | 0 passes | floor: none | stage: none | Logo on site, slides and web, named at the opening for the year, across every edition | method: cost-recovery\nAnnual Supporter | $800 | 6 slots | 0 passes | floor: none | stage: none | Logo on slides and web, no table - staff-free for the year, across every edition | method: cost-recovery\nAdd-ons:\nLivestream and recordings | $1,200 | capped at 1 | gives visibility | on the card\nIn-kind offers:\nTidewater Brewing | bar tab for one evening | retail $600 | displaced $450 | cash $0 | worth $450 | earns no paid tier | asks for Annual Supporter",
 "facts": "Target (cost-recovery): expenses $9,600 x share 100% = $9,600\nPrice-setting method: Cost-recovery only - a free event's sequence collapses: the total is a fundraising target divided across tiers\nArchitecture: published - Published ladder; community-run pole; 2 tiers on the card (2 paid); recommended 2\nTop:floor ratio: 2:1 (Annual Partner $1,600 to Annual Supporter $800; published community range 2:1 to 7.5:1, modal 4-5:1; best-tier rule 2-3x)\nProjection at full sellout: tiers $9,600 + add-ons on the card $1,200 = $10,800 against $9,600 (113% coverage); 0 passes given away\nBooth price floor: no tier includes floor presence; staff-free visibility tiers: Annual Partner, Annual Supporter\nDiscount mechanic: none - No discount mechanic\nCalendar: signing deadline 2026-10-02 (about a quarter, 91 days, before 2027-01-01); early-bird none; add-on purchase cutoff 2026-10-02; annual renewal date 2026-10-02\nReadiness gate (4 of 5): The revenue target with its share math settled; A 2-4 tier ladder with a staff-free visibility tier settled; No add-on re-selling a gated benefit below its tier settled; Every in-kind deal valued at displaced cost settled; The written policy: approver, floor and log MISSING\nSignals to record: Target coverage by the signing deadline (2026-10-02): the share of the $9,600 target signed (self-set); Tier fill pattern: which tier sells out first, and whether the middle moves (self-set); Annual renewal rate against the renewal date, one cohort per series year\nFindings (9):\n[fix] quote_deleted (architecture): Quote-gated pricing is deleted for an event sold by a volunteer team with no sales capacity: \"contact us for pricing\" stalls every deal behind organizer availability and reads as having something to hide. The card is a published ladder.\n[info] proposed (ladder): No tiers entered - the page proposes a 2-tier ladder: the total from cost-recovery, a 2:1 top:floor ratio transposed from the published community range, grossed up for the passes it gives away. Band every price against your own dated comps.\n[info] inkind_retail (in-kind): Tidewater Brewing (bar tab for one evening) is valued at the $450 budget line it displaces, not the $600 retail figure - retail framing inflates the tier by the donor's margin.\n[check] inkind_tier (in-kind): Tidewater Brewing (bar tab for one evening) asks for Annual Supporter ($800) but is worth $450 at displaced cost - it earns no paid tier; for a series, take it as a single-surface deal for one edition, priced at the bill it displaces.\n[fix] bundle_series (discounts): An annual series sponsorship is priced from the yearly total and sold for the organizer time it saves - never with a bundle percentage attached.\n[fix] policy (policy): Discounting without a written policy - missing who approves a deviation, the discount floor, the deviation log. Until it exists, negotiated case-by-case is deleted: the first exception becomes the market price.\n[info] series (calendar): A recurring series sells annual tiers: one sale per sponsor per year, priced from the yearly total; renewal date 2026-10-02, a fiscal quarter before the series year starts.\n[info] no_comps (comps): No comparable cards entered - band each tier against same-community, same-region, same-scale cards, with their dates, and transpose ratios, never dollars.\n[check] gate (readiness): Readiness: 4 of 5 settled before the first sponsor call - missing: The written policy: approver, floor and log."
}

Reply:

{
 "task": "policy",
 "summary": "Published tier prices hold; the event organizer approves any deviation under a two-person rule; settle the approver, discount floor and deviation log before the first sponsor call.",
 "negotiable": [
  "the payment schedule",
  "equal-value benefit swaps",
  "bundling add-ons into a tier at the sum of their card prices"
 ],
 "never": [
  "published tier prices",
  "anything the program policy forbids selling - talk slots, judging results, program influence",
  "exclusivity not already on the card",
  "the signing deadline printed on the card, 2026-10-02"
 ],
 "authority": {
  "approver": "the event organizer",
  "floor_pct": null,
  "rule": "No one closes a deal alone - a named approver or a two-person rule signs off, and a benefit is added before any number is cut."
 },
 "log": [
  "sponsor",
  "tier",
  "what moved",
  "why",
  "who approved"
 ],
 "discount": {
  "pick": "none",
  "text": "No discount mechanic is set: there is no early-bird, and the entered 10% bundle percentage does not apply, since an annual series is priced from the yearly total, not bundled."
 },
 "inkind": "Tidewater Brewing's bar tab for one evening is worth $450 at displaced cost, not the $600 retail figure, and buys placement at that $450 value rather than the $800 Annual Supporter tier it was asked for. The top tier, Annual Partner, stays cash-majority, and the $450 value, the delivery, and what happens if delivery fails go into the agreement.",
 "renewal": "The published price holds for a returning sponsor asking for loyalty pricing; share the post-event report so the value is visible. This card has no early-bird date, so offer price protection to a published date open to every sponsor, or a time-boxed right of first negotiation for the next series year - never a cut below the published price.",
 "request_reply": "The published price holds. What can move instead is the payment schedule, an equal-value benefit swap, or bundling add-ons into the tier at the sum of their card prices - not a percentage off the price.",
 "note": "Before the first sponsor call, settle the named approver, the discount floor and the deviation log - the one gap left in the readiness gate."
}

The page's check: kept - nothing to flag

Cloudline Summit (foundation scale, 3 events) - card

Target $540,000; Published ladder, 4 tiers at 12:1; full sellout $755,000; signing deadline 2027-06-21; 3 of 5 settled.

Input:

{
 "task": "card",
 "event": "Event: Cloudline Summit; vendor/foundation-run; one edition of a multi-event portfolio; free to attend no; attendees 2000; ticket price $900; event date 2027-09-20\nBudget: total expenses $900,000; sponsorship share 60%\nInventory: booth or table slots the floor supports 32; stage minutes the program policy allows to be sold 30\nContext: signing window a quarter or more; selling capacity people with sales experience; mandate a compounding multi-edition card; local hiring cutting; last edition no fill record\nDisclosure wanted: Published ladder; early-bird yes at $55,000; returning-sponsor discount planned no; bundle percentage 5%\nNegotiation policy entered: approver Sponsorship committee (two-person rule); discount floor 5% of card price; deviation log kept\nComparable cards: PyCon US 2026: Visionary $160,000 down to Associate $1,750; passes valued at $899 / DjangoCon US 2024: Diamond $20,000 / Platinum $10,000 / Gold $6,000 / Silver $3,500 / Bronze $2,300",
 "ladder": "Tiers, top first (as entered; passes valued at the ticket price):\nDiamond | $60,000 | 3 slots | 20 passes ($18,000) | net after passes $42,000 | floor: 20x20 booth | stage: 10 min | A 10-minute slot after the keynote, the largest booth | method: market-comp\nPlatinum | $30,000 | 6 slots | 10 passes ($9,000) | net after passes $21,000 | floor: 10x20 booth | stage: none | Booth, logo on every stage screen | method: market-comp\nGold | $15,000 | 10 slots | 6 passes ($5,400) | net after passes $9,600 | floor: 10x10 booth | stage: none | Booth, logo on the web and signage | method: market-comp\nStartup | $5,000 | 12 slots | 2 passes ($1,800) | net after passes $3,200 | floor: shared kiosk | stage: none | A kiosk in startup alley, logo on the web | method: market-comp\nAdd-ons:\nAI track lead | $90,000 | capped at 1 | gives exclusivity | on the card\nSecurity track co-sponsor | $40,000 | capped at 2 | gives exclusivity | on the card\nWi-Fi | $15,000 | capped at 1 | gives visibility | on the card\nLanyards | contact us | capped at 1 | gives visibility | on the card\nExpo kiosk | $3,000 | capped at 4 | gives booth | off the card until priced above $5,000\nIn-kind offers: none entered",
 "facts": "Target (cost-recovery): expenses $900,000 x share 60% = $540,000\nPrice-setting method: Cost-recovery fixes the total, market comps band each tier by ratio, value-based allocates within the band\nArchitecture: published - Published ladder; vendor/foundation-run pole; 4 tiers on the card (4 paid); recommended 3; a persona tier is present\nTop:floor ratio: 12:1 (Diamond $60,000 to Startup $5,000; published community range 2:1 to 7.5:1, modal 4-5:1; best-tier rule 2-3x)\nProjection at full sellout: tiers $570,000 + add-ons on the card $185,000 = $755,000 against $540,000 (140% coverage); 204 passes given away, worth $183,600\nBooth price floor: Startup at $5,000; staff-free visibility tiers: none\nDiscount mechanic: bundling - Multi-event bundling at 5%; plus the early-bird: Diamond at $55,000 until 2027-05-31\nCalendar: signing deadline 2027-06-21 (about a quarter, 91 days, before 2027-09-20); early-bird 2027-05-31; add-on purchase cutoff 2027-06-21\nReadiness gate (3 of 5): The revenue target with its share math settled; A 2-4 tier ladder with a staff-free visibility tier MISSING; No add-on re-selling a gated benefit below its tier MISSING; Every in-kind deal valued at displaced cost settled; The written policy: approver, floor and log settled\nSignals to record: Target coverage by the signing deadline (2027-06-21): the share of the $540,000 target signed (self-set); Tier fill pattern: which tier sells out first, and whether the middle moves (self-set); Booth versus visibility sell-through, read against the hiring market (self-set)\nFindings (8):\n[info] ratio_wide (ladder): Top:floor is 12:1 - wider than the community range, which foundation scale can carry once booth size and pass count step up continuously with price. Carry the scale-appropriate range, never the community one.\n[fix] no_staff_free (ladder): Every paid tier includes a booth or stage time - keep at least one staff-free visibility tier (logo, digital and on-screen placement, no booth): a booth costs the sponsor staff days, the first line a tightening budget cuts.\n[info] hiring (ladder): Hiring is being cut in the local market - recruiting sponsors leave first, so booth-led tiers sell slower while visibility still sells. Read booth against visibility sell-through.\n[check] excl_low (add-ons): Security track co-sponsor at $40,000 does not price above the top general tier ($60,000) - published exclusivity sits multiples above it, never add-on money.\n[fix] addon_cannibal (add-ons): Expo kiosk re-sells floor presence at $3,000, below Startup ($5,000), the cheapest tier that includes it - price it above that or don't sell it.\n[info] bundle (discounts): Bundling at 5% - keep it a small fixed published step, never negotiated (the one published instance is 3/5/8% for one, two, three-plus events, at foundation scale).\n[info] earlybird (discounts): One dated price on the top tier only, until 2027-05-31 - a date on the card, not a percentage-off banner, and never extended.\n[check] gate (readiness): Readiness: 3 of 5 settled before the first sponsor call - missing: A 2-4 tier ladder with a staff-free visibility tier, No add-on re-selling a gated benefit below its tier."
}

Reply:

{
 "task": "card",
 "summary": "The card targets $540,000 on a published four-tier ladder; settle the missing staff-free visibility tier and the underpriced Expo kiosk add-on before the first sponsor call.",
 "target": {
  "amount": 540000,
  "math": "Total expenses of $900,000 times the 60% sponsorship share set the $540,000 target, and the published ladder plus add-ons would raise $755,000 at full sellout.",
  "method": "cost-recovery"
 },
 "architecture": {
  "pick": "published",
  "tiers": 4,
  "why": "The event is vendor/foundation-run, one edition of a multi-event portfolio, and sold by a team with sales experience."
 },
 "ladder": [
  {
   "name": "Diamond",
   "price": 60000,
   "slots": 3,
   "benefits": "20 passes; 20x20 booth, the largest on the floor; a 10-minute slot after the keynote.",
   "method": "market-comp",
   "note": "This is the anchor tier, the top of the ladder."
  },
  {
   "name": "Platinum",
   "price": 30000,
   "slots": 6,
   "benefits": "10 passes; 10x20 booth; no stage time; logo on every stage screen.",
   "method": "market-comp",
   "note": "This is the visibly best value tier, the step up from Gold."
  },
  {
   "name": "Gold",
   "price": 15000,
   "slots": 10,
   "benefits": "6 passes; 10x10 booth; no stage time; logo on the web and signage.",
   "method": "market-comp",
   "note": "This is the step between Platinum and Startup."
  },
  {
   "name": "Startup",
   "price": 5000,
   "slots": 12,
   "benefits": "2 passes; shared kiosk in startup alley; no stage time; logo on the web.",
   "method": "market-comp",
   "note": "This is the persona tier for startups, doing entry and social proof."
  }
 ],
 "ratio": {
  "value": "12:1",
  "note": "At 12:1 this sits well above the published community range of 2:1 to 7.5:1, modal 4-5:1, which foundation scale can carry as long as booth size and pass count step up continuously with price."
 },
 "addons": [
  {
   "name": "AI track lead",
   "price": 90000,
   "note": "Capped at 1; gives exclusivity."
  },
  {
   "name": "Security track co-sponsor",
   "price": 40000,
   "note": "Capped at 2; gives exclusivity."
  },
  {
   "name": "Wi-Fi",
   "price": 15000,
   "note": "Capped at 1; gives visibility."
  },
  {
   "name": "Lanyards",
   "price": null,
   "note": "Contact us; capped at 1; gives visibility."
  }
 ],
 "inkind": [],
 "calendar": {
  "signing": "2027-06-21",
  "early_bird": "2027-05-31",
  "note": "Add-on purchases close on 2027-06-21, the same date as signing, and the card sets no renewal date since this is not priced as a recurring annual series."
 },
 "signals": [
  "Track the share of the $540,000 target signed by 2027-06-21; a shortfall would mean repricing the ladder lower or widening the floor tier next edition.",
  "Record which tier sells out first and whether Platinum, the middle tier, moves; a Platinum stall next edition would call for repricing it closer to Gold.",
  "Compare booth sell-through against visibility sell-through against the local hiring cuts; weak booth sales next edition would call for adding and pricing a staff-free visibility tier."
 ],
 "caveats": [
  "No staff-free visibility tier exists; every paid tier requires a booth or stage time, the first line a tightening budget cuts.",
  "Expo kiosk at $3,000 re-sells floor presence below Startup at $5,000, the cheapest tier that includes it; price it above $5,000 or do not sell it.",
  "Security track co-sponsor at $40,000 does not price above the top tier at $60,000; published exclusivity should sit multiples above it.",
  "Readiness is 3 of 5 settled before the first sponsor call; missing are a staff-free visibility tier and fixing the add-on that cannibalizes Startup."
 ]
}

The page's check: kept - nothing to flag

Cloudline Summit (foundation scale, 3 events) - policy

Target $540,000; Published ladder, 4 tiers at 12:1; full sellout $755,000; signing deadline 2027-06-21; 3 of 5 settled.

Input:

{
 "task": "policy",
 "event": "Event: Cloudline Summit; vendor/foundation-run; one edition of a multi-event portfolio; free to attend no; attendees 2000; ticket price $900; event date 2027-09-20\nBudget: total expenses $900,000; sponsorship share 60%\nInventory: booth or table slots the floor supports 32; stage minutes the program policy allows to be sold 30\nContext: signing window a quarter or more; selling capacity people with sales experience; mandate a compounding multi-edition card; local hiring cutting; last edition no fill record\nDisclosure wanted: Published ladder; early-bird yes at $55,000; returning-sponsor discount planned no; bundle percentage 5%\nNegotiation policy entered: approver Sponsorship committee (two-person rule); discount floor 5% of card price; deviation log kept\nComparable cards: PyCon US 2026: Visionary $160,000 down to Associate $1,750; passes valued at $899 / DjangoCon US 2024: Diamond $20,000 / Platinum $10,000 / Gold $6,000 / Silver $3,500 / Bronze $2,300",
 "ladder": "Tiers, top first (as entered; passes valued at the ticket price):\nDiamond | $60,000 | 3 slots | 20 passes ($18,000) | net after passes $42,000 | floor: 20x20 booth | stage: 10 min | A 10-minute slot after the keynote, the largest booth | method: market-comp\nPlatinum | $30,000 | 6 slots | 10 passes ($9,000) | net after passes $21,000 | floor: 10x20 booth | stage: none | Booth, logo on every stage screen | method: market-comp\nGold | $15,000 | 10 slots | 6 passes ($5,400) | net after passes $9,600 | floor: 10x10 booth | stage: none | Booth, logo on the web and signage | method: market-comp\nStartup | $5,000 | 12 slots | 2 passes ($1,800) | net after passes $3,200 | floor: shared kiosk | stage: none | A kiosk in startup alley, logo on the web | method: market-comp\nAdd-ons:\nAI track lead | $90,000 | capped at 1 | gives exclusivity | on the card\nSecurity track co-sponsor | $40,000 | capped at 2 | gives exclusivity | on the card\nWi-Fi | $15,000 | capped at 1 | gives visibility | on the card\nLanyards | contact us | capped at 1 | gives visibility | on the card\nExpo kiosk | $3,000 | capped at 4 | gives booth | off the card until priced above $5,000\nIn-kind offers: none entered",
 "facts": "Target (cost-recovery): expenses $900,000 x share 60% = $540,000\nPrice-setting method: Cost-recovery fixes the total, market comps band each tier by ratio, value-based allocates within the band\nArchitecture: published - Published ladder; vendor/foundation-run pole; 4 tiers on the card (4 paid); recommended 3; a persona tier is present\nTop:floor ratio: 12:1 (Diamond $60,000 to Startup $5,000; published community range 2:1 to 7.5:1, modal 4-5:1; best-tier rule 2-3x)\nProjection at full sellout: tiers $570,000 + add-ons on the card $185,000 = $755,000 against $540,000 (140% coverage); 204 passes given away, worth $183,600\nBooth price floor: Startup at $5,000; staff-free visibility tiers: none\nDiscount mechanic: bundling - Multi-event bundling at 5%; plus the early-bird: Diamond at $55,000 until 2027-05-31\nCalendar: signing deadline 2027-06-21 (about a quarter, 91 days, before 2027-09-20); early-bird 2027-05-31; add-on purchase cutoff 2027-06-21\nReadiness gate (3 of 5): The revenue target with its share math settled; A 2-4 tier ladder with a staff-free visibility tier MISSING; No add-on re-selling a gated benefit below its tier MISSING; Every in-kind deal valued at displaced cost settled; The written policy: approver, floor and log settled\nSignals to record: Target coverage by the signing deadline (2027-06-21): the share of the $540,000 target signed (self-set); Tier fill pattern: which tier sells out first, and whether the middle moves (self-set); Booth versus visibility sell-through, read against the hiring market (self-set)\nFindings (8):\n[info] ratio_wide (ladder): Top:floor is 12:1 - wider than the community range, which foundation scale can carry once booth size and pass count step up continuously with price. Carry the scale-appropriate range, never the community one.\n[fix] no_staff_free (ladder): Every paid tier includes a booth or stage time - keep at least one staff-free visibility tier (logo, digital and on-screen placement, no booth): a booth costs the sponsor staff days, the first line a tightening budget cuts.\n[info] hiring (ladder): Hiring is being cut in the local market - recruiting sponsors leave first, so booth-led tiers sell slower while visibility still sells. Read booth against visibility sell-through.\n[check] excl_low (add-ons): Security track co-sponsor at $40,000 does not price above the top general tier ($60,000) - published exclusivity sits multiples above it, never add-on money.\n[fix] addon_cannibal (add-ons): Expo kiosk re-sells floor presence at $3,000, below Startup ($5,000), the cheapest tier that includes it - price it above that or don't sell it.\n[info] bundle (discounts): Bundling at 5% - keep it a small fixed published step, never negotiated (the one published instance is 3/5/8% for one, two, three-plus events, at foundation scale).\n[info] earlybird (discounts): One dated price on the top tier only, until 2027-05-31 - a date on the card, not a percentage-off banner, and never extended.\n[check] gate (readiness): Readiness: 3 of 5 settled before the first sponsor call - missing: A 2-4 tier ladder with a staff-free visibility tier, No add-on re-selling a gated benefit below its tier."
}

Reply:

{
 "task": "policy",
 "summary": "Published tier prices hold; the two-person sponsorship committee decides on any deviation; settle the missing staff-free visibility tier and the underpriced Expo kiosk add-on before the first call.",
 "negotiable": [
  "the payment schedule",
  "equal-value benefit swaps",
  "bundling add-ons into a tier at the sum of their card prices"
 ],
 "never": [
  "published tier prices",
  "anything the program policy forbids selling, such as talk slots, judging results or program influence",
  "exclusivity not already on the card",
  "the early-bird deadline"
 ],
 "authority": {
  "approver": "Sponsorship committee (two-person rule)",
  "floor_pct": 5,
  "rule": "No one closes a deal alone; the committee adds a benefit before it cuts a number."
 },
 "log": [
  "sponsor",
  "tier",
  "what moved",
  "why",
  "who approved"
 ],
 "discount": {
  "pick": "bundling",
  "text": "Multi-event bundling discounts sponsors 5% across the portfolio, and Diamond carries an early-bird price of $55,000 open until 2027-05-31."
 },
 "inkind": "In-kind offers are valued at the budget line they displace, never at a donor's retail figure, and buy tier placement at that value; none have been entered yet, the top tier stays cash-majority, and the value, delivery and what happens if delivery fails are written into each agreement.",
 "renewal": "The published price holds, and we will send the post-event report to support next year's conversation. There is no returning-sponsor discount, but Diamond's own early-bird price of $55,000 is open to every sponsor until 2027-05-31, and we can offer price protection to a published date or a time-boxed right of first negotiation instead of a cut below the published price.",
 "request_reply": "The published price holds, and we do not offer a percentage off. What can move instead is the payment schedule, an equal-value benefit swap, or bundling add-ons into the tier at the sum of their card prices.",
 "note": "Before the first sponsor call, settle the missing staff-free visibility tier and reprice or drop the Expo kiosk add-on so it does not undercut Startup."
}

The page's check: kept - nothing to flag

The rate card CSV for the first sample

kind,name,price,slots,passes,pass_value,net,floor,stage_minutes,benefits,status
tier,Platinum,8000,2,4,1000,7000,table,2,"Largest logo, dedicated slide, a table, a 2-minute pitch",entered
tier,Gold,4000,4,2,500,3500,table,0,"Logo on slides and web, a table",entered
tier,Silver,1500,8,1,250,1250,none,0,"Logo on web and slides, no table",entered
tier,Community,0,3,1,250,-250,none,0,Logo and one ticket - non-commercial local groups only,entered
add-on,Lunch,5000,1,,,,,,visibility,on the card
add-on,Lanyards,2500,1,,,,,,visibility,on the card
add-on,Coffee,1500,1,,,,,,visibility,on the card
add-on,Happy hour,contact us,1,,,,,,visibility,on the card
add-on,Expo table,1000,2,,,,booth,,booth,off until priced above 4000

Build the input yourself

Load the engine in node (global.window = global; require("./sponsorkit.js"); require("./sponsorreply.js")), then:

const K = SponsorKit, R = SponsorReply;
const f = K.form({ name: "My Conf", expenses: "60000", share: "80", ticket: "250", booths: "8", eventDate: "2027-04-15",
  approver: "Treasurer", floorPct: "5", log: "yes", tiers: fs.readFileSync("tiers.csv", "utf8") });
// f.target, f.arch, f.tiers (top first: name, price, slots, passes, passValue, net, booth, stage), f.methods, f.ratioText
// f.ceiling, f.passCost, f.boothFloor, f.staffFree, f.addons (status: card, off, deleted), f.inkind (value, earns)
// f.discount, f.signing, f.ebDate, f.gate, f.findings
K.cardCSV(f)                                   // kind, name, price, slots, passes, pass_value, net, floor, ...
const b = K.buildInput(f, "card");             // or "policy"
const wire = K.toWire(b.input);                // POST this to /estimate and /run
// then: const reply = R.normalize(R.parseReply(job.output.output), "card");
// R.check(reply, b)                           // {status: kept or flagged, notes}

Get a token for the steps below from /tokens.html.

Step 1 — a tiny client helper

One function that sends JSON and unwraps the response. Paste a personal token from /tokens.html, or leave it empty and mint a guest token in step 2.

BASE="https://api.skillsafe.ai/v1/app-api"
TOKEN="paste-your-token-here"   # from https://sponsor-ladder.skillsafe.ai/tokens.html
api() { # api METHOD PATH [JSON-BODY]
  curl -s -X "$1" "$BASE$2" -H "Content-Type: application/json" \
    ${TOKEN:+-H "Authorization: Bearer $TOKEN"} ${3:+--data "$3"}
}

Step 2 — a token

A guest token is enough for /me and /estimate. A run is metered, so it needs a personal token: sign in on /tokens.html and copy it from there.

# a guest token (enough for /me and /estimate); a run needs your personal token from /tokens.html
TOKEN=$(curl -s -X POST "$BASE/guest" -H "Content-Type: application/json" -d '{"slug":"sponsor-ladder"}' | jq -r '.data.token')

Step 3 — GET /me

Who the token is (subject_type: user or guest) and the credit balance.

api GET /me | jq '.data | {subject_type, credits}' 

Step 4 — POST /estimate

Free. The body is the run input itself, the bare object (never wrapped in {"input": ...}). hold_credits is a reservation, not the price; min_credits is what the balance must cover; model_alias reads gpt-terra.

# input.json: the run input object - {"task": "card", "event": "Event: ...; community-run; a single one-off event ...", "ladder": "Tiers, top first (as entered ...): ...", "facts": "Target (cost-recovery): ..."}
# - see the input table
api POST /estimate "$(cat input.json)" | jq '.data | {hold_credits, min_credits, model, model_alias, markup_bps, warnings}' 

Step 5 — POST /run, then poll the job

Send an Idempotency-Key built from the lane and the input: a retry with the same key never bills twice. The page uses sponsor-ladder:<task>:<inputHash>:a<attempt> - the lane is part of the key - and its one automatic reformat retry is a new attempt number, named in the page as one extra run. A card carries summary, target, architecture, ladder, ratio, addons, calendar, signals and caveats; a policy carries summary, negotiable, never, authority, discount, renewal, request_reply and note. The code below prints the headline parts of either (list items are plain strings).

KEY="sponsor-ladder:card:$(shasum -a 256 input.json | cut -c1-16):a1"
JOB=$(curl -s -X POST "$BASE/run" -H "Content-Type: application/json" -H "Authorization: Bearer $TOKEN" \
  -H "Idempotency-Key: $KEY" --data @input.json | jq -r '.data.job_id')
while :; do
  J=$(api GET "/jobs/$JOB"); S=$(echo "$J" | jq -r '.data.status')
  case "$S" in succeeded|failed|cancelled) break;; esac; sleep 2
done
echo "$J" | jq -r '.data.output.output' > reply.json   # one JSON object, the reply contract
echo "$J" | jq '.data | {charged_credits, truncated}'
jq -r '.summary // .format, .note // .request_reply, ((.signals // .caveats)[] | "\(.signal // .caveat): \(.text // .text)")' reply.json
jq -r '.renewal // .note // empty' reply.json   # the renewal answer (policy)

Step 6 — POST /run-stream

The same run as Server-Sent Events, with the same input.json. Browsers receive progress ticks rather than text deltas; the final done event carries the reply.

# Server-Sent Events: tick/delta events while the job runs, then a final event with the job
curl -N -s -X POST "$BASE/run-stream" -H "Content-Type: application/json" -H "Authorization: Bearer $TOKEN" \
  -H "Idempotency-Key: sponsor-ladder:card:$(shasum -a 256 input.json | cut -c1-16):a1" --data @input.json