Skip to content
msMarketSDK

// guide

Reputation

Reputation is built from events, never from a number someone typed. We give you the counts as well as a score, so you can show your users what the score is made of.

Reputation events

Reputation events
eventwritten whenagainsteffect
order_completedan order completes (9, 10, or 12)both partiesgood
backed_outa party backs out (6)who backed outbad
dispute_losta dispute is decided (12, 13, or after completion)who it went againstbad
dispute_wonthe same decisionthe other partynone, kept for the history
lapsedthe commitment window passes (8)both partiesnone, kept for the history
review_receiveda review becomes visiblethe party reviewedfeeds the rating
  • The numbers are the order transitions in the orders guide. Payment expiring (4) and cancelling by agreement (7) write no event.
  • Events never change and are never deleted. Your team can void one with a written reason, POST /v1/reputation_events/{id}/void; a voided event stops counting.
  • A buyer and a seller each have their own reputation, even with the same external_id. Reputation never crosses between marketplaces, or between test and live.

What a buyer or seller shows

Reputation fields
fieldmeans
completed_ordersorder_completed events in the window
backed_outbacked_out events in the window
disputes_lostdispute_lost events in the window
review_countvisible reviews in the window
average_ratingthe plain mean of those ratings, or null
score0 to 100, or null until there are enough events
levelnew, low, fair, good, or excellent

Levels: excellent at 90 and above, good from 75, fair from 50, low below 50, and new while the score is null.

The default score

Only events inside the rolling window count. If completed orders, back-outs, and lost disputes add up to fewer than the minimum, the score is null.

formula
C = completed_orders    B = backed_out    D = disputes_lost
n = review_count        S = sum of ratings

reliability = (C + 1) / (C + wB * B + wD * D + 1)
smoothed    = (S + prior_rating * prior_weight) / (n + prior_weight)
rating      = (smoothed - 1) / 4
score       = round(100 * (blend * reliability + (1 - blend) * rating))

A seller with 10 completed orders, 1 back-out, no lost disputes, and 6 reviews totalling 27, with the defaults:

worked example
reliability = (10 + 1) / (10 + 2*1 + 3*0 + 1) = 11 / 13 = 0.846
smoothed    = (27 + 4.0*2) / (6 + 2)          = 35 / 8  = 4.375
rating      = (4.375 - 1) / 4                           = 0.844
score       = round(100 * (0.6*0.846 + 0.4*0.844))      = 85, good

Settings

Change them under marketplace. Every score in the marketplace is worked out again from its events at once.

Reputation settings
settingdefaultlimits
rolling window24 months6 to 60 months
wB, weight of a back-out21 to 5
wD, weight of a lost dispute31 to 5
blend, the share given to reliability0.60 to 1
prior rating4.03.0 to 5.0
prior weight20 to 10
minimum events for a score31 to 10

next: payments and payouts