RiskOS
RiskOS is a working fraud-detection prototype. It tests whether an AI can prepare alerts while the analyst keeps the decision, with reasoning written out in full and a visible trace for every action.

When an AI takes part in a decision, how do you keep the person deciding actively engaged? I chose fraud detection in European banking to explore the question: analysts work under time pressure, 80% of their alerts turn out to be false alarms, and the final decision is always theirs.
A personal exploration. I designed the interaction model and built the working prototype: React 18, Vite and Tailwind CSS, deployed on Vercel.
Triage view
Five cases sorted by risk level, with priority filters and a live counter.
Streaming AI analysis
The AI writes its reasoning word by word, with highlighted details, sources and a confidence score.
Decision flow
Block the card, escalate or monitor, with the Slack message and the customer SMS made visible.
False-alarm resolution
A medium-risk alert reviewed by the AI and confirmed with one click.
Queue processing
Five cases resolved in sequence, with a session recap.
If the AI does too much, the analyst disengages. If it does not explain itself, trust erodes. In many teams the daily tool is still a spreadsheet and fixed rules, with no context, no sorting by relevance and no memory of earlier cases. An analyst at a European neobank handles 80 to 150 alerts per shift, and every minute spent on a false alarm is a minute not available for a real case.
The prototype tests whether the AI can handle the preparation work while the analyst keeps full ownership of the decision. Three principles guided the design. The AI sets up the context and the analyst decides. The reasoning is written out in full, so the analyst can read it. When the analyst acts, the effect is visible outside the tool as well.
In the process, a suspicious transaction first meets the bank’s automated rules. If it is flagged, the alert enters a queue, the AI analyzes it, and the analyst reviews and decides.
The analyst opens a session and finds five cases sorted by risk level, with color-coded priorities, a filter and a live counter. Without sorting, the analyst scrolls the whole list to find the urgent cases. Here, sorting takes a few seconds.
The AI writes its analysis word by word. Relevant details are highlighted as they appear, the data sources light up progressively and a confidence score shows the level of certainty. The action buttons stay hidden until the analysis is complete, so the analyst reads the full reasoning before being able to decide.
The analyst picks an action: block the card, pass the case to a senior or keep it under watch. A confirmation screen recaps what happened. Then two things appear that usually stay invisible: the Slack message to the fraud team and the SMS to the customer. Usually the analyst acts and never sees the result.
A medium-risk alert arrives: score 45, a 450 euro payment. The AI reviews the transaction history and finds nothing unusual. The analyst confirms with one click.
The analyst works through five cases in sequence. After each resolution, the next case loads automatically. At the end: five cases resolved, 92 seconds total.
When the AI writes its analysis word by word, the analyst reads along and forms their own view at the same time. A confidence score after the fact just says “trust me” without showing the work.
Under pressure, people click the first thing available. Holding the decision buttons back until the AI finishes writing gives the reasoning a chance to land.
The prototype runs on five fictional cases and produces no measurement: its effect on the decisions of real analysts remains to be verified. The same dynamics exist in compliance, medical triage, content moderation and incident response.