CalculationAdvancedQuality, Cost & Token Economics / Latency budgets and UX tradeoffs / #13

What is the latency cost of adding a reranking step, and when is it worth it?

PICK · latency budgets and UX tradeoffs

Concordis Labs matched papers to reviewers with one merged pipeline, retrieval and reranking bolted together with a single on off switch. A fix for a slow search box quietly turned off the one step built to catch a real conflict of interest, and nobody noticed until an audit did.

The direct answer
Run the reranking step on every batch run that actually decides who reviews what. Skip it on any live, type as you go search box, where a fast approximate list beats a slower, better one nobody is waiting for. On Concordis's own numbers, a cross encoder rerank over the top 50 retrieved reviewers adds about 650 milliseconds and turns a conflict of interest catch rate of 70 percent into 97 percent, a trade a background batch job can easily absorb and a live search box cannot.
Do this, in order
  1. Run the reranker on every batch run that locks in a real assignment.Why: this is the one context where an added 650 milliseconds is a cost nobody is staring at.
  2. Keep reranking off the live, type as you go search box.Why: past a few hundred milliseconds a search box stops feeling like a search box, and admins quietly stop typing full queries into it.
  3. Give retrieval and reranking separate on off switches, never one merged toggle.Why: a single switch is exactly what let a fix for a slow search box also silently turn off the batch job's own conflict check.
  4. Track conflict of interest catch rate as the number that actually decides the call, not just top match accuracy.Why: a slightly off reviewer suggestion is a nuisance, a missed conflict is the hidden, expensive error the whole pick turns on.
  5. Audit a random sample of locked assignments before every deadline, not just once at launch.Why: the two missed conflicts in this story were invisible in every normal dashboard, an audit was the only thing that found them.
  6. Revisit the pick once a lighter reranker clears about 150 milliseconds.Why: below that bar there is no asymmetry left to protect, and the better answer should just run everywhere.

How to answer this, stage by stage

Nobody is testing whether you know reranking makes a result list better. They are testing whether you will price the exact moment its extra time stops being free, or just say "reranking helps, so use it" and stop there.

1
Scope it to one pipeline and one owner before answering in the abstract
Say it like this
"Let's ground this in one product. Concordis matches submitted papers to reviewers for academic conferences. Reidar Kvale is the engineer who owns the matching pipeline end to end, from the first retrieval pass to the reviewer list a program chair finally locks in."
Why this works
A general question about reranking turns into a debate about search architecture fast. One product turns it into a real problem with real milliseconds attached.
2
Position: name the pick before any of the reasoning
Say it like this
"I'd run the reranker on every batch run that decides who reviews what. I'd skip it on the live search box a chair types into, where a fast, roughly right list beats a slower, better one nobody is waiting around for."
Why this works
Naming the pick first, split by context, in one breath, stops this sounding like "reranking is good" or "reranking is slow," which are both true and neither is an answer.
3
Impact: say who actually feels each kind of cost
Say it like this
"An admin searching by hand feels a slow search box right away, every single time they type. The program committee feels the other cost weeks later, quietly, when a reviewer who should have recused themselves turns in a review nobody double checks."
Why this works
Splitting the cost by who actually notices it turns "reranking adds latency" from a vague complaint into a real tradeoff with two named people on either side.
4
Cost asymmetry: say which error is cheap and which is hidden
Say it like this
"A slow search box is the cheap, visible error. Everyone feels it, and somebody complains within the hour. A missed conflict of interest is the hidden, expensive one, it looks exactly like a normal accepted match in every dashboard Concordis has, right up until an audit or a rebuttal digs it up."
Why this works
This is the heart of PICK. If both sides of a tradeoff cost the same, the real asymmetry has not been found yet, and this is where it gets found.
5
Prove it with the audit, compressed to four sentences
Say it like this
"Two weeks before reviews were due, the conference's integrity chair pulled twenty five locked assignments at random. Two of them were advisor and student pairs, both ranked highly because their bios shared the same handful of keywords. Reranking had been switched off system wide months earlier to fix a slow search box, and it took the batch pipeline's own conflict check down with it. That's what a merged switch actually costs."
Why this works
Shows the cost is not hypothetical. It is exactly what happens once two contexts that need different answers get forced to share one setting.
6
Kill criteria: say what would flip the pick
Say it like this
"If a lighter reranker ever gets that top fifty pass under about 150 milliseconds, I'd run it live too, no exceptions. There's no tradeoff left to protect once both paths are fast."
Why this works
A pick that cannot say what would change it is not really a decision. It is a preference wearing a decision's clothes.
7
Close on the rule, not the last number crunched
Say it like this
"So: reranker on for every batch run that locks in a real assignment, reranker off for the search box people are staring at, and the two never share a single switch again."
Why this works
Ending on the rule keeps this sounding like judgment, not a latency chart read out loud.

Let's learn

Concordis reads a submitted paper and suggests which reviewers on a conference's list are actually qualified, and free of any conflict, to review it.

Before Concordis added a reranking step, matching ran on retrieval alone. It turned each paper into one number pattern called an embedding, compared that pattern against a similar pattern for every reviewer's bio, and returned the fifty closest matches in about 38 milliseconds. Fast enough that a chair typing a search barely noticed it happening at all.

Hand sketched flow diagram, four rounded boxes in a row connected by short lines. Paper comes in, then Retrieval 38 milliseconds, then Reranking plus 650 milliseconds highlighted in red, then Assignment locked.
Two stages, two very different clocks. Retrieval barely registers. Reranking is where all the extra time lives.
Knowledge spark: what does a reranker actually do? Retrieval turns a paper and a reviewer into two number patterns and checks how close they sit. A reranker reads the actual paper text against one candidate reviewer's actual bio, together, one pair at a time, before putting the list back in order. That joint read is slower, and it catches things a shared number pattern quietly averages away.

With reranking added, that same fifty name list gets read a second time, this time pairing the paper's real text against each candidate's actual bio and declared conflicts, before it is reordered. That second pass adds about 650 milliseconds on a normal day, and closer to 900 under load. On a background batch run that assigns thousands of papers overnight, nobody notices. Typed into the chair's live search box, it turns an instant list into one that visibly hangs.

The cost, by the numbers: latency added, retrieval alone vs plus reranking
1000ms 500ms 0 p50 p95 38ms 688ms 95ms 990ms
Retrieval alonePlus reranking
Retrieval alone barely leaves the floor at either percentile. Adding reranking pushes a typical match past half a second, and the worst case past a full second. In a batch job that is invisible. In a search box, it is not.

Here is the part that matters: those extra 650 milliseconds were never the problem. What the team did about them was. Faced with a search box that suddenly felt slow, they had exactly one switch to flip, because retrieval and reranking had been built as a single merged step from day one. So they flipped it. Off. Everywhere. Including the overnight batch run that actually decides who reviews what.

We did not lose speed. We lost the one checkpoint built to catch a reviewer who should never have been in the room.
Hand sketched comparison. Left panel, a small calm gauge icon labeled slow search box, caption admin notices in one second, just types again. A hand lettered VS sits between the two panels. Right panel, a pink question mark box labeled missed conflict of interest, caption looks like a normal match, found weeks later, or never.
A slow search box costs a second and gets noticed instantly. A missed conflict costs nothing to notice, right up until someone goes looking.

At its worst, this does not fail loud. Because retrieval and reranking shared one switch, a plain fix for a search box that "felt broken" also switched off the exact step trained to catch a reviewer sharing a recent advisor with a paper's author. Not because anyone decided conflicts stopped mattering. Because nobody built a way to turn the reranker off in one room without turning it off in the other.

The decision that mattered Once the audit showed reranking's absence had let two real conflicts through, Concordis split retrieval and reranking into two separately switchable stages. Reranking now stays always on for every batch run and stays off for the live search box, and the two settings can never again be forced to move together.

The choice I would take back: in Concordis's very first release, built for a forty reviewer pilot workshop, retrieval and reranking ran as one pass because splitting them was not worth the extra code for such a small pool. Nobody revisited that decision once the product grew into conferences a hundred times the size.

What I'd leave alone: the very first filter Concordis runs, before retrieval even starts, a plain rule that drops any reviewer who marked a subfield "not interested." It is a yes or no fact sitting right there in the reviewer's own profile, not a close call, and reranking would only spend 650 milliseconds confirming what the rule already knows for free.

The lesson: a slow step is not a mistake by itself. Wiring it to only one switch is. The reranker was always right to exist. It just needed its own light switch, in the one room that actually needed it, instead of sharing a breaker with a room that did not.

Now here is the same thing as a story

The short version is above. Read the long version below for why one spot check, two weeks before a deadline, changed how Concordis decides which switch controls what.

Reidar Kvale built Concordis's very first matching pass himself, for a forty reviewer pilot workshop where the whole reviewer list fit on one screen. He knew exactly why every part of that first pipeline existed, because he had written each part to solve one specific complaint from that workshop's own organizers.

The next two years went well. Concordis grew from that one workshop into conferences with hundreds, then thousands of submissions, and every cycle, a chair could type a rough description of a paper into the dashboard's search box and watch a ranked reviewer list appear almost as fast as they could read it. Leadership pointed to Concordis in every renewal conversation. Reidar kept the pipeline exactly as he had first built it, retrieval and reranking running together as one pass, because nothing had ever given him a reason to pull them apart.

Then Concordis signed its first conference with more than three thousand submissions, and the reviewer pool grew past twelve hundred people to match. The habit thinned in three small beats nobody flagged at the time: the live search box started taking most of a second to answer instead of a blink, a few admins started scrolling the alphabetical reviewer list by hand for quick fixes instead of typing a real query, and Reidar, watching a dashboard full of complaints about "the search feeling broken," reached for the only switch the pipeline had and turned reranking off, for everyone, calling it temporary.

Concordis was never wrong about being slow. It was wrong about only having one dial for two very different rooms.
Hand sketched numbered list with three rows. Row one, a document icon, twenty five locked assignments pulled at random. Row two, a scale icon, twenty three reviewers, no real conflict. Row three, a pink question mark icon, two advisor student pairs, never flagged.
Nikoline Aasen's spot check, two weeks before reviews were due. Twenty three assignments were fine. Two were not, and nothing in Concordis had said so.

The trigger was small. Nikoline Aasen, the conference's integrity chair, pulled twenty five locked assignments at random, a routine check she ran before every deadline. Twenty three looked exactly right. Two did not. Both were papers assigned to a reviewer who shared a recent advisor with one of the authors, the kind of conflict a plain retrieval match cannot tell apart from genuine expertise, because both a real expert and a former advisor use almost the same words in their bio.

Nikoline sent Reidar a short message with both paper IDs and one question: "how did these two get past the conflict check?" Reidar spent an afternoon tracing it and found the real answer sitting in a changelog from four months earlier, a one line entry that said "reranking off, search feels slow, revisit later." Nobody had revisited it. The reranker that would have read those two reviewers' bios against the actual author list, and caught the shared advisor in plain text, had simply never been asked.

The real cost was never the extra 650 milliseconds. It was that for four months, every single locked assignment at every conference running on Concordis went out with no reranking check at all, and on exactly the audit that mattered, two of them turned out to be wrong.

Hand sketched comparison. Left panel, a pink scale icon labeled before, one merged switch, caption two of twenty five conflicts missed. A hand lettered VS sits between the two panels. Right panel, a green scale icon labeled after, reranking always on for batch runs, caption zero of twenty five conflicts missed.
Same spot check, rerun after the fix. Splitting the switch did not slow the batch run down. It just gave the search box its own setting.

The decision Reidar would take back happened two years earlier, in the week he shipped that first pilot pipeline. "It's one product, it should have one setting," he told himself, and for a forty person pool that was true enough to never get questioned. Nobody in that room asked what happens once the pool passes a thousand people and two very different kinds of users are staring at the same switch.

Run that spot check again with the fix in place: reranking stays on for every batch run, no matter how the search box is behaving that week, and the search box gets its own fast, retrieval only path that never touches the reranker at all. Nikoline's next spot check, twenty five more assignments pulled at random the following cycle, comes back clean. Zero conflicts missed, and nobody has to send a quiet email to two authors explaining a reviewer swap two weeks before their deadline.

One pipeline made reranking a single breaker for the whole house. The other gave it its own switch, in the one room that actually needed it.

What I would tell myself in that first pilot week: "one setting" is not simpler, it is just a decision you have not been asked to make twice yet.

PICK, so the decision holds up under questions

This is not a speed versus quality question wearing a technical costume. PICK is what keeps "the fast path felt right" a real, defensible decision instead of a guess that happened to work.

PPosition. What's the actual call, stated before any reasoning?
Run the reranker on every batch run that locks in a real assignment. Skip it on the live search box. The batch run has minutes to spare and nobody watching. The search box has neither.
State the position first, or the reasoning that follows sounds like a search for whatever pick was already assumed.
IImpact. Who feels each kind of cost, and in what units?
An admin feels a slow search box as roughly a second of waiting, every single time they type, and they notice it right away. A program committee feels the other cost weeks later, sometimes never, when a review comes back from someone who should have recused themselves.
Naming who feels which cost turns "reranking is slower" into a real tradeoff instead of a guess about whether users will mind.
CCost asymmetry. Which error is cheap, and which is hidden?
A slow search box is the cheap, visible error. It shows up instantly and someone complains within the hour. A missed conflict of interest is the hidden, expensive one, since it looks exactly like a normal accepted assignment in every metric Concordis has. Optimize against the hidden one, not the one that is already easy to see.
This is the hardest step, and the one most answers skip. If both sides of a tradeoff cost the same, the asymmetry has not actually been found yet.
KKill criteria. What evidence would flip the pick?
A reranker fast enough to clear about 150 milliseconds on the top fifty candidates, at real conference load, not just in a quiet test run. Below that bar, its extra accuracy never gets read in a search box because it never gets seen in time.
A pick that cannot say what would change it is not really a pick, it is a preference dressed up as a decision.
The kill line, charted: reranker latency across model iterations, against the live search threshold
700ms 350ms 0 Today Distilled v2 Late interaction v3 Target v4 150ms, safe to run live too
Where the reranker sits todayWhere the roadmap is aiming
Today's reranker adds about 650 milliseconds, well above the line. Each planned model swap trims it, and the fourth one is the first to actually cross the 150 millisecond mark. Until it does, the split stands.

Two things worth stating directly, since this is where the real judgment sits. The alternative Reidar's team considered and dropped was widening the retrieval stage itself, moving from the top 50 candidates to the top 200, using the same embedding model, instead of adding a separate reranking pass. It lost because retrieval scores a paper and a reviewer as two single number patterns, and widening the list just offers more of the same kind of match. On Concordis's own 400 example set of hand labeled conflicts, going from top 50 to top 200 moved the catch rate from 70 percent to about 74 percent. Adding a cross encoder rerank over just the original top 50 moved it to 97 percent. More retrieval was not the mechanism, reading the paper and the reviewer together was. The AI specific failure worth naming by name is silent drift: as reviewer pools grow and new subfields show up that did not exist when the embedding model was trained, retrieval alone quietly starts favoring reviewers whose bios share vocabulary with a paper rather than reviewers who are actually the right fit or actually conflict free, with no error message anywhere. The guardrail is that same 400 example hand labeled set, rerun before every conference cycle, so a drop in catch rate gets caught by a scheduled check instead of by whichever integrity chair happens to go looking.

And if you want to be sure it really works, try it somewhere else

Same four letters, a customs manifest instead of a paper abstract, and this time the hidden cost is not a review nobody double checks, it is a shipment that clears a checkpoint it should never have passed.

Wharfline is a routing tool a mid size customs brokerage built for assigning incoming cargo shipments to specialized inspectors. A shipment's manifest, the goods it carries, its origin, its customs code, gets matched to the inspector actually certified to clear it. Junio Ferraz runs inspection operations at the port where Wharfline's first large build shipped. The brokerage handles about 900 shipments a day. Retrieval matches a manifest to inspector specialty profiles in about 30 milliseconds, fast enough to sit inside the queue view officers glance at all shift. Reranking cross checks the exact goods description against each inspector's actual certification history, catching things like a hazardous materials endorsement that lapsed last month, and adds close to 500 milliseconds per shipment.

Hand sketched flow diagram, five rounded boxes in a row connected by short lines. Manifest scanned, then Retrieval 30 milliseconds, then Skip filter, then Reranking plus 500 milliseconds highlighted in blue, then Inspector assigned.
Wharfline's pipeline has one box Concordis never needed, a filter that skips reranking entirely for shipments too small to inspect at all.
The decision Junio's team would take back Wharfline originally reranked every single shipment in the queue, including small parcels sitting under the customs value that ever gets a full inspection at all, because building a separate skip rule felt like extra work early on. That held fine at 200 shipments a day. It broke once volume passed 800 a day, when the reranker was spending most of its daily compute re checking parcels nobody was ever going to send an inspector for, and the shipments that actually needed a certified inspector started queueing behind them.

Same rank as before, a different lever: for Concordis, the hidden cost was a review nobody double checked. For Wharfline, it is a regulated shipment cleared by an inspector who was never certified to catch what is actually inside it. The fix is not a live versus batch split this time, since nothing about a shipment gets typed into a search box mid thought. It is a volume filter ahead of the reranker, skipping reranking entirely for shipments that never reach the certification sensitive tier, so the reranker's time gets spent only where a miss actually matters.

Swap the trigger and it still runs.
Speed: an interviewer caps you at ninety seconds. Skip straight to it, rerank the moment a real decision gets locked in, skip it on anything that is just a person looking something up, and never let a fast guess through unchecked on the cases where being wrong actually costs someone.
Cost: there is budget this quarter for either a faster reranker or a wider retrieval candidate pool, not both. The faster reranker wins for Wharfline specifically, because a wrongly cleared regulated shipment costs far more than a slightly wider net of candidate inspectors ever would.
The model got better, for real: say the reranker's latency gets cut in half next year. Real progress, and it narrows the gap. It does not remove the need for the volume filter, since a fast reranker still burns real compute on parcels nobody was ever going to send an inspector for.

Where people run it wrong.
They treat "reranking is more accurate" as reason enough to run it everywhere, without asking who is actually waiting on the answer.
They fix a slow interactive surface by turning reranking off system wide, taking the batch decision's own accuracy down with it.
They size the reranker's compute budget once, at launch volume, and never revisit it once real usage multiplies past that.

How to use it live. Say the real question out loud before naming a stage: "before I answer, is this the moment a real decision gets locked in, or a moment someone is just looking something up." That one question decides whether reranking's extra time is free or expensive.

Flashcards (tap any card to flip it)

1 · THE FRAMEWORK
What framework is this, and what's its one job?
Tap to flip
ANSWER
PICK: commit to a position, then show the asymmetry between the two kinds of error. Built for tradeoff questions like fast versus slow, not a full flip story.
2 · THE PERSON
Who is this answer about?
Tap to flip
ANSWER
Reidar Kvale, the engineer who owns Concordis's matching pipeline end to end, and built its very first retrieval only version himself.
3 · THE QUIET HABIT
What did Reidar's team keep doing that felt safe at launch?
Tap to flip
ANSWER
Running retrieval and reranking as one merged pass with a single on off switch, because splitting them was not worth the extra code for a forty reviewer pilot workshop.
4 · THE POSITION
What's the actual position this answer takes?
Tap to flip
ANSWER
Run the reranker on every batch assignment run. Skip it on the live search box. A better answer nobody is waiting for is not actually better where someone is watching a spinner.
5 · THE OLD DECISION
What decision would Reidar take back?
Tap to flip
ANSWER
Building reranking as one merged step sharing a single switch with retrieval, so fixing a slow search box also silently turned off the batch job's own conflict check.
6 · THE NUMBER
Fill in the blank: adding the reranking step cut the missed conflict of interest rate from ___ percent down to ___ percent.
Tap to flip
ANSWER
From about 30 percent missed, 70 percent caught, down to about 3 percent missed, 97 percent caught. The reranker was never slow for no reason, it was reading the actual conflict text instead of averaging it into one shared number.
7 · THE REPLAY
Same spot check, new design, what changes?
Tap to flip
ANSWER
Reranking gets its own switch, always on for batch runs. Nikoline's next twenty five assignment spot check turns up zero missed conflicts instead of two, and nobody has to quietly reassign a reviewer two weeks before the deadline.
8 · CROSS-PRODUCT TRANSFER
Section 4 answers this same question again for a different product. Which product, and what's the hidden cost there?
Tap to flip
ANSWER
Wharfline, which matches cargo shipments to customs inspectors. There, a wrong fast match does not just misread a bio, it can clear a regulated shipment past an inspector who was never certified to catch what is actually inside it.

Check yourself Score: 0 / 0

Multiple choice
1. Why does adding a reranking step to Concordis cost about 650 extra milliseconds compared to retrieval alone?
  • A. The reranker calls a second, separate database that retrieval never touches.
  • B. A cross encoder reads the actual paper text jointly against each of the fifty candidate reviewers' text, one pair at a time, instead of comparing two pre made number patterns.
  • C. The reranker has to download a bigger model over the network before it can run.
  • D. Retrieval has to run twice when reranking is turned on.
Show hint
Look at the knowledge spark in Section 1.
Show answer
B. Retrieval compares two single number patterns. Reranking reads a specific paper and a specific reviewer together, which is the slower, more expensive read, and also the more accurate one.
True or false
2. True or false: the drop in conflict of interest catch rate happened because the reranker itself got worse at its job.
  • True
  • False
Show hint
Look at what Reidar found in the changelog.
Show answer
False. Nothing about the reranker got worse. It was switched off entirely, system wide, to fix a slow search box, so it never got the chance to catch anything at all.
Fill in the blank
3. Fill in the blank: reranking adds about ___ milliseconds to a typical match, which is fine hidden inside an overnight batch run but turns an instant search box into one that visibly hangs.
Show hint
Look at the first chart in Section 1.
Show answer
About 650 milliseconds. That is the added cost at a typical load. Under load it climbs closer to 900, but 650 is the number the whole tradeoff turns on.
Short answer, where it wouldn't matter
4. Name a place inside Concordis itself where adding the reranker would NOT be worth its added latency.
Show hint
Look at "what I'd leave alone" in Section 1.
Show answer
Model answer: The very first filter that drops reviewers who marked a subfield "not interested." That is a plain yes or no fact the system already has, reranking would only spend 650 milliseconds confirming it.
Short answer, apply it yourself
5. Pick an AI product you use that returns a ranked list of results. Name one place in it where a slower, better ordered list would actually be worth the wait, and one place in the same product where it would not.
Show hint
Think of a product with both a live search box and a background digest or report.
Show answer
Model answer: A job site's weekly "best matches for you" email is worth reranking carefully, nobody is watching a spinner for an email. The same site's live search box, typed while someone is actively looking, is not, a slow box just gets abandoned mid search.
Multiple choice
6. The conference doubles in size, to about 7,600 submissions, and keeps the same overnight batch window. Is that alone a reason to drop reranking from the batch run to save time?
  • A. Yes, doubling submissions always doubles total batch time enough to break the window.
  • B. No, reranking's per paper cost stays the same and a batch job can process papers in parallel across workers, a bigger pool changes total volume, not whether any single paper's 650 millisecond rerank pass is affordable in a background job nobody is watching.
  • C. Yes, reranking's latency grows exponentially as the reviewer pool grows.
  • D. No, because reranking automatically gets faster once there is more data to train on.
Show hint
Reread the kill criteria stage and the note under the first chart.
Show answer
B. The batch context is exactly the one where extra volume can be absorbed with more parallel workers. Reranking's per paper cost never changes, only how many workers you point at it.
Before you close the answer
Why this works
Tests whether you will actually price which error is cheap and which is hidden, or just say "reranking is more accurate, so use it" and stop there. Most candidates never get past the idea that slower automatically means better.
Follow-up traps
"Couldn't you just make the reranker itself faster instead of splitting it by context?" Response: that is exactly the kill criteria. Once a lighter reranker clears about 150 milliseconds, run it everywhere and the split disappears on its own.

"Isn't skipping reranking on live search just choosing speed over safety?" Response: no, because the live search box is not the moment a real assignment gets locked in, it is a lookup tool. The actual assignment always goes through the reranked batch run before anything is final.
If pressed
The fix was not a second model bolted on top. It was a single boolean flag read at the start of the matching job, so splitting retrieval from reranking into two switchable stages cost about a day of engineering work, not a rebuilt pipeline.
From U2xAI Academy

From answering questions to owning outcomes.

A live workshop where you ship a working AI agent, defend a launch decision, and walk away with a portfolio recruiters can't wave off, not just more questions to study.

  • A live AI agent you actually shipped
  • A launch decision you can defend under pressure
  • An interview-ready portfolio, not more flashcards
Know more