Every dollar lands on a named person, under a rule written before the money arrived.

There are two ways to decide who earned a sale: watch the inbox and credit whoever messaged most recently, or credit the shift that was covering the account. The first is a rule a chatter can play — send a message, take the credit. We are read only and cannot see who typed what, so we credit the shift that covered the creator when the money landed. Coarser, and impossible to farm.

Every per chatter figure in the analytics is built on that one rule, so the rule is published here in full: the whole path, from a fan’s payment to a line on a payslip.

02:41A fan tips $400On one creator’s account, in the middle of the night.Record writtentransaction
gross $400.00
02:41The rota is asked who was coveringNot who messaged. Who was on shift.Record writtenshift #4192
confidence: sole
PaydayIt appears on one named person’s statementItemised, before you pay it.Record writtencommission
$32.00

Follow the $400See the share we cannot place

One $400 tip, from the fan’s card to a line on a payslip.

Seven steps. At each one, the record that gets written is on the right. The point of the exercise is that by the time anybody is paid, every figure has a source, a grade and an owner, and none of them were decided after the fact.

02:41The fan paysA $400 tip on one creator’s account. Nothing of ours is involved yet, and nobody has been credited with anything. At this moment the only record that exists is the platform’s.Stateno credit yet
07:12The overnight sync reads the accountOne of the day’s one or two read only pulls. The tip arrives in the transaction feed with its gross, its fee and its net. The feed is real records, but it is not the authority that pays you.GradeLedger
gross $400.00
net $320.00
Next dayThe Statements page publishesThe feed total for that day and the creator’s own Statements page are reconciled against each other. They agree to the cent, so the figure is promoted to the strongest grade we issue. If they had disagreed, the gap would be flagged rather than averaged away.GradeStatement
net $320.00
02:41The rota is asked who was coveringReading backwards to the moment of the sale: which worked shift covered that creator at 02:41. Exactly one did, so the credit is whole and undivided. Had two shifts overlapped, the money would divide evenly and the overlap would be reported as a rota mistake rather than quietly resolved in someone’s favour.Record writtenshift #4192
confidence: sole
share: 1.0
02:41The credit is written and does not moveA credit row against a named person, for a stated share of a stated transaction. Nothing a chatter does afterwards can shift it, because nothing a chatter does is an input to it.Record writtencredit
role: closer
Month endThe period closes and the commission is computedThe commissionable base is stated rather than assumed: this agency pays on net, and subscriptions are excluded because they are not chat driven. The tier configured for that chatter is applied to the credited net, and the period locks.Computed$320.00 × 10%
= $32.00
PaydayIt appears on one person’s statementItemised to the transaction, visible to the person being paid before the money moves, on the same record their team lead and the creator are reading. One record, four seats.Record writtenpay statement line
$32.00

Figures are illustrative, taken from a demo workspace. The mechanics are not: this is the order the real records are written in, and the grades are the ones the product actually issues.

The Shift Console, running.

Credited revenue per chatter, hours from clock-ins, and the share that could not be placed, on one screen for the period you are about to pay. Look at the fourth tile before you look at anything else.

The Shift Console, showing credited revenue and hours per chatter

What you are looking at
Unattributed residual: 72.08% of net. This is a demo workspace with barely any rota written, and the console is telling on itself rather than printing a confident looking split. Nearly three quarters of that money landed when nobody was clocked in, so the per chatter figures beneath it are partial and the screen says so.
That is the feature. A tool that wanted to impress you here would have quietly spread that million dollars across four people and shown you a tidy table. The number you actually need is the one that makes the table look bad, because it is the one that tells you the rota is not being kept.

A demo workspace with demo creators, seeded with deliberately thin shift coverage. Nothing on this site is ever a real creator’s data.

A dollar can be credited five ways, and two of them pay nobody.

Every transaction resolves to exactly one of these, and all the shares on a single transaction sum to one. There is no sixth bucket where the remainder goes.

Credit When it applies Share Earns commission
sole Exactly one shift covered that creator at that moment. 1.0 Yes
split Two or more shifts overlapped. Divided evenly, and reported as a rota mistake to fix rather than an ambiguity to resolve. 1 ÷ N Yes
assist An earlier shift on the same creator, within the window, decaying by hour. Off by default. fraction Yes, if enabled
automation The sale followed a triggered message rather than a person. Its own actor. 1.0 No — paid to nobody
unattributed Nobody was clocked in. Published as its own figure instead of being spread. No

Assist credit ships switched off. It is a policy an owner chooses, not a fact we discovered, and the plain even split has to earn trust before a cleverer rule is worth introducing. Turned on at thirty per cent, the closer keeps seventy and the rest divides across shifts that covered the same creator earlier in the window, decaying by hour.

Automation looks back two days. A triggered offer is usually opened when the fan next picks up their phone rather than when it lands, so the rule reaches a long way back before it decides a human closed the sale. Erring long is deliberate, and it is the direction that costs us the argument rather than wins it: the rule only ever moves money away from a person, never toward one. Switch it off and triggered revenue falls back to whoever was on shift, which is what happens by default everywhere else, and is the exact thing this exists to stop.

The tie is refused when the rota is written, not argued about later.

The cheapest way to win an attribution argument is to make sure it never starts. When a shift is written that would put a second person on a creator who is already covered, the scheduler refuses it and names who has the slot.

That check is the reason the even split exists at all. The split is not the plan; it is the safe fallback for an overlap that got in another way, and it surfaces as its own percentage so the rota can be fixed rather than the money quietly divided forever.

Clock-ins are held to the same rule. A chatter cannot hold two open shifts at once, and a shift left running is capped rather than allowed to accrue indefinitely.

Writing next week’s rota
Thu 02:00–06:00 · SamAdded. Two creators assigned.
Thu 02:00–06:00 · PriyaRefused. That creator is already covered by Sam for this window.

We built a control for this, then deleted it.

There used to be a fourth outcome. Where two shifts overlapped, the owner could nominate whoever was really driving the account, and that person took the credit. It was built for an agency where several chatters work one creator at the same time.

It went, and the plain even split stayed. The reasoning is worth stating because it is the whole philosophy of this page: the only correct use of that control was papering over a scheduling bug. A nomination makes an overlap look resolved. A split, reported as its own percentage, makes an overlap look like what it is — a rota that disagrees with the people working it, which somebody should go and fix.

Every setting that lets you tidy away an inconvenient number is a setting that will eventually be used to tidy away an inconvenient number.

$39,742.10Credited to a shift · 86.05%
$612.30Split across an overlap · 1.33%
$4,818.00Credited to Automation · 10.43%
$1,011.00Nobody was clocked in · 2.19%

The same gauge, on a roster where the rota is actually kept.

The screen further up was a workspace with almost no shifts written, reporting seventy two per cent it could not place. This is a month where the rota was kept: the residual falls to two per cent and the per chatter figures become something you can pay from. The four slices add to the total exactly, because a figure that does not add up is the one thing this product exists to prevent.

The grey slice is the one nobody else will show you. Ten per cent of that month followed a triggered message rather than a person, so no chatter earned commission on it. Published as its own slice, it answers a question an owner cannot otherwise ask: how much of the month the team actually earned, and how much would have arrived anyway.

Why print the amber slice at all. No tool reaches a hundred per cent, and one that appears to has simply stopped showing you the gap. Published, the residual becomes two useful things at once: a number you can shrink by fixing coverage, and a number you can defend to the person being paid out of what is left. The two screens are the same software on the same rules — the only thing that changed is whether the rota was written.

What shift attribution cannot do.

Does this miss the person who set the sale up?

Yes, and we are not going to pretend otherwise. The groundwork somebody did the night before a sale is real work, and a shift rule does not capture it. If that matters in your business it belongs in a bonus you design deliberately, not in a quiet fudge to the credit. Assist credit exists for exactly this and ships switched off, because it is your policy to choose rather than our fact to assert.

Will it ever get to a hundred per cent attributed?

No. The useful goal is a number you can see, that gets smaller as your coverage improves, and that you can defend to the person being paid from it. Any tool showing you a clean hundred per cent has stopped showing you the gap rather than closed it.

Why the shift and not something cleverer?

Shift ownership is a choice, not a law of nature, and other defensible rules exist. The value is not that this rule is perfect; it is that one rule is chosen, published in advance and applied to everybody equally. A rule invented after the money lands is not a rule, it is a decision about a person.

Could you attribute by who actually typed the message?

Not without watching the inbox, which we do not do. The sync is read only and records that messages happened and how many, never what was said. That constraint is the source of the guarantee rather than a limitation on it: because we cannot see who typed, nothing a chatter types can move money off a colleague.

What happens to a sale after the period locks?

Nothing moves silently. Corrections after a lock append to an audit trail with a reason, a date and a person attached, and stay visible as corrections. The full treatment is on the payroll page.

How every number is madeWhat happens at the lockTwo chatters claim the same $400 tip

See your own unattributed share.

Fourteen days on your real roster, no card on file. The first number most agencies want back is the one nobody has ever shown them.

Book a demoThe whole platform

FanOptik

Analytics and chatting for OnlyFans agencies and independent creators. Measured across the whole roster, with every figure graded by where it came from.

© 2026 FanOptik. All rights reserved. · Built for agencies that would rather measure the roster than estimate it.