Portrait generation products advertise a time. Twenty minutes, an hour, next day. It is the number on the pricing page and it is rarely the number that determines whether people are happy.
The number that matters is the time to a usable result, and those differ by a lot.
The four intervals
Break the wait into pieces, because they have different fixes.
Upload to queue. Usually seconds, occasionally awful on mobile connections when someone uploads 15 photos at 8MP each. Resize client-side before upload. This is free and routinely skipped.
Queue to start. The invisible one. Under load this is most of the total, and it is also the one that varies most between a demo and a Tuesday afternoon. A product that is fast when you test it at 11pm may not be fast when 200 employees all start at 9am on rollout day.
Start to first output. The actual compute. Bounded by the model and the hardware, and the piece vendors quote.
First output to a usable one. The interval that goes unmeasured, and the one that decides satisfaction. If a run produces 100 images and 4 are usable, the honest latency is however long it took to find those 4, plus the time spent looking.
That last one is why "20 minutes" can feel slower than "an hour". A batch that returns 100 mediocre images in 20 minutes costs more human time than one that returns 30 good ones in 60.
What to measure instead
Keeper rate. Usable outputs divided by total outputs. It is the single most useful number for a headshot product and almost no vendor publishes it, us included.
Time to first keeper. Wall clock from upload to the first image someone would actually use.
Retry cost. If the first run misses, what does the second one cost in time and money? A product with a fast first run and an expensive retry can be slower in practice than a slow one that gets it right.
Concurrency is the part that bites at scale
For one person, queue time is noise. For a company rollout it is the whole experience, because everyone starts within the same hour after the same email.
Ask what happens under concurrent load, and ask for the shape rather than an average. p50 is comfortable and p95 is what your least patient colleague experiences, and that colleague is the one who will email you.
The comparisons
We publish turnaround comparisons against Aragon, HeadshotPro and InstaHeadshots.
The same caveat applies as to anyone's benchmarks including ours: they were run at a time we chose, on inputs we chose, and queue depth on the day is a real variable that no published figure captures. Use them for the method and the ordering of magnitude, then run your own on a weekday morning.
The measurement worth building
If you are integrating any of this, log four timestamps: upload complete, job queued, first output, first output the user actually downloaded. The gap between the last two is the number your users feel, and it is the one you will never get from a vendor's marketing page.
More from this series
- The checklist I use before sending employee faces to any third party
- How to read a vendor case study when you are the engineer who has to make it work
- Test any generation tool on the hardest face you can find, not the easiest
- Votre photo LinkedIn se joue à 48 pixels, et vous la regardez à 400 depuis des semaines
On BetterPic
Top comments (0)