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.
gross $400.00
confidence: sole
$32.00
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.
gross $400.00
net $320.00
net $320.00
confidence: sole
share: 1.0
role: closer
= $32.00
$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.

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.
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.
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.
Analytics and chatting for OnlyFans agencies and independent creators. Measured across the whole roster, with every figure graded by where it came from.
Free tools
API
Methodology
Security
System status
References
Disclosure
How fan data is handled
Privacy policy
Terms of service
© 2026 FanOptik. All rights reserved. · Built for agencies that would rather measure the roster than estimate it.