Give the top of the ladder a real prize: Team Grants + Network Intelligence

Marty's read was right — the upper tiers felt flat, and the reason is that
they scaled QUANTITY, not KIND. L1->L2 was a category change (you couldn't
write, now you can). Everything above L4 was a multiplier on a capability
already owned at L2: sound more like you, measure it, more pages, five at
once. Meanwhile the price doubles each rung — Corona costs ~17x Culmen. No
batch button is worth 17x a voice profile.

The fix is a change of axis. Every tool from L1 to L8 was a "me" tool, but
past the first levels this business isn't about you: get two, help your two,
teach them to teach. So the top now operates on the ORGANISATION.

L7 Team Grants — hand Suite capacity down to anyone in your own org.
Deliberately from a separate pool that the level grants, NOT out of the
leader's own allowance: making someone choose between equipping their team
and using their own tools means nobody ever grants anything. Recipients are
verified in-org against the contract. Grants can lift a tool the recipient's
level hasn't unlocked — that's the point, not a loophole. Being helped is
made visible to the recipient, since half the value is knowing an upline
backed you.

L8 Network Intelligence — every team ad pooled and anonymised: which angles,
headlines, creative and formats actually earn their impressions. No member
alone has enough traffic to learn anything from display; together they do.
It can't be bought, and it compounds monthly with no further work. Holds two
lines: nothing identifies anyone, and nothing under 2,000 impressions gets a
reported rate — under-evidenced rows are counted and disclosed rather than
silently dropped. The written readout is hand-authored, not generated:
these are conclusions about money, and a model paraphrasing a table is
exactly where an invented number slips in.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
martbost
2026-08-28 12:26:39 -05:00
parent 1d52597c1c
commit 6a7c5161ff
11 changed files with 760 additions and 11 deletions
+9 -3
View File
@@ -11,6 +11,7 @@
const fs = require('fs');
const path = require('path');
const crypto = require('crypto');
const suiteGrants = require('./suite-grants');
let DATA_DIR = null;
function init(opts) { DATA_DIR = opts.dataDir; }
@@ -51,10 +52,15 @@ function usage(memberId) {
}
function status(memberId, level) {
const limit = allowanceFor(level);
const base = allowanceFor(level);
// Impressions an upline granted this month sit on top of the level allowance.
let granted = 0;
try { granted = suiteGrants.receivedBy(memberId, 'traffic') || 0; } catch (e) {}
const limit = base + granted;
const u = usage(memberId);
return {
limit: limit, used: u.used, remaining: Math.max(0, limit - u.used),
limit: limit, base: base, granted: granted,
used: u.used, remaining: Math.max(0, limit - u.used),
campaigns: u.campaigns, resets: monthKey(), sizes: sizes(), creatives: CREATIVES
};
}
@@ -132,8 +138,8 @@ async function launch(opts) {
if (CREATIVES[size].indexOf(file) === -1) throw new Error('Pick one of the team banner designs.');
}
const impressions = Math.max(100, Math.min(allowanceFor(level), Number(opts.impressions) || 0));
const st = status(opts.id, level);
const impressions = Math.max(100, Math.min(st.limit, Number(opts.impressions) || 0));
if (impressions > st.remaining) {
throw new Error('That is more than your remaining ' + st.remaining.toLocaleString() + ' impressions this month.');
}