Analysis brokers already deal with actual data work at this time. Groups delegate aggressive mapping, due diligence, and literature evaluation to them. Nevertheless, most benchmarks check a single reply, not giant evidence-backed collections. Perplexity targets that hole with a brand new open benchmark.
Perplexity launched WANDR (Broad ANd Deep Analysis). It’s an open benchmark and analysis harness. It’s constructed round 500 real looking, difficult data-collection duties for data work. WANDR is the large sibling of Perplexity’s DRACO benchmark for deep analysis. DRACO asks whether or not an agent produces an correct, full, goal long-form report. WANDR as an alternative asks whether or not it could actually construct a big assortment with proof.
What’s WANDR
At its core, WANDR exams two calls for collectively. Broad means discovering a big, typically open-ended set of qualifying entities. Deep means investigating each entity sufficient to help every declare with proof. Combining each modifications the issue for brokers. A number of compelling examples aren’t sufficient right here. A elegant narrative constructed on incomplete analysis additionally falls quick.
To seize this, WANDR makes use of a composable qualification key hierarchy. One job may request firm(n) -> worker(m) -> url(okay). This implies n qualifying firms, m staff every, and okay supporting pages every. Each full path by means of the tree will get validated independently. The identical construction can characterize a flat checklist, nested search, or matrix.
A Concrete Process Instance
To floor that hierarchy, think about the launched ceo_cfo_appointments job. It asks for a minimum of 70 US-based firms. Every should have a CEO or CFO appointment first introduced between March 1 and April 30, 2026. For every, the agent provides one authoritative appointment web page. A subtask provides a listing-authority web page per firm. Collectively, the duty requires 140 source-backed data.
Concretely, the 2 hierarchies and one submitted document seem like this:
# Process hierarchies
firm(70) -> company_appointee(1) -> url(1) # 70 appointment data
firm(70) -> url(1) # 70 itemizing data
# One document the grader re-fetches and re-checks (values are illustrative)
{
"merchandise": "Instance Corp - new CFO",
"url": "https://issuer.instance.com/press/cfo-appointment",
"excerpts": ["Example Corp today named Jane Doe as Chief Financial Officer, effective April 2026."],
"reply": "Jane Doe appointed CFO; introduced April 2026"
}
Lifelike Duties, Generated At Scale
Past single examples, WANDR builds its duties from actual utilization. It begins from de-identified patterns seen in manufacturing, not artificial prompts. A semi-automated pipeline then turns these patterns into duties. The pipeline runs 4 phases: seeding, authoring, admission, and curation. It makes use of an interleaved author-critic loop with mechanical linting.
Consequently, the median job asks for 50 members and 245 data general. Throughout all 500 duties, WANDR requires 170,495 source-backed data. Duties break up into 167 decrease, 166 center, and 167 larger issue. Issue is determined by per-record work, not scale alone.
How WANDR Grades Brokers
Not like mounted reply keys, WANDR grades every declare in opposition to cited proof. Each document comprises an merchandise, URL, chosen excerpts, and reply. The grader re-fetches the web page throughout analysis. It checks whether or not the web page is usable and in scope. It then verifies the excerpts actually seem and help each requirement.
These binary document verdicts then roll up by means of the hierarchy. Precision measures the standard of what a system submitted. Recall measures quality-adjusted completion, filling any shortfall with zeros. Gentle scores give partial credit score to incomplete members. Laborious scores rely solely members whose full subtree is right.
The Benchmark Outcomes
Utilizing that methodology, Perplexity ran six manufacturing programs on all 500 duties. Its personal Search as Code (SaC) system leads. Nonetheless, no system comes near fixing the benchmark.
| System | Gentle F1 | Laborious F1 | Notes |
|---|---|---|---|
| Perplexity (Search as Code) | 0.363 | 0.133 | $5.20/job, 14.9-min median, 3.82M tokens/job |
| Anthropic | 0.249 | 0.072 | Closest on high quality, however extra time, cash, tokens |
| Others (finest) | 0.121 | 0.035 | OpenAI, Exa sooner and cheaper, however decrease scores |
With extra effort, Perplexity reaches 0.447 delicate F1 on the xhigh setting. Price throughout settings spans greater than 4 orders of magnitude. It ranges from $0.03 per job as much as $324.83 per job.
Past the leaderboard, 4 findings stand out. First, partial progress is frequent, however full protection just isn’t. Each system exhibits delicate recall under delicate precision. Second, scale compounds the issue sharply. Deeper hierarchies damage most, since every department provides a failure level. Third, discovery is the primary structural bottleneck. Prime-level discovery completion ranges from 0.611 to 0.951 throughout programs. Below-delivery, not duplicate merging, explains most lacking quantity. Fourth, discovering a usable web page is normally straightforward. Turning it into full proof is the laborious half. For Perplexity, 41.4% of pages miss a substantive requirement. Additionally, 57.5% of excerpts fail to help the complete declare. Its delicate F1 falls from 0.531 underneath a retrieval-only test to 0.363 underneath the complete verdict.
Notably, Search as Code suits this job form properly. An agent can specific retrieval, filtering, fan-out, joins, deduplication, and stopping logic as a program. Deterministic compute then handles repeated operations exterior the mannequin context.
perform el(t,a){var e=doc.createElementNS(NS,t);for(var okay in a)e.setAttribute(okay,a[k]);return e;}
perform construct(){
svg.innerHTML=”;
var cfg=CFG[effort];
var rootX=260, rootY=26;
// root
var edges=el(‘g’,{}); svg.appendChild(edges);
var g=el(‘g’,{}); svg.appendChild(g);
var root=el(‘g’,{class:’node’});
root.appendChild(el(‘rect’,{x:rootX-58,y:rootY-14,width:116,peak:28,rx:7,fill:’#1e1e1e’,stroke:’#ff6a00′,’stroke-width’:1.4}));
var rt=el(‘textual content’,{x:rootX,y:rootY+4,fill:’#ff8a33′,’font-size’:11,’text-anchor’:’center’,’font-weight’:700}); rt.textContent=”TASK · firm(6)”; root.appendChild(rt);
g.appendChild(root);
nodes={root:root, comp:[], leaf:[]};
var n=cfg.goal, unfold=470, startX=rootX-spread/2, dx=unfold/(n-1), y1=140, y2=250;
for(var i=0;i
var e1=el(‘line’,{class:’edge’,x1:rootX,y1:rootY+14,x2:cx,y2:y1-16}); edges.appendChild(e1);
var cg=el(‘g’,{class:’node’});
var col= lacking?’#3a3a3a’:’#ff6a00′;
cg.appendChild(el(‘circle’,{cx:cx,cy:y1,r:13,fill:’#181818′,stroke:col,’stroke-width’:1.6}));
var ct=el(‘textual content’,{x:cx,y:y1+3,fill:lacking?’#666′:’#fff’,’font-size’:9,’text-anchor’:’center’}); ct.textContent=”C”+(i+1); cg.appendChild(ct);
g.appendChild(cg);
// enrichment leaf (appointee -> url)
var e2=el(‘line’,{class:’edge’,x1:cx,y1:y1+13,x2:cx,y2:y2-11}); edges.appendChild(e2);
var lg=el(‘g’,{class:’node’});
lg.appendChild(el(‘rect’,{x:cx-9,y:y2-9,width:18,peak:18,rx:4,fill:’#181818′,stroke:’#3a3a3a’,’stroke-width’:1.4}));
g.appendChild(lg);
nodes.comp.push({g:cg,e:e1,lacking:lacking,x:cx,y:y1});
nodes.leaf.push({g:lg,e:e2,lacking:lacking,x:cx,y:y2,field:lg.firstChild});
}
// stage labels
svg.appendChild(txt(14,y1+4,’WIDE’));
svg.appendChild(txt(14,y2+4,’DEEP’));
state={discovered:cfg.discovered,deepOk:cfg.deepOk,ev:cfg.evVerify,goal:cfg.goal};
}
perform txt(x,y,s){var t=el(‘textual content’,{x:x,y:y,class:’lbl’,’font-weight’:700});t.textContent=s;return t;}
perform reset(){
b1.disabled=false;b2.disabled=true;b3.disabled=true;
construct();
section.textContent=”Prepared”;
notice.innerHTML=’Process: discover firms → a CEO/CFO appointee → one proof URL every. Press Uncover to start.’;
setBars(0,0,0,0);
resize();
}
perform present(node,d){ setTimeout(perform(){ node.classList.add(‘present’); resize(); }, d); }
perform uncover(){
b1.disabled=true;
section.textContent=”Broad · Discovery”;
notice.innerHTML=’The agent discovers qualifying firms. It discovered ‘+state.discovered+’ of ‘+state.goal+’ targets. Below-delivery right here caps recall later.’;
present(nodes.root,0);
nodes.comp.forEach(perform(c,i){
if(!c.lacking){ present(c.e,120+i*120); present(c.g,120+i*120); }
});
setTimeout(perform(){ b2.disabled=false; },120+state.discovered*120+150);
}
perform enrich(){
b2.disabled=true;
section.textContent=”Deep · Enrichment”;
notice.innerHTML=’For every firm, the agent attaches an appointee and an proof URL. Deep paths constructed: ‘+state.deepOk+’.’;
var proven=0;
nodes.leaf.forEach(perform(l,i){
if(!l.lacking && i
+’Gentle provides partial credit score; Laborious wants the complete subtree right — notice the drop.’;
setBars(precision,recall,softF1,hardF1);
}, constructed*260+120);
}
perform setBars(p,r,s,h){
put(‘pv’,’pb’,p); put(‘rv’,’rb’,r); put(‘sv’,’sb’,s); put(‘hv’,’hb’,h); resize();
}
perform put(vid,bid,val){
doc.getElementById(vid).textContent=val.toFixed(2);
doc.getElementById(bid).type.width=Math.min(100,val*100)+’%’;
}
// effort segmented management
doc.getElementById(‘seg’).addEventListener(‘click on’,perform(e){
if(e.goal.tagName!==’BUTTON’)return;
[].forEach.name(this.youngsters,perform(b){b.classList.take away(‘on’)});
e.goal.classList.add(‘on’); effort=e.goal.getAttribute(‘data-e’); reset();
});
b1.onclick=uncover; b2.onclick=enrich; b3.onclick=grade; br.onclick=reset;
// auto-resize for WordPress iframe embedding (part’s personal offsetHeight)
perform resize(){
var h=doc.getElementById(‘mtp-wandr’).offsetHeight+40;
strive{ mum or dad.postMessage({mtpWandrHeight:h},’*’); }catch(e){}
}
window.addEventListener(‘load’,perform(){ reset(); setTimeout(resize,120); });
window.addEventListener(‘resize’,resize);
})();
