All articles
Attribution

How to reconcile affiliate commissions at month-end

When an affiliate claims 50 sales and your data shows 30, click-time attribution settles it. A playbook for clean partner tracking and commission-ready exports.

It is the last business day of the month. An affiliate emails to say they drove 50 sales and expects to be paid for all 50. Your dashboard shows 30. Now you have three bad options: pay for 50 and quietly eat the gap, pay for 30 and start a fight with a partner who sends you real revenue, or block out an afternoon to rebuild the month from raw logs and hope the number you land on is defensible. Most teams pick the afternoon. Then they do it again the next month.

The frustrating part is that nobody is usually lying. The two sides are counting different things, measured at different moments, with no shared record of what was true when each sale actually happened. Fix that and the argument disappears. This is a playbook for setting up partner tracking so month-end reconciliation is reading a record, not negotiating one.

Stop arguing about totals, start trusting the moment of the click

The reason affiliate numbers drift is timing. A partner counts every sale they think they influenced, across whatever attribution window feels fair to them. Your store counts orders. Somewhere in the middle, refunds happen, links get reused, and a campaign that ran in April gets re-tagged in May.

The fix is to capture attribution at the instant it occurs and freeze it. In Nimriz Partners, every click on a partner-assigned branded short link records which partner and program were attached at that moment, and that record never gets rewritten later. Rename the partner, change their reward terms, or move the link to someone else next quarter, and last month's numbers stay exactly as they were. You are no longer reconstructing history from the current state of the dashboard. You are reading what was logged when it happened.

The play: one motion per program, one partner per link

The setup that reconciles cleanly comes down to three habits.

Give each partner motion its own program. A program groups partners under a single motion: your affiliate program, an agency program, a creator campaign, a Q4 referral push. Keep each one narrow. A catch-all "general partners" bucket blends unrelated deals into one undifferentiated stream and produces an export finance cannot slice.

Assign exactly one partner to each branded link. A link carries at most one active partner assignment at a time. That single constraint is what keeps a click from being claimed by two people. If a click can only belong to one partner, the report stops being a negotiation.

Track conversions, not just clicks. Clicks tell you a partner sent traffic. Reconciliation needs outcomes: leads, sales, and the refunds that follow. Conversions flow in through the Nimriz Conversion API as signed server-side events, so the outcome is tied back to the partner who earned the click.

A month in the life of one partner

Walk it through with a single creator partner, Verde, in a DTC affiliate program.

At the start of the month you create a program, "Creator Affiliates," and set its default destination and UTM defaults so every partner link inherits consistent campaign tags. You add Verde as a partner and assign them a branded link, links.yourbrand.com/verde. From that moment on, every click on that link is stamped with Verde and the Creator Affiliates program.

Verde drops the link in a video description. Traffic arrives, and the Traffic view groups it under Verde without you touching anything. Because you enabled conversion tracking on the link, the sales that follow are sent to Nimriz as signed conversion events and attributed back to Verde with order IDs and amounts attached.

On the last day of the month you open Verde's conversion report and request a commission-ready CSV. The file lists each attributed conversion with its touch and conversion timestamps, the order ID, the amount, the program context, and the reward terms that were current when the event happened. Finance imports it, applies your payout rules, and pays. When Verde asks why the number is what it is, you send the row, not a screenshot of a chart.

Watch-outs that keep the export honest

A few things to get right before you trust the file.

Assign the partner before you send traffic. Attribution is forward-looking. Clicks that happened before a link was assigned to a partner are not backfilled into that partner's report. Set up the link, confirm the assignment, then hand it over. If you reassign a link mid-campaign, future clicks go to the new partner and past clicks stay with the previous one.

Record refunds and clawbacks through the same pipe. Refunds, cancellations, and reversals are first-class outcomes. Send them through the Conversion API tied to the original sale rather than hand-editing a positive conversion later. They appear as their own rows next to the sale they reverse, so the export shows the clawback context instead of a number that silently shrank.

Treat the export as finance's input, not a payout. Nimriz attributes and reconciles. It does not approve commissions, calculate final payable balances, or move money. Any estimated reward column is exactly that, an estimate to help the person doing the review. The CSV is the clean input to whatever process you already run, and it never contains raw IP addresses or full User-Agent strings.

What you get back

The payoff is a month-end conversation that takes minutes instead of an afternoon. When a partner disputes a number, you have a row with a timestamp, an order ID, and the reward terms that applied, all fixed at the moment the sale happened. You can measure it yourself: track how many partner disputes you can close by forwarding a single export row, and how much of your month-end you stop spending in spreadsheets.

Set up your first program and pull a commission-ready export with the Nimriz Partners overview and the commission-ready exports guide. To wire up the outcomes that make the export worth reading, see conversion tracking. For how partner touchpoints sit alongside your other channels, see multi-channel attribution.

Product updates

Get more practical link tips

Related next steps

Ready to put this into practice?

Set up branded short links, QR codes, and privacy-aware analytics from a free account.