6a7c5161ff
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>
67 lines
3.2 KiB
JavaScript
67 lines
3.2 KiB
JavaScript
// One source of truth for "what does this level unlock in the Circle Suite",
|
|
// shared by the Telegram feeds, the X/Twitter payout posts, and anywhere else
|
|
// that congratulates an upgrade.
|
|
//
|
|
// Two honesty rules baked in:
|
|
// 1. `live:false` tiers are NEVER announced. We do not congratulate someone
|
|
// for unlocking software that does not exist yet.
|
|
// 2. The whole feature is gated on config.suiteToolsInAlerts, so nothing goes
|
|
// public while the Suite is still in team beta. Flip it on at launch.
|
|
'use strict';
|
|
|
|
const LEVEL_TOOLS = {
|
|
1: { name: 'Scintilla', live: true, short: 'the Launch Kit and the Traffic Desk — promo center, printable handouts with your QR, the Circle Method course, your dashboard, the AI coach, and banners or text ads on our own ad network' },
|
|
2: { name: 'Ascensus', live: true, short: 'the Copy Engine and Page Builder — an AI copywriter for your posts and DMs, plus your own hosted invitation page' },
|
|
3: { name: 'Fabrica', live: true, short: 'the Email Engine and Video Maker — full sequences in the team voice, and the promo videos rendered with your own end card' },
|
|
4: { name: 'Culmen', live: true, short: 'your Voice Profile — the Copy Engine and Email Engine start writing the way you actually talk' },
|
|
5: { name: 'Apex', live: true, short: 'the Split Tester, and your ad allowance jumps to 50,000 impressions a month' },
|
|
6: { name: 'Fastigium', live: true, short: 'the Funnel Factory — a separate hosted landing page for every audience you talk to' },
|
|
7: { name: 'Vertex', live: true, short: 'Leader Ops and Team Grants — your whole organisation triaged live from the contract, plus the ability to hand Suite capacity down to your own people' },
|
|
8: { name: 'Corona', live: true, short: 'the Founder Desk and Network Intelligence — a whole week of promotion in one pass, API access, and what is actually working across every ad the team runs' }
|
|
};
|
|
|
|
// Very short form for character-limited surfaces (X/Twitter).
|
|
const TERSE = {
|
|
1: 'the Launch Kit + Traffic Desk',
|
|
2: 'the Copy Engine + Page Builder',
|
|
3: 'the Email Engine + Video Maker',
|
|
4: 'your own Voice Profile',
|
|
5: 'the Split Tester + 50k impressions',
|
|
6: 'the Funnel Factory',
|
|
7: 'Leader Ops + Team Grants',
|
|
8: 'the Founder Desk + Network Intelligence'
|
|
};
|
|
|
|
function levelNumber(level, levelName) {
|
|
const n = Number(level);
|
|
if (n >= 1 && n <= 8) return n;
|
|
if (levelName) {
|
|
for (const k of Object.keys(LEVEL_TOOLS)) {
|
|
if (LEVEL_TOOLS[k].name.toLowerCase() === String(levelName).toLowerCase()) return Number(k);
|
|
}
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
function enabled(cfg) { return !!(cfg && cfg.suiteToolsInAlerts); }
|
|
|
|
// Full sentence fragment, or '' when we shouldn't say anything.
|
|
function unlockText(level, levelName, cfg) {
|
|
if (!enabled(cfg)) return '';
|
|
const n = levelNumber(level, levelName);
|
|
const t = LEVEL_TOOLS[n];
|
|
if (!t || !t.live) return '';
|
|
return t.short;
|
|
}
|
|
|
|
// Terse form for tweets, or '' when we shouldn't say anything.
|
|
function unlockTerse(level, levelName, cfg) {
|
|
if (!enabled(cfg)) return '';
|
|
const n = levelNumber(level, levelName);
|
|
const t = LEVEL_TOOLS[n];
|
|
if (!t || !t.live) return '';
|
|
return TERSE[n] || '';
|
|
}
|
|
|
|
module.exports = { LEVEL_TOOLS, unlockText, unlockTerse, levelNumber, enabled };
|