The Autonomous Agent That Drove +10% Revenue on FARM Rio's Collection Pages

Most e-commerce collection pages show the same product order to every visitor. High-converting items get buried below the fold. New arrivals never accumulate the impressions they need to prove themselves. Products with broken size grades keep prime real estate even though most visitors can't buy their size. And no merchandising team can keep up by hand across hundreds of collections, refreshed daily, split by region and device.
We've been running an autonomous agent that fixes this in production at FARM Rio for the last couple of months, tuned to their catalog and merchandising rules.
The trade-off in collection ordering
Every approach to ordering collection pages picks a side of the same trade-off: exploit what's already working, or explore what might work better. Static "best sellers" sorts pick exploitation. The early winners keep winning, the catalog stops exploring, new launches never get a fair shot, seasonal shifts arrive late. Manual curation can balance both, but it doesn't scale past a handful of collections.
Our PLP Optimization Agent takes the trade-off itself as the problem. It models each product's track record and the uncertainty around it, then ranks every collection in a way that lets well-observed winners keep their position while letting uncertain products earn theirs. Both halves run automatically, on data the store already produces.
Static or rule-based ordering
- Same order shown to every visitor
- Best sellers keep winning, new arrivals stay buried
- Products with broken size grades keep prime positions
- Seasonal turnover arrives late
- Manual curation does not scale past a few collections
Adaptive ordering by the agent
- Ordering recomputed on the cadence you choose, from real user behavior
- Confident winners ranked on their evidence
- New arrivals get calibrated exposure to gather data
- Stock availability and merchandising rules respected
- Hundreds of collections handled by one model
How the agent works
The agent runs an end-to-end loop. It reads user behavior events from your store's analytics, weighs them by purchase intent (click, add-to-cart, checkout, purchase), trains a ranking model on the most recent data, and writes a new ordering for every collection on a schedule. The ordering is pushed straight into your storefront. The cadence is yours to set: hourly, daily, or anything in between.
Every stage is exposed as a typed MCP tool: fetch_dataset, train_model, predict_ordering. The pipeline is invokable from any agent, workflow, or human operator. On top of the model, the prediction view lets your team stack saved criteria (stock, launches, visual merchandising rules) and push a new ordering live without touching code. Each run is logged, every ordering change is auditable, and any collection can be overridden manually.
Runs on your cadence
The full loop (fetch, train, predict, push) runs on the cadence chosen per brand: hourly, daily, or anything in between. Operators can also trigger runs on demand or set different cadences per collection.
Tuned per brand
Reward weights, visual merchandising rules (color palette, patterns, brand grouping), stock multipliers, and time-decay for new launches are scoped to your brand.
Real changes, not suggestions
Every run writes the new ordering straight to the storefront catalog. Products routinely move dozens of positions across a single run when stock or conversion signals shift, with each move auditable per product.
Full audit log
Every run records its input data window, the resulting product scores, and the ordering diff applied to each collection. Easy to inspect, easy to roll back.

Your team stays in the loop, if you want
The agent is fully autonomous and can run without any human intervention. But if your team wants to stay involved, every collection has a prediction view: the agent's ranking, with your own taxonomy exposed as toggles. Stock availability, this week's launches, prints, special occasions, beach-ready edits, any saved criterion your team has defined. Layer a criterion on, the ranking recomputes in place. Save a new set, reuse it on the next collection. Hit Apply and the new order goes live in VTEX in one click.
This is the part of the trade-off that pure ML misses. The model finds revenue. Your team brings the taste. The agent gives both a single surface.
In production
The agent has been running on FARM Rio's catalog for the last couple of months, with more than 1,000 ordering changes already pushed live across collections. A controlled A/B test against the platform's default sort confirmed two effects: an increase in add-to-cart rate on the PLP, and a +10% increase in revenue across key categories.

The same model handles seasonal turnover on its own. When a collection swaps over (new drops, sale events, end-of-season), the calibrated cold start gives the new items their fair shot. When traffic patterns shift across regions or devices, region-specific priors absorb it. No retuning required.
The pipeline, in four stages
Attribute and aggregate events
A query reduces raw user interaction events to one row per product. Each session is collapsed into binary event flags (impression, click, add-to-cart, checkout, purchase), then marginal counts and pairwise co-occurrences are aggregated across all sessions where the product was displayed.
Train the ranking model
The agent updates each product's performance estimate using the recent reward data. New products inherit a calibrated cold-start estimate from the site's own distribution, so they show up high enough to gather signal without dominating the page.
Predict ordering per collection
For every product in a requested collection, the system computes a score, sorts descending, and returns the new ordering. Inference takes about 22 milliseconds for a full collection. Region-specific scoring is applied when a region is provided.
Push to the storefront
Each run writes the new ordering to VTEX through the catalog API. Visual merchandising rules (color palette, pattern grouping, brand display criteria) are applied as a post-ranking pass before the push. The diff is stored, and any collection can be overridden manually.
What ships in the loop
Why this beats the usual alternatives
| Approach | Strength | Weakness |
|---|---|---|
| Manual curation | Full editorial control | Does not scale, slow to adapt, biased by recency |
| Best sellers sort | Simple to ship | Winner-take-all, no exploration, new arrivals stuck |
| A/B testing | Rigorous | Requires manual experiment design, slow to react |
| Greedy / collaborative filtering | Fast convergence | Local maxima, ignores uncertainty, cold-start unstable |
| PLP Optimization Agent | Automatic exploration, calibrated cold start, adapts as data accumulates | Requires an ML pipeline (which this agent ships with) |
Available for any store
Every catalog is different. We scope each implementation around your brand rules, merchandising criteria, and reward weights. The typical setup is a few weeks of work: analytics wiring check, data access, VTEX connector, baseline training, A/B test against your current sort. From there it runs on its own, with full audit and manual override available at any time.
Want this on your store?
Tell us about your catalog and we'll scope an implementation. The agent runs in production today and we can have a baseline trained against your data in a few weeks.






