Train one model that understands our users better than anyone else can.
Not a recommender bolted onto a catalog. A single large model that reads a user's whole commerce life and answers any question about it — built in three stages.
Pre-training
Rich user history, semantic IDs, cross-vertical and cross-company — all aligned with text. The base model is already useful on its own.
SFT
Instruction tuning turns the recommender into a general-purpose interface to the user's commerce graph — it can now follow prompts and write answers.
Post-training
RL, model gyms, simulations and synthetic data push it toward operator-grade behaviour that improves from live feedback.
A user's life, written as one document.
LCM treats everything a person does across our platforms as a single tokenised document: a persona, then a stream of orders, searches and browses — each written in semantic-ID tokens with tags like <bought> and <novel>.
Every product question is just a different blank to fill in this document — and the same model fills them all.
Items become short codes the model can reason over.
Each merchant and item is profiled, placed in an embedding space where similar things cluster, then compressed into a short multi-token code. The first token is a broad category; deeper tokens add finer distinctions.
Because they're tokens, an LLM trained on sequences of orders can predict the next one the same way it predicts the next word.
One document, many questions — the same model answers them all.
Predicting behavior
- Conversion
- Vertical propensity
- Churn risk
- Time to next order
Pricing & promotion
- Price propensity
- CPO budgeting
- Rescue offers
- Delivery-fee tolerance
Recommending
- Next-order recs
- Cold start
- Cross-sell
- First-time cart
Search & content
- Search prediction
- Substitutions
- Push copy
- Home ranking
It already works in production.
Last cycle we proved the bet with specialized task models built on LCM, not one model yet. They already power tens of millions of orders a month and move the metrics that matter. A single unified model was the goal from the start, and this cycle we make it practical.
Five moves toward the bet.
A base per ecosystem
Train the LCM Big Base per region (LatAm, India) rather than per company, so cross-company signal compounds inside each ecosystem.
A family of models
Distil sizes from 0.6B to 27B out of the base, and deploy the smallest model that fits each task.
Two self-improvement loops
An offline loop tunes the model and harness against fixed eval sets; an online loop feeds user feedback back into the base and triggers a redistill.
Beyond e-commerce, into agents
Move past search and CRM toward replacing the model behind every non-coding agent assistant on Prosus surfaces.
Open-source the stack
Publish the LCM training and self-improvement stack — our working improvement loops are the real differentiator.
One model. Seven moments in the app.
Pick a moment in a food-delivery app. The same LCM reads the same kind of sequence every time — only the question changes. The left is what the user sees; the right is what the model sees and predicts. Hit Run inference to play it.
Put LCM in front of your own AI.
Grab a skill, drop it into Claude, and start asking your own questions of the model and its data. Two doors, same room — pick the one that fits how you work.
Use the show-lcm-profile skill.
A skill that fetches an LCM profile from Databricks and renders it as a self-contained dashboard — for any user, merchant or item. You don't write SQL. You just ask.
Grab the skill
One click and you've got the bundle. You'll upload it in step 2.
Upload it
Hit the upload button to add the skill to your workspace. The file name becomes the skill ID — once it's there, every new conversation can use it.

Ask for a profile
Paste this prompt and run it. No ID needed — the skill picks a random user for you.
Show me an LCM user profile.
Want a specific one? Try "show me the merchant profile for merchant_id abc123" or "render an item profile for sku_id xyz".
What should happen
- The skill queries Databricks for a profile (random or by ID).
- It writes a single self-contained profile.html with charts, KPIs and a persona.
- It can deploy the page and hand you a live URL.
Stuck?
No profile appears: the skill needs the Ifood-Data MCP under the hood — if your workspace doesn't have it yet, switch to the Developer path for the setup screenshot.
Wrong language or persona: profiles are generated from Brazilian iFood data, so most narratives are in Portuguese. Ask the assistant to translate.
The page deploys but looks empty: ask for the merchant or item variant — user profiles need a valid account_id with data on file.
Go deeper
Try a side-by-side comparison of two users, or a merchant + its top items in one dashboard. The skill is happy to compose.
The full spec — including the three canonical HTML templates — lives in skills/show-lcm-profile/SKILL.md.
Use the lcm-profiles reference skill.
A documentation skill that loads the full schema of every LCM profile table into the assistant's context — so it writes correct Databricks SQL on the first try. You stay in control of the queries.
Grab the skill
Not the same one as the Business path — this is the reference skill that loads schemas, not the visualisation tool.
Upload it
Same upload flow as any other skill. The file name becomes the skill ID — once loaded, the assistant gains structured knowledge of all six LCM tables and their columns.

Set up the Ifood-Data MCP
Reference knowledge needs an execution channel. Add a new MCP server with the values below so the assistant can run execute_sql_read_only against Databricks.
- Name: ifood-data
- URL: https://ai-agent-gateway.ifoodcorp.com.br/mcp/databricks-ifood-sql
- Protocol: Streamable HTTP
- Approval policy: No approvals
- Authentication: OAuth — auth server https://ai-agent-gateway.ifoodcorp.com.br/, with Dynamic Client Registration (DCR) enabled

Ask a question that needs the schema
The skill auto-triggers on any LCM table question. Try this:
Using the lcm-profiles skill, pull the latest narrative for a random user from lcm.user_representations_silver.representations and summarise the top 3 segmentation signals.
For similarity work, try "find 5 merchants similar to merchant_id X using cosine similarity on the embeddings table."
What should happen
- The assistant picks the right table (silver vs gold vs embeddings) without you naming it.
- It writes valid SQL with Unity Catalog three-part names and correct struct access (e.g. model_output_sections.segmentation_signals).
- It filters embeddings with version.is_latest = true by default — no full-partition scans.
Tables at a glance
Users: lcm.user_representations_silver.representations (narrative) · lcm.user_representations.user_representations (enriched) · lcm.preference_embeddings.user_embeddings (vector).
Merchants: lcm.merchant_representations.merchant_representations (narrative) · lcm.preference_embeddings.merchant_embeddings (vector).
Items: lcm.semantic_embeddings.sku_embeddings (text + vector).
Go deeper
Pair this with show-lcm-profile to skip the SQL when you just want a visual, or with the vision deck for the design tokens and narrative behind the data.
The skill also includes similarity-search.md — a cosine-similarity SQL pattern with scope guidance for users and merchants.
The LCM Bootcamp, Amsterdam.
Five days, 15 to 19 June, with companies from across the ecosystem. We tell the story, hear from each company, build first representations together, and leave with a plan each company can run.
The first bootcamp.
This is the second LCM bootcamp. The first ran in November 2025 in Amsterdam, with Prosus companies from LATAM, Europe and Africa: use-case panels, hands-on building, and long days at AI House.