DEMO · SAMPLE DATA Fictional partners. No live orders, credit redemption or connected systems.

Administrative corrections

Every operator action, what it requires, and what it records.

12 commands

Every correction is additive. There is no command that edits a credit, deletes an event or sets a balance. A mistake is corrected by appending an event that names what it supersedes, who did it and why — and the original stays visible in the audit log forever.

The command surface

Generated from the command classes themselves, so this table cannot drift from the code. Owner-level approval is not defined anywhere in the agreement; rather than invent a threshold, every row says so.

Scroll the table sideways to see every column.

CommandEffectPermissionAppendsReasonOwner approval
AcceptAffiliateEnrols a partner under a named rule set version.admin.affiliate.writeAffiliateEnrolledRequiredNot defined
AdjustCreditsSigned manual adjustment, always attributed and explained.admin.credit.writeCreditAdjustedRequiredNot defined — a manual credit adjustment has no stated approval threshold
CommitMonthlyReviewCommits a previewed review proposal to the ledger.admin.credit.writeCreditIssued CreditReversed MonthlyReviewCompletedRequiredNot defined
CorrectAttributionMoves a customer to a different partner, additively.admin.attribution.writeAttributionCorrectedRequiredNot defined — moving a customer between partners has no stated approval path
FlagCustomerIneligibleMarks self, household, duplicate or fraudulent activity.admin.attribution.writeCustomerFlaggedIneligibleRequiredNot defined
IssueLaunchGrantIssues launch credits due at the start of the current launch month.admin.credit.writeCreditIssuedRequiredNot defined — Section 1 requires an authorized officer or manager to approve credits; the record of that approval is not modelled
PublishRuleSetVersionRecords which program terms govern from a date.admin.ruleset.writeRuleSetActivatedRequiredNot defined — publishing new program terms is a signed-agreement change
ReinstateAffiliateCloses an open suspension window.admin.affiliate.writeAffiliateReinstatedRequiredNot defined
ReverseCreditClaws back issued credits without deleting the issuance.admin.credit.writeCreditReversedRequiredNot defined
SetLeaderboardPreferenceHonours a partner's public leaderboard opt-out.partner.profile.writeAffiliateLeaderboardPreferenceSetRequiredNot defined
SuspendAffiliatePauses credit issuance from the effective date.admin.affiliate.writeAffiliateSuspendedRequiredNot defined
VoidAttributionRemoves ownership entirely (fraud, duplicate, correction).admin.attribution.writeAttributionVoidedRequiredNot defined

Controls

Prototype only. Every control is inert and states the permission it needs, the events it would append, whether a reason is mandatory, and whether owner approval is defined.

Enrols a partner under a named rule set version. Prototype only — this control is inert.

Requires
admin.affiliate.write
Appends
AffiliateEnrolled
Reason
Required
Owner approval
Not defined in the agreement

Signed manual adjustment, always attributed and explained. Prototype only — this control is inert.

Requires
admin.credit.write
Appends
CreditAdjusted
Reason
Required
Owner approval
Not defined — a manual credit adjustment has no stated approval threshold

Commits a previewed review proposal to the ledger. Prototype only — this control is inert.

Requires
admin.credit.write
Appends
CreditIssuedCreditReversedMonthlyReviewCompleted
Reason
Required
Owner approval
Not defined in the agreement

Moves a customer to a different partner, additively. Prototype only — this control is inert.

Requires
admin.attribution.write
Appends
AttributionCorrected
Reason
Required
Owner approval
Not defined — moving a customer between partners has no stated approval path

Marks self, household, duplicate or fraudulent activity. Prototype only — this control is inert.

Requires
admin.attribution.write
Appends
CustomerFlaggedIneligible
Reason
Required
Owner approval
Not defined in the agreement

Issues launch credits due at the start of the current launch month. Prototype only — this control is inert.

Requires
admin.credit.write
Appends
CreditIssued
Reason
Required
Owner approval
Not defined — Section 1 requires an authorized officer or manager to approve credits; the record of that approval is not modelled

Records which program terms govern from a date. Prototype only — this control is inert.

Requires
admin.ruleset.write
Appends
RuleSetActivated
Reason
Required
Owner approval
Not defined — publishing new program terms is a signed-agreement change

Closes an open suspension window. Prototype only — this control is inert.

Requires
admin.affiliate.write
Appends
AffiliateReinstated
Reason
Required
Owner approval
Not defined in the agreement

Claws back issued credits without deleting the issuance. Prototype only — this control is inert.

Requires
admin.credit.write
Appends
CreditReversed
Reason
Required
Owner approval
Not defined in the agreement

Honours a partner's public leaderboard opt-out. Prototype only — this control is inert.

Requires
partner.profile.write
Appends
AffiliateLeaderboardPreferenceSet
Reason
Required
Owner approval
Not defined in the agreement

Pauses credit issuance from the effective date. Prototype only — this control is inert.

Requires
admin.affiliate.write
Appends
AffiliateSuspended
Reason
Required
Owner approval
Not defined

Removes ownership entirely (fraud, duplicate, correction). Prototype only — this control is inert.

Requires
admin.attribution.write
Appends
AttributionVoided
Reason
Required
Owner approval
Not defined in the agreement

Rules an operator cannot break

Named actor required
A command attributed to system, or to nobody, is refused at construction.
Reason required
An empty reason is refused. An unexplained correction cannot reach the ledger.
No re-running a review
A committed review is refused a second time for that partner. Issue a correction instead.
No early review
A review month is refused until its last day has passed, and it reads only facts dated on or before the commit date.
No backdated launch credits
Launch credits are dated the day they are issued. A launch month that closed unissued is refused while OQ-31 is unresolved.
No zero adjustments
An adjustment of zero credits is not a correction and is refused.
No unknown rule set
Activating an unpublished rule set version is refused.
No identity by default
Resolving a customer handle to an internal id needs admin.customer.identify. Operator views redact without it.