
Pricing Strategist
Decide what to charge, strategy first and number last (guidance-only). Six steps: understand the service, research what the field actually charges live, pick the game (skim | neutral | penetrate), pick the value metric, set the mechanics, set the number. Emits a strategy memo plus a real draft tier table where every figure carries its evidence class, then hands off to Paddle/Stripe skills to implement. No callable API — the agent's own LLM runs the pipeline in SKILL.md, gated by five local scripts that print PASS/FAIL with numbers. Backed by 39 evidence-bundled registry items, 11 learnings and 10 procedures. Decides the price; does not build the billing.
Most pricing advice starts at the number and works backwards from whatever the founder already had in mind. This starts at the service and refuses to reach a number until the game has been named.
The thing that made it worth building is what the field looks like up close. Two widely-installed public pricing skills give opposite instructions on the most-cited figure in pricing — one says aim for the customer to get 10x the value, the other says a 10x ratio means you are massively underpriced — and neither cites anything at all. A founder who installs both has no way to adjudicate. Across 48 audited pricing and GTM skills, not one ships an enforcement script, an evidence registry, or a learnings set. Confident numbers with no provenance is the category norm.
So the first thing this ships is a way to be wrong in public. Five scripts print PASS or FAIL with numbers you cannot fudge: one classifies every numeric claim and demands the source its class requires, one hard-fails cost-plus pricing and checks the price against a sourced band, one lints a pricing page for undisclosed overage and headline anchors that mislead, one checks that every cohort in a migration has a lawful next state, and one keeps the coordination declarations honest.
The second thing is an inversion. The strongest defensibility check available is not a value ratio, which rests on your buyer's estimate of savings they have not realised yet. It is the share of prospects who refuse on price — roughly 20 to 25 percent, corroborated by two independent authorities who disagree about nearly everything else. You can see that number in your own pipeline. If every deal closes on the first call, you are too cheap, and that feels like success while it is happening.
Six steps: understand the service, research what the field actually charges at decision time, pick skim or neutral or penetrate, pick what you count, set the caps and the grandfathering, set the number. It commits to a real tier table with real figures, each row carrying its confidence and its basis — because ranges-only is useless to whoever has to put something on a page, and presenting a draft as settled is dishonest.
Where it stops is deliberate. It decides the price; it does not build the billing. The payments ecosystem already ships good first-party skills for catalog setup, checkout and webhooks — and every one of them implements a price somebody else chose. That layer above them was empty. This fills it, then hands over named tiers, integer-cent amounts, billing periods and per-tier entitlements.
Features5
A script classifies each numeric claim as a market benchmark (needs a public URL) or a brand fact (needs doc, version and date), and fails class confusion in either direction. It runs on my own output, not just on what you bring it.
You are correctly priced when roughly 20-25% of prospects refuse on price. That is a count of things that happened in your own pipeline — not an estimate of savings your buyer has not realised yet.
Skim, neutral or penetrate gets named and argued before any figure appears. A number without a declared game is a guess wearing a table, and the skill refuses to produce one.
Asserted by every practitioner source, attributed by none, absent from the willingness-to-pay literature. Two widely-installed pricing skills use it to mean opposite things. It ships labelled, never as a threshold.
Every cohort needs a lawful next state. Lifetime deals fail by construction. A capability removed at the same price is caught as a negative-delta migration. It never predicts churn, because the evidence does not support predicting it.
Videos1 video
DemoPricing Strategist · Demo video
Demo · SpiderMediaArticles about Pricing Strategist2 articles
I thought my pricing memo was sourced. 36 claims, 36 unsourced.
opvs.ai3 Aug 2026I thought my pricing memo was sourced. 36 claims, 36 unsourced.
I built a script that checks whether every number in a pricing memo cites its source, then ran it on my own first draft. 36 numeric claims, 36 unsourced, FAIL. Getting to zero took four rounds and found four defects in the skill itself.
Videos1 video
DemoPricing Strategist · Demo video
Demo · SpiderMediaArticles about Pricing Strategist2 articles
Showing all 2
SKILL.mdthe file your agent reads
SKILL.md loads when you open this tab.
What's new3 releases · newest first · from the package's CHANGELOG
v0.1.22026-11-09Latest
Marketplace listing update: added the launch explainer film (`media.demo_video_url`). No code, schema, copy or guidance changes; hero and screenshots unchanged from 0.1.1.
v0.1.1
Marketing media only. No behaviour, no guidance and no script changed. - **Card visuals shipped.** A hero plus three panels rendered at propagation: the provenance report failing, the six-step pipeline with its stop branch, and a cohort migration with no lawful destination. The same hero is reused as the blog cover and the listing hero rather than rendered three times. - **Registry count corrected.** The manifest description said 37 evidence-bundled registry items; the actual figure is 39. The count moved during Stage 6 when a live competitor re-capture added `teardown-firecrawl` and `teardown-apollo-partial`, and the README and changelog were updated then while `package.yaml` was not.
v0.1.0
First release.
A pricing **strategist**, not a number-validator. Six steps — understand the service, research what the
field actually charges, pick the game, pick the value metric, set the mechanics, set the number — and it
refuses to reach the number until the game has been named.
### What made it worth building
Two widely-installed public pricing skills give opposite instructions on the most-cited figure in
pricing. One says aim for the customer to get 10× the value they pay; the other says a 10× ratio means
you are massively underpriced. Neither cites anything. A prior-art audit of 48 pricing and GTM agent
skills found zero shipping an enforcement script, an evidence registry, or a learnings set.
So the first thing this ships is a way to be wrong in public.
### Added
- **Five enforcement scripts**, each printing PASS/FAIL with numbers and exiting non-zero on failure
- `verify-claim-provenance.mjs` — classifies every numeric claim as BENCHMARK (needs a public URL) or
BRAND-FACT (needs doc + version + date) and fails class confusion in either direction
- `verify-value-ratio.mjs` — hard-fails cost-plus and price-below-cost; primary check is the observed
price-based loss rate against 20–25%, with the 2–4× value ratio as the first-price fallback
- `lint-pricing-page.mjs` — four scored rules on a structured page capture, two INFO-only
- `verify-tier-migration.mjs` — every cohort needs a lawful next state; structure only, never predicts
churn
- `verify-coordination.mjs` — the four coordination cross-references must agree across SKILL.md,
package.yaml and instructions/AGENTS.md
- **10 references**, one per pipeline step plus migration, agent/usage pricing, and disclosure
- **7 recipes**, flagship `full-pricing-strategy` walking all six steps; the other six are doors into it
- **39 registry items** — benchmarks, seven pricing-page teardowns, six model blueprints, four migration
postmortems, and the strategy canon. Every BENCHMARK item carries a resolvable public URL; the build
refuses to emit one that does not
- **11 learnings**, each with non-empty references
- `instructions/AGENTS.md` for non-Claude runtimes and `instructions/DEPLOYMENT.md` for the output
contract
### Decisions worth recording
- **The primary defensibility check is the observed loss rate, not the value ratio.** A loss rate is a
count of things that happened in your own pipeline; a value ratio rests on the buyer's estimate of
savings they have not realised yet. This inverts how both upstream sources frame the work.
- **The 10× rule ships labelled FOLKLORE rather than dropped.** It is the number users arrive with, and
refusing to discuss it is unhelpful. A tagged mention passes the provenance gate; an untagged one fails.
- **Grandfathering is the default, and the 2026 legacy-sunset wave ships alongside it.** The industry is
currently doing the opposite of the rule, at scale. Both registry items are cross-linked and neither is
shippable without the other — a rule that cannot acknowledge its own counter-example is dogma.
- **No fifth script for disclosure compliance.** The FTC negative-option rule was vacated in July 2025
and rulemaking reopened in March 2026. A script would freeze a struck-down legal position into
executable code. That surface ships as a dated reference file that routes to counsel.
- **Migrations are checked structurally and never predicted.** In the captured evidence a 2.1× increase
lost half a customer base while a 4× increase was reported as the best decision the founder ever made.
Magnitude does not predict outcome; whether the existing base was carried plausibly does.
### Rules the research killed
Two of six planned lint rules did not survive contact with five real pricing pages, and both were
demoted to INFO:
- **Tier count > 3 on a self-serve page.** Two widely-admired pages ship four tiers each. The modelling
error was counting contact-sales Enterprise as a tier.
- **Enterprise price hidden.** All five captured pages hide it. Flagging universal practice as a defect
is noise.
A lint that fires on good pages is worse than a missing lint.
### What the test run changed
The skill was run end-to-end against a real, unresolved case, and the process found three defects in
itself. All three are fixed here rather than deferred.
- **The provenance gate failed the skill's own recommendation at 36 unsourced claims.** Two of those
failures were script defects: fenced code blocks were being scanned as assertions, so verbatim script
output — which the skill *requires* pasting — read as the author's own claims; and there was no
PROPOSAL class, which made the skill's own mandated tier-table format structurally un-passable. Both
fixed. The remaining failures were real memo defects and the memo was fixed. `36 → 11 → 7 → 0`.
- **`lint-pricing-page.mjs` had a false negative on credit-model pages.** `model: "credit"` was not in
the consumption-model set, so R1 and R2 reported N/A and a rate-less dimension went unchecked. Fixed:
a declared dimension is metered whatever the model label says.
- **`references/entry-motion-design.md` asserted two unsourced ACV thresholds as though they were
benchmarks.** They are reasoned house defaults derived from the sourced sales-motion arithmetic.
Flagged in place — the exact defect this skill exists to catch, found inside the skill.
### One declared gap closed
**Lint rule R3 now has a positive exemplar.** The research had recorded it as unsafe to enforce — five
captured pages and not one stated a per-tier annual discount in figures. A live re-capture found a page
publishing its annual saving *in dollars per tier*, which is better than a percentage because the buyer
can reconstruct the discount themselves. Three of its four tiers land at ~16.6% — "two months free" —
converging with the sourced benchmark's finding that 16.7% is the most common single framing.
### Known limits
- **The EU price-indication surface is unresearched** — declared as a gap and routed to counsel rather
than filled.
- **Staleness windows are reasoned, not sourced** — 90 days for a competitor price, 180 for own
economics. House defaults from observed drift, and the weakest numbers in the package. The two
entry-motion ACV thresholds are house defaults on the same footing, and now say so.
- **One competitor could not be captured.** A JS-rendered pricing page returned nothing on a plain
fetch. Recorded as unverified and excluded from all output; the eight-month-old internal figure for it
exists and is deliberately unused.
- **Registry target was 55 items; 39 shipped.** The shortfall is in pricing-page teardowns (7 of a
planned 10, up from 5 after the live re-capture). Every item that shipped carries real provenance;
none was padded.
### Composition
`@di-atomic/icp-discovery` (>=1.1.2) is a soft peer — step ① composes it for segments, and falls back to
its own interview when absent. State lives on AgentBoard, AgentDocs and AgentMemory. `opvs-protocol` is
deliberately **not** declared: the skill is terminal at v0.1.0 and declaring an unused surface would
contradict its own coordination cross-references.Showing all 3







