Documentation

How Cerqular works, in enough detail to check us

Cerqular reads a business through its payment data, finds revenue in it the operator cannot see, and drafts the work to go and get it. This page describes the mechanism, the grade attached to every figure, and the things it will not do. Where a figure, a permission or a price appears below, it is read live from the running system at page load rather than typed here, because a product that changes daily will outrun any documentation written by hand.

What it does, and what it does not

It reads the transactions in a connected payment account, computes where additional revenue exists in that specific book, and drafts the work to pursue it. Every draft waits for you.

We read. We do not write, and we do not keep anything.

What it can do with a connected payment account

  • Read your charges, so we can compute the figure from your real sales
  • Read your customers, products and subscriptions, so the figure names real things
  • Read your existing checkout links, so a tracked reference can be added to a link you already made

What it cannot do

  • Move, refund, capture or touch any money
  • Create, change or delete anything on your Stripe account
  • See your bank details, your balance or your payouts
  • Keep your data: on the anonymous audit nothing is stored, and our access is revoked as soon as the figure is computed

Both lists are rendered exactly as /api/public/stripe-scope returns them. This page does not restate them in its own words, so it cannot drift from them. One clause above refers to an audit you can run without an account. That connection flow is built but not released, so it is not something you can use today. It is left in place because this page mirrors the contract exactly rather than editing it.

Three limits worth naming plainly

  • It does not post for you. Cerqular holds no publish permission on any social platform, so every post is written for you and published by you.
  • It does not send without approval. Drafts sit in a queue. Nothing leaves until you approve that specific piece.
  • It does not write to your payment account. The scope contract above shows an empty write list, and that is the whole list.

How connecting works

Two ways to connect a Stripe account exist today. Step counts below include the steps that happen inside Stripe, because those are the ones that actually cost you time.

PathSteps hereSteps in StripeWhat you end up granting
Stripe App install11 consent screenThe permission set shown in the scope contract above.
Restricted key2 (paste, submit)6 or so: Developers, API keys, create restricted key, grant read access, create, reveal and copyExactly the read access you tick when creating the key. You control it and can revoke it in Stripe at any time.

Both paths live in your dashboard once you are signed in. Go to your dashboard to start either one.

What happens after you connect, and what a first week honestly looks like

The computation below runs against your own transactions as soon as the connection is live. What appears first depends entirely on what your book contains: mechanics whose floor your data clears produce a figure, and mechanics whose floor it does not produce a stated refusal instead.

  • Straight away. The mechanics run and you see which ones your book supports. Several declining is normal and is not a loading failure.
  • The first drafts. Work is drafted for the mechanics that fired, and waits in the approval queue for you.
  • Nothing has appeared. The most common cause is a book too thin for any floor. The refusal catalogue below tells you exactly which floor was missed and by how much, so you can see what would change it rather than guess.

We do not promise a day on which money arrives, because we cannot observe one. What we can tell you on day one is which mechanics your own data supports, and that is on your dashboard the moment you connect.

The grading system

Every figure carries a grade describing how much of it was observed and how much was assumed. This is the part of the product worth understanding, because it is what lets you decide how much weight to put on any given number.

Measured we observed the transaction

Money that moved, in a system we are connected to and read directly. A charge in your Stripe account is Measured. So is a zero when every mechanic in a family declined to fire: the engine returns a measured zero with the reason attached, because “nothing here” is itself an observation.

Estimated real pool, real values, stated rate

A count taken from your real rows, multiplied by real transaction values, multiplied by a conversion rate that has not been observed. The pool and the values are yours; the rate is an assumption and is labeled as one wherever it appears, with the reasoning attached so you can move it.

Modeled the weakest input governs

A projection whose inputs include something neither observed nor counted, such as a figure you told us about your own business. A calculation carries the grade of its weakest input, never its strongest, so one assumed number makes the whole result Modeled.

How a figure moves between grades

Grades are not permanent. A figure improves when evidence arrives, and the direction is always the same: assumption is replaced by observation, never blended with it. A projection built on a stated rate stops using that rate once enough real outcomes exist to compute the rate from your own results. Blending the two would produce a number that is neither, and could be defended as neither.

A live example, currently the largest figure the engine produces across the Sample books (Consultants):

$44,600Estimated

sum of 3 separately adjustable components above; every rate is stated, Unobserved, and conservative; nothing is Measured until a transaction closes

What it computes, and how

Each segment figure is produced by the SAME pipeline the authenticated product uses (customer-truth profiles into the generation-magnitude assembler). Every rate is stated, labeled Unobserved, and independently adjustable; every dollar is Estimated and nothing is Measured until a transaction closes.

Every figure here is computed live from seeded Sample business books. They demonstrate the instruments on realistic books; they are NOT customer outcomes, and Cerqular has no customer results to report. Computed 2026-08-13 22:33 UTC.

Every mechanic that fired on one real book (Consultants)

Each row is checkable against the book it came from: a pool counted from real rows, a stated rate, and a real per-unit value. Multiply them and you get the figure.

MechanicPoolRatePer unitPer year
entry divergence dollar
real new accounts in the trailing 365 days (first purchase inside the window)
150.1$24,500$36,750Estimated
service line attach
real account-line gaps: lines held by at least 4 of 16 peer accounts, missing from accounts active in the trailing 365 days
180.05$8,000$7,200Estimated
account expansion
accounts with MEASURED expansion in their own rows: at least 2 purchases in each trailing half-year and second-half spend at least 125 percent of the first
10.1$6,500$650Estimated

Rates shown are stated planning assumptions, labeled unobserved wherever they appear, and adjustable. A figure that survives someone lowering the assumption is worth more than a larger one that does not.

For contrast, the same book holds $4,000 of failed charges. recovery (failed charges) is the supporting line, never the headline; it restores revenue that existed, while every line above creates revenue that would not exist

What it refuses to estimate, and why

Every mechanic has a floor. Below it the mechanic declines and says what was missing, rather than producing a small number to fill the space. This is the behaviour worth checking us on: the catalogue below is read from the same engine that serves the product, so these are the actual refusals, in the engine’s own words.

MechanicWhy it declinedBooks
unbuilt bundle
volume family
no product pair clears the floors (A buyers >= 10, B buyers >= 5, co-buyers >= 3, lift >= 2x); no bundle is proven by this book4
price ladder gap
volume family
no gap of >= 3x exists between price rungs that each hold >= 8 real buyers; the ladder is honestly continuous4
service line attach
account family
account-family mechanic: its unit is per-account depth, and this book is not account-shaped (171 buyer(s) at $44 median; account shape needs 100 or fewer buyers and a $500+ median; routed by the growth engine's shape derivation)1
engagement ladder
account family
account-family mechanic: its unit is per-account depth, and this book is not account-shaped (171 buyer(s) at $44 median; account shape needs 100 or fewer buyers and a $500+ median; routed by the growth engine's shape derivation)1
contract cadence
account family
account-family mechanic: its unit is per-account depth, and this book is not account-shaped (171 buyer(s) at $44 median; account shape needs 100 or fewer buyers and a $500+ median; routed by the growth engine's shape derivation)1
entry divergence dollar
account family
account-family mechanic: its unit is per-account depth, and this book is not account-shaped (171 buyer(s) at $44 median; account shape needs 100 or fewer buyers and a $500+ median; routed by the growth engine's shape derivation)1
account expansion
account family
account-family mechanic: its unit is per-account depth, and this book is not account-shaped (171 buyer(s) at $44 median; account shape needs 100 or fewer buyers and a $500+ median; routed by the growth engine's shape derivation)1
entry product steering
volume family
volume-family mechanic: its unit is the cross-buyer cohort, and this book is not volume-shaped (31 buyer(s), volume floor 50; routed by the growth engine's shape derivation)1
timing correction
volume family
volume-family mechanic: its unit is the cross-buyer cohort, and this book is not volume-shaped (31 buyer(s), volume floor 50; routed by the growth engine's shape derivation)1
replenishment conversion
volume family
volume-family mechanic: its unit is the cross-buyer cohort, and this book is not volume-shaped (31 buyer(s), volume floor 50; routed by the growth engine's shape derivation)1
unbuilt bundle
volume family
volume-family mechanic: its unit is the cross-buyer cohort, and this book is not volume-shaped (31 buyer(s), volume floor 50; routed by the growth engine's shape derivation)1
price ladder gap
volume family
volume-family mechanic: its unit is the cross-buyer cohort, and this book is not volume-shaped (31 buyer(s), volume floor 50; routed by the growth engine's shape derivation)1
unserved upgrade cohort
volume family
volume-family mechanic: its unit is the cross-buyer cohort, and this book is not volume-shaped (31 buyer(s), volume floor 50; routed by the growth engine's shape derivation)1
engagement ladder
account family
only 2 account(s) have climbed their own timeline (entered on one line, later bought a higher-value line), below the floor of 5 (max of 3 and 15 percent of 31 accounts); no climb path or latency can honestly be learned1
entry divergence dollar
account family
no entry line clears the account divergence floor (cohort of at least 5 accounts, MEDIAN lifetime lift of at least 1.5x, cohort holding at least 20 percent of book dollars); medians and dollar mass replace the volume rail's mean-over-8 so one whale cannot mint a pattern1
entry product steering
volume family
volume-family mechanic: its unit is the cross-buyer cohort, and this book is not volume-shaped (16 buyer(s), volume floor 50; routed by the growth engine's shape derivation)1
timing correction
volume family
volume-family mechanic: its unit is the cross-buyer cohort, and this book is not volume-shaped (16 buyer(s), volume floor 50; routed by the growth engine's shape derivation)1
replenishment conversion
volume family
volume-family mechanic: its unit is the cross-buyer cohort, and this book is not volume-shaped (16 buyer(s), volume floor 50; routed by the growth engine's shape derivation)1
unbuilt bundle
volume family
volume-family mechanic: its unit is the cross-buyer cohort, and this book is not volume-shaped (16 buyer(s), volume floor 50; routed by the growth engine's shape derivation)1
price ladder gap
volume family
volume-family mechanic: its unit is the cross-buyer cohort, and this book is not volume-shaped (16 buyer(s), volume floor 50; routed by the growth engine's shape derivation)1
unserved upgrade cohort
volume family
volume-family mechanic: its unit is the cross-buyer cohort, and this book is not volume-shaped (16 buyer(s), volume floor 50; routed by the growth engine's shape derivation)1
engagement ladder
account family
only 1 account(s) have climbed their own timeline (entered on one line, later bought a higher-value line), below the floor of 3 (max of 3 and 15 percent of 16 accounts); no climb path or latency can honestly be learned1
contract cadence
account family
no rhythm account currently sits inside its own renewal window (its own median gap to twice it); the pool is honestly zero right now1
entry product steering
volume family
volume-family mechanic: its unit is the cross-buyer cohort, and this book is not volume-shaped (23 buyer(s), volume floor 50; routed by the growth engine's shape derivation)1
timing correction
volume family
volume-family mechanic: its unit is the cross-buyer cohort, and this book is not volume-shaped (23 buyer(s), volume floor 50; routed by the growth engine's shape derivation)1
replenishment conversion
volume family
volume-family mechanic: its unit is the cross-buyer cohort, and this book is not volume-shaped (23 buyer(s), volume floor 50; routed by the growth engine's shape derivation)1
unbuilt bundle
volume family
volume-family mechanic: its unit is the cross-buyer cohort, and this book is not volume-shaped (23 buyer(s), volume floor 50; routed by the growth engine's shape derivation)1
price ladder gap
volume family
volume-family mechanic: its unit is the cross-buyer cohort, and this book is not volume-shaped (23 buyer(s), volume floor 50; routed by the growth engine's shape derivation)1
unserved upgrade cohort
volume family
volume-family mechanic: its unit is the cross-buyer cohort, and this book is not volume-shaped (23 buyer(s), volume floor 50; routed by the growth engine's shape derivation)1
service line attach
account family
account-family mechanic: its unit is per-account depth, and this book is not account-shaped (23 buyer(s) at $450 median; account shape needs 100 or fewer buyers and a $500+ median; routed by the growth engine's shape derivation)1
engagement ladder
account family
account-family mechanic: its unit is per-account depth, and this book is not account-shaped (23 buyer(s) at $450 median; account shape needs 100 or fewer buyers and a $500+ median; routed by the growth engine's shape derivation)1
contract cadence
account family
account-family mechanic: its unit is per-account depth, and this book is not account-shaped (23 buyer(s) at $450 median; account shape needs 100 or fewer buyers and a $500+ median; routed by the growth engine's shape derivation)1
entry divergence dollar
account family
account-family mechanic: its unit is per-account depth, and this book is not account-shaped (23 buyer(s) at $450 median; account shape needs 100 or fewer buyers and a $500+ median; routed by the growth engine's shape derivation)1
account expansion
account family
account-family mechanic: its unit is per-account depth, and this book is not account-shaped (23 buyer(s) at $450 median; account shape needs 100 or fewer buyers and a $500+ median; routed by the growth engine's shape derivation)1
entry product steering
volume family
volume-family mechanic: its unit is the cross-buyer cohort, and this book is not volume-shaped (13 buyer(s), volume floor 50; routed by the growth engine's shape derivation)1
timing correction
volume family
volume-family mechanic: its unit is the cross-buyer cohort, and this book is not volume-shaped (13 buyer(s), volume floor 50; routed by the growth engine's shape derivation)1
replenishment conversion
volume family
volume-family mechanic: its unit is the cross-buyer cohort, and this book is not volume-shaped (13 buyer(s), volume floor 50; routed by the growth engine's shape derivation)1
unbuilt bundle
volume family
volume-family mechanic: its unit is the cross-buyer cohort, and this book is not volume-shaped (13 buyer(s), volume floor 50; routed by the growth engine's shape derivation)1
price ladder gap
volume family
volume-family mechanic: its unit is the cross-buyer cohort, and this book is not volume-shaped (13 buyer(s), volume floor 50; routed by the growth engine's shape derivation)1
unserved upgrade cohort
volume family
volume-family mechanic: its unit is the cross-buyer cohort, and this book is not volume-shaped (13 buyer(s), volume floor 50; routed by the growth engine's shape derivation)1
engagement ladder
account family
only 1 account(s) have climbed their own timeline (entered on one line, later bought a higher-value line), below the floor of 3 (max of 3 and 15 percent of 13 accounts); no climb path or latency can honestly be learned1
account expansion
account family
no account shows measured expansion (at least 2 purchases in each trailing half-year with 25 percent growth or more); proposing formalized expansion without observed appetite would be padding1
service line attach
account family
account-family mechanic: its unit is per-account depth, and this book is not account-shaped (455 buyer(s) at $56 median; account shape needs 100 or fewer buyers and a $500+ median; routed by the growth engine's shape derivation)1
engagement ladder
account family
account-family mechanic: its unit is per-account depth, and this book is not account-shaped (455 buyer(s) at $56 median; account shape needs 100 or fewer buyers and a $500+ median; routed by the growth engine's shape derivation)1
contract cadence
account family
account-family mechanic: its unit is per-account depth, and this book is not account-shaped (455 buyer(s) at $56 median; account shape needs 100 or fewer buyers and a $500+ median; routed by the growth engine's shape derivation)1
entry divergence dollar
account family
account-family mechanic: its unit is per-account depth, and this book is not account-shaped (455 buyer(s) at $56 median; account shape needs 100 or fewer buyers and a $500+ median; routed by the growth engine's shape derivation)1
account expansion
account family
account-family mechanic: its unit is per-account depth, and this book is not account-shaped (455 buyer(s) at $56 median; account shape needs 100 or fewer buyers and a $500+ median; routed by the growth engine's shape derivation)1
service line attach
account family
account-family mechanic: its unit is per-account depth, and this book is not account-shaped (350 buyer(s) at $46 median; account shape needs 100 or fewer buyers and a $500+ median; routed by the growth engine's shape derivation)1
engagement ladder
account family
account-family mechanic: its unit is per-account depth, and this book is not account-shaped (350 buyer(s) at $46 median; account shape needs 100 or fewer buyers and a $500+ median; routed by the growth engine's shape derivation)1
contract cadence
account family
account-family mechanic: its unit is per-account depth, and this book is not account-shaped (350 buyer(s) at $46 median; account shape needs 100 or fewer buyers and a $500+ median; routed by the growth engine's shape derivation)1
entry divergence dollar
account family
account-family mechanic: its unit is per-account depth, and this book is not account-shaped (350 buyer(s) at $46 median; account shape needs 100 or fewer buyers and a $500+ median; routed by the growth engine's shape derivation)1
account expansion
account family
account-family mechanic: its unit is per-account depth, and this book is not account-shaped (350 buyer(s) at $46 median; account shape needs 100 or fewer buyers and a $500+ median; routed by the growth engine's shape derivation)1
replenishment conversion
volume family
no product has >= 5 real repeat buyers AND a one-time-buyer pool; replenishability is not proven by this book's rows1
service line attach
account family
account-family mechanic: its unit is per-account depth, and this book is not account-shaped (201 buyer(s) at $149 median; account shape needs 100 or fewer buyers and a $500+ median; routed by the growth engine's shape derivation)1
engagement ladder
account family
account-family mechanic: its unit is per-account depth, and this book is not account-shaped (201 buyer(s) at $149 median; account shape needs 100 or fewer buyers and a $500+ median; routed by the growth engine's shape derivation)1
contract cadence
account family
account-family mechanic: its unit is per-account depth, and this book is not account-shaped (201 buyer(s) at $149 median; account shape needs 100 or fewer buyers and a $500+ median; routed by the growth engine's shape derivation)1
entry divergence dollar
account family
account-family mechanic: its unit is per-account depth, and this book is not account-shaped (201 buyer(s) at $149 median; account shape needs 100 or fewer buyers and a $500+ median; routed by the growth engine's shape derivation)1
account expansion
account family
account-family mechanic: its unit is per-account depth, and this book is not account-shaped (201 buyer(s) at $149 median; account shape needs 100 or fewer buyers and a $500+ median; routed by the growth engine's shape derivation)1

Approval and control

  • One tap approves one thing. Approval is per item. Approving a draft does not authorise the next one.
  • Declining removes it. A declined draft is not sent, and is not quietly re-queued as something similar.
  • Nothing is autonomous. Autonomous execution is switched off. Every mechanic that produces work states, in its own output, that acting on it requires you.

Read live from the engine: 100 percent of this requires the user to act: every mechanic produces drafts for the approval queue, nothing is autonomous (AUTONOMY_ENABLED is false), and nothing sends itself

Your data

Transactions are read from your connected account to compute the figures above. What we can see is bounded by the permission list in the scope contract, and that list is read access only.

  • We never receive your bank details, your balance or your payouts. That is a permission we do not hold, not a policy we promise.
  • We hold no permission to create, change or delete anything in your payment account.
  • Disconnecting stops the reads. You can also revoke access from inside Stripe without involving us, which is the stronger control because it does not depend on us honouring anything.

The full retention and deletion terms, including how to request an export or erasure, live on the privacy page and the trust page. This page does not restate them, so the two cannot disagree.

Where it does not apply

Some businesses get less from this than others, and it is cheaper for both of us to say so here than for you to find out after paying.

Books where a whole family of mechanics declines

On 5 of the 8 Sample books, every account-depth mechanic declined because the book is not that shape. The engine states the reason itself:

  • Creators. account-family mechanic: its unit is per-account depth, and this book is not account-shaped (171 buyer(s) at $44 median; account shape needs 100 or fewer buyers and a $500+ median; routed by the growth engine's shape derivation)
  • Influencers. account-family mechanic: its unit is per-account depth, and this book is not account-shaped (23 buyer(s) at $450 median; account shape needs 100 or fewer buyers and a $500+ median; routed by the growth engine's shape derivation)
  • Brands. account-family mechanic: its unit is per-account depth, and this book is not account-shaped (455 buyer(s) at $56 median; account shape needs 100 or fewer buyers and a $500+ median; routed by the growth engine's shape derivation)

Books where the figure is real but small

The two lowest figures across the Sample books are below. They are honest outputs, not failures, and we would rather show you a small true number than lead with someone else’s large one.

BookAnnual generationMechanics that firedDeclined
Creators$3,590.30Estimated47
Influencersevery mechanic refused its floor; this book cannot honestly support a generation figure yet no figure011

If your business runs on a small number of large considered purchases rather than many small ones, the per-account mechanics are the ones that will carry you, and the audience-scale ones will decline. That is the correct behaviour rather than a gap.

For a technical reviewer

Everything in this section is served by a public endpoint you can call yourself, without an account, and compare against what this page rendered.

Permissions requested, and why each one

PermissionWhy it is needed
charge_readread paid and failed charges: the entire generation and recovery computation
customer_readattach a name to a charge so outreach names a real person
subscription_readread real prices and tenure from active subscriptions
product_readresolve the real product and price behind a charge
checkout_session_readread client_reference_id back off a completed session: the Measured flip
payment_links_readDISCOVER the user's OWN existing checkout link so a tracked reference can be appended to it; we never create one

Write permissions requested: none. Cerqular reads your Stripe sales data and creates nothing on your account. The trackable link is your own checkout link with a reference added to the end of it, which needs no permission to write anything.

Deliberately not requested

  • payment_links_write: it permits CREATE and UPDATE of payment links on the user's account. Nothing in the product uses it: the tracked link is the user's OWN link with client_reference_id appended by string manipulation, which needs no API write at all. Its only consumer was a diagnostic probe that existed to discover whether write was available, and the rail was subsequently built without it. Asking a stranger for write access to their payments in exchange for a free audit is not defensible, and asking a paying user for a capability we never exercise is not either.

Manifest verification state, read live: the installed permission set has been verified against this contract.

Contract: cerqular.stripe-scope/v1 at /api/public/stripe-scope

Check the figures yourself

  • /api/public/stripe-scope returns the permission contract this page renders.
  • /api/public/generation returns every figure, mechanic, rate and refusal shown above.
  • /api/pricing/:segment returns prices resolved from Stripe. No amount is hardcoded in either repository.

Live check, creators: 3 tier(s), lowest $29 per month, read from /api/pricing/creator at render. lib/pricing-catalog.js, resolved live from Stripe (no amount is hardcoded anywhere in this repo); the same catalog the public GET /api/pricing/:segment serves

Contract: cerqular.public-generation/v2, 8 books, computed 2026-08-13 22:33 UTC.