Inspiration
We always wondered whether some stores were really just fronts for money laundering, the shop that never has customers but stays open for years. One of us does police work that leans into investigative territory, so learning how to catch these fronts intrigued us. We both agreed that these fake stores are not only problematic by hiding illegal activity but also clutter busy walkways where other real businesses should be able to thrive.
What it does
Finensic Vision is an AI-powered Anti-Money Laundering (AML) investigation platform that combines real-time transaction monitoring, explainable risk detection, interactive network visualization, and AI-generated reports. Instead of just raising a red flag, it turns raw transactional data into something actionable, tracing suspicious money flows and explaining why something is suspicious down to the specific rules and transactions involved. It can even draft a full, citation-backed Suspicious Activity Report (SAR) where every claim links to its evidence. The analyst opens a case already knowing what happened, how severe it is, and where to start.
How we built it
The backend is a Python/FastAPI service in a layered architecture (models, rules, services, streaming) backed by SQLAlchemy and SQLite. Since we couldn't use real data, we generated ~300 synthetic customers and 11,000+ transactions with Faker and planted deliberate laundering patterns (structuring, dormant-account awakening, funnel accounts) to test against. A background asyncio task streams live transactions over a WebSocket to a React + TypeScript + Tailwind frontend featuring a world fraud heatmap, a custom transaction-network graph, and an LLM layer that drafts summaries and SARs constrained to cite only real evidence.
Challenges we ran into
Our biggest challenge was the risk-scoring system: if the program ran for a while, everyone drifted up to a score of 100, so the actual high-priority individuals became impossible to spot. This meant everybody on the system was alerted as having suspicious behavior despite not having compelling evidence. The root cause was a feedback loop, our scoring was additive and the live simulator kept re-scoring random customers upward. We fixed it by concentrating suspicious activity on already-risky actors, never escalating an actual low-risk customer, and capping how many times anyone can be re-scored. The result is a stable, realistic distribution.
Accomplishments that we're proud of
One of our biggest goals was to make sure it stood out among other fraud detection platforms. Our program doesn't just flag a transaction and leave the analyst to do all the real work. We're proud that Finensic Vision takes raw data and produces detailed, explainable reports describing what is happening and why. It hands the analyst a ranked queue and a citation-backed SAR draft instead of a raw alert.
What we learned
On the design side, we learned the small mechanics of building a user-friendly, easy-to-learn interface, a data-heavy tool that can still feel calm to look at. On the technical side, we learned how hard it is to design a scoring model that stays meaningful over time, not just one that produces a number. We also learned to make an AI feature trustworthy by forcing every claim to trace back to evidence.
What's next for Finensic Vision
Right now this is a simulation built on fictional characters and capped at around 300 individuals. The next step is connecting it to a real-world database with millions of live transactions to help banks slash the time it takes to catch frauds. Beyond scale, we want network-level "ring" detection for coordinated mule accounts, a model-governance and audit layer to satisfy regulators, and a feedback loop where analyst decisions sharpen the scoring over time. The long-term vision is simple: turn hours of manual investigation into minutes.
Built With
- chatgpt
- claude
- javascript
- python
- typescript


Log in or sign up for Devpost to join the conversation.