Finance ops · Production

Ramp AI agent autonomously fixes merchant classifications in under 10 seconds

The problem

Incorrect merchant classifications frustrated Ramp customers, and the manual process of fixing them — handled by customer support, finance, and engineering teams — took hours per request and could not scale as Ramp grew.

Workflow diagram · grounded in source
1
User submits correction request
trigger
“Ramp users are able to go to a transaction and request a merchant classification to be fixed by providing a new merchant name, website, and category”
2
LLM builds request context
ai_action
“The LLM uses three parts of its context to guide this decision: Transaction card acceptor name and MCC. Extracted merchant names, addresses, and line items from related receipt images. User-provided memos for related transactions.”
3
RAG retrieves related merchants
ai_action
“we use a RAG approach to fetch K related merchants... We pull merchants that are similar to the transaction using vector embedding similarity and merchants whose names roughly match the requested merchant name”
4
LLM selects resolution action
ai_action
“If a request is reasonable, the LLM must choose an action: ➕ Create a new Ramp merchant. 🔧 Update an existing merchant. ↔️ Reassign the transaction to a more fitting merchant.”
5
Guardrails validate LLM output
validation
“We also have post-processing guardrails to catch LLM hallucinations... If the LLM hallucinates, we inform it of its mistake and have it retry until we get a valid response.”
6
Classification update delivered to user
output
“When our LLM takes an action that modifies the transaction's merchant classification in some way, the user will observe a change on the front end in seconds... We take our primary LLM's rejection reasoning and then use a second LLM to re…”
Reported outcome

The AI agent handles close to 100% of merchant classification fix requests autonomously, resolving them in less than 10 seconds instead of hours, while improving nearly 99% of transaction classifications.
Before the agent, manual teams could service only 3% of requests in 2023 and 1.5% in 2024; resolution costs dropped from hundreds of dollars per request to cents.

Reported metrics
Transactions receiving second correction requestfewer than 10%
Requests rejected by agent1 out of 4
Transaction classifications improved by agentnearly 99%
Rejections that are reasonablenearly two thirds
Show all 11 reported metrics
transactions receiving second correction requestfewer than 10%
requests rejected by agent1 out of 4
transaction classifications improved by agentnearly 99%
rejections that are reasonablenearly two thirds
agent resolution timeless than 10 seconds
manual resolution time (before)hours
requests serviced manually in 20233%
requests serviced manually in 20241.5%
requests handled by agentclose to 100%
cost per request before agenthundreds of dollars
cost per request with agentcents
Reported stack
LLMembeddingsOLAPRAGStripe
Source
https://engineering.ramp.com/post/fixing-merchant-classifications-with-ai
Read source ↗

Frequently asked questions

What did this team achieve with this AI workflow?

The AI agent handles close to 100% of merchant classification fix requests autonomously, resolving them in less than 10 seconds instead of hours, while improving nearly 99% of transaction classifications.

What tools did this team use?

LLM, embeddings, OLAP, RAG, Stripe.

What results were reported?

Transactions receiving second correction request: fewer than 10%; Requests rejected by agent: 1 out of 4; Transaction classifications improved by agent: nearly 99%; Rejections that are reasonable: nearly two thirds (source-reported, not independently verified).

How is this finance ops AI workflow structured?

User submits correction request → LLM builds request context → RAG retrieves related merchants → LLM selects resolution action → Guardrails validate LLM output → Classification update delivered to user.