Most agencies do not lack shoppers. They lack shoppers in the right cities who accept the assignment, show up and write a report that passes validation. This guide covers how to recruit mystery shoppers in the numbers the schedule actually needs, how to qualify them before the first visit, and what makes the good ones stay for a second year. The numbers below are a worked example, not industry figures.
Size the pool from the schedule
Start from the audits, not from a target headcount. Suppose a program runs 120 audits a month across 30 cities. A shopper should not do more than four visits a month for one program, otherwise staff start to recognize them and the reports get routine. At four per shopper that is 30 shoppers if every offer is accepted. It never is. Say a third of assignments are declined on the first offer: the date does not suit, the shopper is traveling, the fee is too low for the distance. Divide 30 by two thirds and the active pool becomes 45. Behind every active shopper stands one who registered, passed the test and went quiet, so about 90 registered is what keeps 45 active. Measure your own acceptance rate after the first wave rather than guessing it.
The total matters less than the spread. Thirty cities with four audits each means every city needs at least two shoppers, and three is safer. One shopper per city is a single point of failure, and if that shopper does all four visits the branch staff will know them by the second wave. The per-city rule alone produces 60 to 90 shoppers. When the two calculations disagree, the per-city one wins.
Where shoppers come from
A self-registration page. A public form anyone can find is the cheapest source and the lowest quality. Keep it open all year; an extra registration costs nothing and the qualification step filters the rest.
Ads for open audits. Publishing an audit as an ad that shoppers browse by city or questionnaire fills the cities where nobody was assigned and pulls idle shoppers back. Shoppers apply with a proposed visit date and a comment; an admin picks from the applications and assigns in bulk. This is what turns a registered shopper into an active one without a phone call.
Referrals from existing shoppers. The best shoppers know other reliable people. Tie any incentive to the referred person's first validated report, not to the registration, or you pay for accounts that never do a visit.
Qualify before the first assignment
A visit that goes wrong costs more than a registration that goes nowhere, so the gate sits before the first assignment, in this order:
- Email verification. Removes typos and throwaway addresses on day one.
- Profile photo. A shopper without a face is harder to trust with a client's branch, and the step itself drops people who were only curious.
- Qualification test. An entry ticket on the general rules: how to behave in the location, how to take photos, what a comment should contain. Set the pass mark at 100% and let the shopper retake it immediately; the aim is to make sure each one has read the rules, not to rank them. In Shopper-X the entry ticket is valid for 12 months, which is what makes the yearly cycle below work.
- Admin approval. Passing the test does not activate the account. Someone looks at the profile and approves. Two minutes per shopper, and it catches duplicate accounts and nonsense addresses.
- Contract. Signed once, online, with a PDF copy for the shopper. After signing, the identity fields on the profile lock, so the name on the contract and the name on the payment stay the same.
The order matters. Contract before test means collecting personal data from people who will never work for you.
Profile fields that make scheduling possible
Every field on the profile should answer a question the scheduler asks when assigning an audit. The ones that earn their place:
- Coverage area. Home city plus the areas the shopper will travel to. This turns 90 registrations into a map, and it is the field most agencies leave blank.
- Car and driving license. Needed for dealership visits, retail parks and any program that pays mileage. Record make, year and fuel too.
- Industries worked in. A former bank clerk is a strong shopper for a bank program and an unusable one for that bank's competitor.
- Relationships with brands. Employee, former employee, customer or non-customer of a given company. Use it to screen out staff and to pick users or non-users when the scenario calls for one.
These fields are only worth collecting if they are enforced. When a shopper applies to an ad, the server should check the working area, the client's restricted-shoppers list and the questionnaire's gates (age, car, license) and reject the application if any fails. The shopper management page describes how the profile, the gates and the ads fit together.
Why shoppers leave and the fix for each
Ask a shopper who stopped after two waves and the answer is usually one of four things.
Late or unpredictable pay. A shopper who does not know when the money arrives assumes it will not. Fix: a fixed payment period, typically one calendar month, closed on the same date every time, with an email to every shopper in the period stating what is being paid. The mechanics are in how to pay mystery shoppers.
Unclear briefs. Fix: instructions attached per question in the questionnaire, not in a PDF nobody opens on a phone. See how to brief mystery shoppers.
Reports returned without explanation. "Returned for corrections" with no remark is the fastest way to lose a careful shopper. Fix: a remark on the specific question that names the fix ("the price tag photo is blurred, please retake" rather than "evidence insufficient"). The shopper gets an Edit button, fixes that answer and re-submits.
Months without work. A shopper who registered in March and hears nothing until September has found something else. Fix: publish open audits as ads so idle shoppers can apply themselves, and turn on the ad notification for those who opted in. If a city has no work for a quarter, say so in one email.
Rating tiers as a retention tool
Good shoppers want to know they are good, and they want it to mean something. Each validated report is scored on four criteria: scenario (did they follow it), report (complete and readable), evidence (photos and documents) and timeliness. Default weights of 40, 30, 20 and 10 suit most programs and can be adjusted per questionnaire. The average over a shopper's validated reports feeds a tier: Bronze below 70, Silver from 70 to 90, Gold at 90 and above.
Two things make the tier matter. Gold shoppers are offered work first, so the rating decides who gets the assignment, not just who gets a badge. And the feedback goes to the shopper: a score with no explanation is a grade, while a short email from a template ("your evidence score was 60 because two of five photos were missing the storefront") is coaching. A Silver shopper who gets this email after each wave either reaches Gold or leaves, and both outcomes are fine.
Badges reward the people who are already Gold. An admin defines a rule such as "top 5 by average validator score in retail over the last 90 days"; the system awards it and re-awards it automatically as the window moves. It is what shoppers mention when they refer a friend.
Deactivate rather than delete
A shopper who has not worked for a year is not a shopper to delete. Their reports are part of the client's history, their scores part of your quality record, and many come back when an ad in their city appears. Deactivate, in bulk, everyone whose last report is older than twelve months, and keep a private note saying why. Notes are for the agency: "declined three offers in Q2, fee too low for the distance" stops the next scheduler from offering the same thing again.
Two more tools belong here. A restricted-shoppers list per client keeps one shopper away from one brand without touching their status elsewhere. And impersonating a shopper, logging in as them to see the inbox as they see it, settles most support questions in a minute.
The shopper list above is where the yearly cleanup happens: filter by last check and registration date, select, deactivate.
A yearly cycle
Recruitment works better as a season than as a constant trickle. One cycle that fits the 12-month validity of the entry ticket:
- Q1: recruit. Open registration in January, run ads where last year's coverage was thin, ask Gold shoppers for referrals.
- Q1 to Q4: run. Four or more waves, scores after each, feedback emails to anyone below Gold.
- Month 12: expire. Entry tickets expire. Shoppers re-take the test; re-sign the contract if the terms changed.
- Month 12: clean. Deactivate the silent accounts, note why, and compare the active count per city with next year's schedule. The gap is next Q1's recruitment target.
FAQ
How many shoppers per city?
At least two, and three where a client has more than one location in the city or the same location is shopped every wave. Work back from two constraints: no shopper visits the same location in consecutive waves, and none exceeds about four visits a month for one client.
Should the qualification test be paid?
No. The entry ticket checks that the shopper has read the rules, and paying for it attracts people who want the fee rather than the work. Pay for the first validated visit at the normal rate. If a client requires long scenario-specific training, pay for that as a reduced-fee training assignment, only to shoppers who already hold the entry ticket.
How do we stop staff recognizing shoppers?
Rotate by rule, not by memory. Cap visits per shopper per client per month, filter the shopper list by the customers a shopper has already reported for before assigning, and use the relationships field to keep out anyone who is or was an employee. Where a client has few locations, lengthen the gap to two waves and recruit a third shopper for that city.
Shopper-X runs the registration, the entry test, the profile gates, the ads and the rating tiers described here, so none of it needs a spreadsheet on the side.
Related reading
- Mystery shopper management: recruitment, training and the mobile app
- How to brief mystery shoppers
- How to pay mystery shoppers
If the pool in your schedule does not match the pool in your database, get in touch and we will walk through the arithmetic with your own numbers.