Skip to content
The operating loop

A month on XEX, from a rate change to a settled claim.

Six stations. Two of them will not open for one person. Here is each one, and what it writes.

The operating loop, in six stationsConfig, catalogue, purchase, compute, run and claim, joined in a closed loop that returns to config for the next period. Config and Run each carry a second concentric square: they cannot advance without a second operator approving. Only the claim station moves money, and it moves it out through the operator's own systems.ONE MONTH · SIX STATIONSCONFIGURATION IN · A SETTLED CLAIM OUTprogram_versionCONFIGpackageCATALOGUEpurchasePURCHASEledger_entryCOMPUTErunRUNclaimCLAIMMONEY LEAVES HEREON YOUR RAILS, NEVER OURSSETTLED → NEXT PERIODSECOND APPROVER REQUIRED
Config and Run are the two gates. The claim station is the only place money leaves, and it leaves through your systems.
Station one · config

Your pay plan is configuration, not code.

Rates, ranks, ladders, thresholds, pools and per-package terms are edited in structured forms and saved as a new version. Nobody writes JSON, and nobody ships a release to change a percentage.

Saving does not make a rate live. A version is stamped with the engine version that will execute it and sits in draft until a second operator approves it. Self-approval is refused twice — once in Go and once in the database — so it cannot be worked around by calling the API directly, and it cannot be worked around by an operator who holds every role.

Because the engine version is recorded on the version, a change in how the platform computes is a new engine version rather than a silent change in what your plan paid last month. A tenant can be pinned to an engine or migrated deliberately.

internal/program · migrations · POST /v1/admin/programs/{version}/approve

What you configure, and what you do not
XEX runs unilevel-family plans: direct levels, rank differential with compression, generational overrides, pools, recognition tiers and activity thresholds. You configure the rates, the ranks, the ladders, the pool split, the thresholds and the per-package terms. You do not change the plan's structure. Binary, matrix and hybrid placement are on the roadmap and are not configurable today.
Stations two and three · catalogue, purchase

Members pay on your accounts, not ours.

A package is priced and sold by you. The money arrives in an account you own, and the platform is told that it did.

Host handoff

The member finishes on your existing checkout, which reports the purchase back over the command API. Nothing about your funnel changes.

rails.host_handoff

On-chain transfer

Your receiving address is published with the exact amount and a reference. Nothing here watches a chain, so a person confirms receipt — the copy the member reads says so, rather than leaving them refreshing.

rails.onchain_transfer

Bank transfer

Your own bank details, with a per-country field profile rather than a separate rail per country. Confirmed by a person against your statement.

rails.bank_transfer

Alipay

A payee account or a fixed receive QR that belongs to you.

rails.alipay

WeChat Pay

The same shape as Alipay, and the same confirmation path.

rails.wechat_pay

M-PESA

A Pay Bill business number and the account field the member types their reference into.

rails.mpesa

Every one of these is configured with your credentials, on your accounts. The rail configuration refuses to store a credential that matches the platform's own — the check exists precisely because “we'll just use ours for now” is how a software vendor accidentally becomes a payment institution.

internal/rails

Station four · compute

Six engines, one ledger.

Each engine writes its own lines, each line carries the rule identifier that produced it, and all of them post into a single append-only ledger.

Direct referral

A configured percentage on the first eligible upline levels, each level gated on the earner's own rank. An inactive earner's line is held rather than dropped, and a claimable delay runs to the close of the refund window — which is what stops a claim from outrunning a refund.

internal/direct

Team differential

A cumulative ladder with full compression: walking a purchase's upline, each qualified ancestor takes its band minus what lower ancestors already took. Closed and banned positions are transparent and do not consume a band.

internal/team

Same-rank override

A generational override on shadow volume: each descendant at or above the overrider's rank consumes a generation, lower ranks are transparent, and where a descendant outranks the overrider the shadow is recomputed at the overrider's own band.

internal/samerank

Ranks

Two ladders. Achievement ranks gate the direct bonus on active directs and leg containment; volume ranks combine a cumulative small-group-volume threshold with a structural requirement, and a refund rewinds the high-water mark.

internal/rank

World pool

A configured percentage of the period's refund-net sales, split across the top tiers and shared equally within a tier. A tier with no qualifiers is recorded as undistributed rather than quietly redistributed to somebody else.

internal/pool

Clubs and accommodations

Recognition tiers on refund-net cumulative purchases, and discretionary pins, promotions and extra-basis-point overrides that are time-boxed, reasoned, audited and maker-checked.

internal/club · internal/accommodations

The shape of a differential ladderA step function plotted with cumulative team volume on the horizontal axis and differential rate on the vertical. Seven risers are marked V1 to V7. A second, dashed staircase shows the same ladder after a refund rewinds the high-water mark: every riser moves to the right. The hatched bands between the two curves are where they disagree. Both axes carry relative ticks and no absolute numbers, because every rate on a real ladder is the operator's own configuration.V1V2V3V4V5V6V7LADDER AS CONFIGUREDAFTER A REFUND REWINDTHE DELTA BETWEEN THEMCUMULATIVE TEAM VOLUME →RELATIVE SCALE · NO ABSOLUTE VALUESDIFFERENTIAL RATE →The shape of a differential ladder. Every rate on it is the operator’s own configuration.
A structural diagram. Both axes are relative: every rate on a real ladder is the operator's own configuration.

No rate is hardcoded in engine code — the configuration is the only source the engines read. Every engine is driven by golden fixtures, and the Go suite runs against them on each change, which is the only way a comp engine stays honest once it has real money behind it.

Station five · run

The run is a dry run first.

A period is computed into draft lines that pay nobody. You read what it would do, and then somebody else approves it.

The console shows the draft's total compensation against the period's refund-net cash sales. If that ratio is over your configured ceiling, the run cannot be approved at all — the check is fail-closed and lives in the approval path, not in a report somebody reads afterwards.

Approval must come from an operator other than the one who created the run. Posting is resumable: a run interrupted halfway is finished by running it again rather than by somebody reconciling two half-posted periods by hand. A draft you do not want is discarded, and discarding is idempotent too.

internal/runs · /admin/runs

Station six · claim

The member claims. You settle.

A claim reserves exact ledger lines and emits an instruction. The platform never holds the money it is instructing you to move.

A claim, and the race at the end of itTwo timelines, one for the member and one for the settlement host. The member opens a claim and lines are reserved; an instruction goes to the host. A cancel request and a settlement webhook then overlap in a hatched window marked contested. Settlement wins and the cancel is refused. To the right, five ledger lines are consumed oldest first with the negative netted before anything else: minus 45.00, then 410.00 in full, then 35.00 of an 85.00 line, reserving 400.00 and leaving 50.00.CONTESTED WINDOWMEMBERHOSTCLAIM OPENEDLINES RESERVEDCANCEL REQUESTEDCLAIM CLOSEDINSTRUCTION SENTSETTLE WEBHOOKSETTLED · SETTLEMENT WINSCANCEL REFUSEDRESERVING 400.00120.00direct · 2026-06UNTOUCHED260.00differential · 2026-06UNTOUCHED85.00same-rank · 2026-0550.00 LEFT410.00pool · 2026-05CONSUMED−45.00reversal · 2026-04NETTED FIRSTNET RESERVED400.00−45.00 + 410.00 + 35.00 = 400.00A cancel and a settlement can arrive in the same window. Settlement wins, and the ledger says which lines paid.
Two phases, one contested window. Settlement wins the race, so nothing is released twice.

Exact lines, reserved

Lines are consumed oldest-first with negatives netted first, and a boundary line is split so an exact amount is claimable while the ledger stays append-only.

internal/claims

Cancel loses to settlement

A cancel and a settlement callback can overlap. Settlement wins, deterministically — the alternative is a claim that is both cancelled and paid.

internal/claims

No settlement host? A console.

A tenant with nothing to hand off to pays from its own wallet and records the executed price and its own transaction reference. A payment with no reference is refused, because it could never be reconciled.

internal/httpapi/payouts.go

The other side

What a member sees.

Your members read the portal far more often than you read the console, and what it says is what your programme sounds like.

Thirteen portal screens in ten languages, including right-to-left. Balances, team, earnings by type, packages, claims, disputes and the plan itself, all rendered from the same configuration the engines execute — so a member reads the same words before joining and after.

Every non-ok state carries a reason and a next action. “Geo-restricted” on its own is a dead end; the notice says why and what to do. A member who disagrees with a figure opens a dispute that moves from open to investigating to resolved or rejected, with its audit trail attached — which is a far better outcome for you than the same member arguing with their sponsor in a group chat.

app/[locale]/portal · internal/disputes · i18n

Your programme, your responsibility
XEX supplies the software. You remain solely responsible for your compensation plan, for every licence or registration your programme needs in the countries you market to, and for every claim you or your members make. Plans that pay primarily for recruitment rather than for genuine sales are prohibited on this platform and are unlawful in many countries.
Next

See what it costs, or take a sandbox.

The sandbox is free on every plan, and it is the whole product — not a demo with the interesting parts removed.