Project
RevFlōw
Intelligent transaction categorisation and financial coaching for Revolut
A financial intelligence platform built in 24 hours at HackDelft 2026 for the Revolut challenge. It fixes broken merchant labels and generic categorisation with a two-stage ML pipeline (rule pre-pass plus CalibratedLinearSVC on sentence embeddings), KMeans life-stage personalisation, an Isolation Forest subscription engine, and a Claude Haiku money coach with one-tap action cards.
RevFlōw is a financial intelligence platform built in 24 hours for the Revolut challenge at HackDelft 2026 with Team YUBRE. It categorises Revolut transactions, personalises the results per user, and surfaces subscription and spending insights through a four-stage pipeline.
Categorisation
Keyword pre-pass with 18 Dutch merchant rules; a confidence of 1.0 short-circuits the ML stage
CalibratedLinearSVC trained on MiniLM-L6 384-d sentence embeddings plus one-hot features (entry method, merchant domain, amount) across 12 spending categories
75% accuracy on high-confidence predictions (≥0.45); uncertain merchants fall back to Miscellaneous instead of a wrong label
Under 50 ms end-to-end inference latency
Personalisation
KMeans clustering segments users into four life-stage cohorts: Student, Family, Professional, Senior
Per-category spend share re-weights the global model probabilities (
P' ∝ P_global × f_user) to fit each user's life stageEvery categorised transaction carries a human-readable explanation grounded in the user's history
Subscription insight engine
Six parallel detectors: 4-week z-score anomalies, CV and cadence subscription detection, new-merchant bursts, fraud flags (velocity, smurfing), cohort-versus-peers comparison, and Isolation Forest user profiling
Flags forgotten, overlapping, or creeping recurring charges before they add up
Emits structured insight objects (type, severity, metrics) that drive both the deterministic action cards and the AI coach
AI money coach and command centre
Insights feed Claude Haiku for concise two-sentence advice, with a supplier-agnostic self-hosted path in production
Deterministic action cards for one-tap interventions: spending limits, recurring-charge cancellation, analytics drills
Revolut-styled React command centre with a transaction timeline, monthly budget ring, live insight cards, and voice query input
Deployed to Railway; live at revflow.brewen.dev
A financial intelligence platform built in 24 hours at HackDelft 2026 for the Revolut challenge. It fixes broken merchant labels and generic categorisation with a two-stage ML pipeline (rule pre-pass plus CalibratedLinearSVC on sentence embeddings), KMeans life-stage personalisation, an Isolation Forest subscription engine, and a Claude Haiku money coach with one-tap action cards.
RevFlōw is a financial intelligence platform built in 24 hours for the Revolut challenge at HackDelft 2026 with Team YUBRE. It categorises Revolut transactions, personalises the results per user, and surfaces subscription and spending insights through a four-stage pipeline.
Categorisation
Keyword pre-pass with 18 Dutch merchant rules; a confidence of 1.0 short-circuits the ML stage
CalibratedLinearSVC trained on MiniLM-L6 384-d sentence embeddings plus one-hot features (entry method, merchant domain, amount) across 12 spending categories
75% accuracy on high-confidence predictions (≥0.45); uncertain merchants fall back to Miscellaneous instead of a wrong label
Under 50 ms end-to-end inference latency
Personalisation
KMeans clustering segments users into four life-stage cohorts: Student, Family, Professional, Senior
Per-category spend share re-weights the global model probabilities (
P' ∝ P_global × f_user) to fit each user's life stageEvery categorised transaction carries a human-readable explanation grounded in the user's history
Subscription insight engine
Six parallel detectors: 4-week z-score anomalies, CV and cadence subscription detection, new-merchant bursts, fraud flags (velocity, smurfing), cohort-versus-peers comparison, and Isolation Forest user profiling
Flags forgotten, overlapping, or creeping recurring charges before they add up
Emits structured insight objects (type, severity, metrics) that drive both the deterministic action cards and the AI coach
AI money coach and command centre
Insights feed Claude Haiku for concise two-sentence advice, with a supplier-agnostic self-hosted path in production
Deterministic action cards for one-tap interventions: spending limits, recurring-charge cancellation, analytics drills
Revolut-styled React command centre with a transaction timeline, monthly budget ring, live insight cards, and voice query input
Deployed to Railway; live at revflow.brewen.dev
References
- [2025] Transaction Categorization with Relational Deep Learning in QuickBooks — Dong, K., Jonnalagedda, P., Gao, X., Acharya, A., Kissa, M., Flores, M., Chawla, N. V., Das, K.. arXiv preprint arXiv:2506.09234 DOI ↗
- [2025] Categorising SME Bank Transactions with Machine Learning and Synthetic Data Generation — Aluffi, P. A., Jess, B., Bazzi, M., Kennedy, K., Arderne, M., Rodrigues, D., Lotz, M.. arXiv preprint arXiv:2508.05425 DOI ↗
- [2024] Using Zero-shot Prompting in the Automatic Creation and Expansion of Topic Taxonomies for Tagging Retail Banking Transactions — de S. Moraes, D., Santos, P. T. C., Costa, P. B. D., Pinto, M. A. S., Pinto, I., Veiga, Á., Colcher, S., Busson, A., Rocha, R. H., Gaio, R., Miceli, R., Tourinho, G., Rabaioli, M., Santos, L., Marques, F., Favaro, D.. arXiv preprint arXiv:2401.06790 DOI ↗
- [2025] Enhancing Foundation Models in Transaction Understanding with LLM-based Sentence Embeddings — Fan, X., Jiang, Z., Yeh, C.-C. M., Chen, Y., Dou, Y., Pan, M., Zheng, Y.. arXiv preprint arXiv:2601.05271 DOI ↗
- [2023] Hierarchical Classification of Financial Transactions Through Context-Fusion of Transformer-based Embeddings and Taxonomy-aware Attention Layer — Busson, A., Rocha, R. H., Gaio, R., Miceli, R., Pereira, I., Moraes, D. D. S., Colcher, S., Veiga, Á., Rizzi, B., Evangelista, F., Santos, L., Marques, F., Rabaioli, M., Feldberg, D., Mattos, D., Pasqua, J., Dias, D. G.. arXiv preprint arXiv:2312.07730 DOI ↗
- [2021] Clustering in Recurrent Neural Networks for Micro-Segmentation using Spending Personality — Maree, C., Omlin, C.. arXiv preprint arXiv:2109.09425 DOI ↗
- [2025] Your Spending Needs Attention: Modeling Financial Habits with Transformers — Braithwaite, D. T., Cavalcanti, M., McEver, R., Udagawa, H., Silva, D., Ramanath, R., Meneses, F., Yoshida, A., Wingert, E., Ramos, M., Zanfelice, B., Gupta, A.. arXiv preprint arXiv:2507.23267 DOI ↗
- [2025] Open Banking Foundational Model: Learning Language Representations from Few Financial Transactions — Polleti, G., Santana, M., Fontes, E. R.. arXiv preprint arXiv:2511.12154 DOI ↗
- [2025] FlowSeries: Anomaly Detection in Financial Transaction Flows — Capozzi, A., Vilella, S., Moncalvo, D., Fornasiero, M., Ricci, V., Ronchiadin, S., Ruffo, G.. arXiv preprint arXiv:2503.15896 DOI ↗
- [2024] Advancing Anomaly Detection: Non-Semantic Financial Data Encoding With Large Language Models — Bakumenko, A., Hlaváčková-Schindler, K., Plant, C., Hubig, N. C.. arXiv preprint arXiv:2406.03614 DOI ↗
- [2024] Enhancing Anomaly Detection in Financial Markets with an LLM-based Multi-Agent Framework — Park, T.. arXiv preprint arXiv:2403.19735 DOI ↗
- [2025] Anomaly Detection in High-Dimensional Bank Account Balances via Robust Methods — Maddanu, F., Proietti, T., Crupi, R.. arXiv preprint arXiv:2511.11143 DOI ↗
- [2025] Synthesizing Behaviorally-Grounded Reasoning Chains: A Data-Generation Framework for Personal Finance LLMs — Theerthala, A.. arXiv preprint arXiv:2509.14180 DOI ↗
- [2026] Conv-FinRe: A Conversational and Longitudinal Benchmark for Utility-Grounded Financial Recommendation — Wang, Y., Han, Y., Qian, L., He, Y., Peng, X., Feng, D., Xie, Z., Zhang, V., Guo, R., Mo, F., Huang, J., Chen, Y., Liu, X., Nie, J.-Y.. arXiv preprint arXiv:2602.16990 DOI ↗
- [2024] A Survey of Large Language Models for Financial Applications: Progress, Prospects and Challenges — Nie, Y., Kong, Y., Dong, X., Mulvey, J. M., Poor, H., Wen, Q., Zohren, S.. arXiv preprint arXiv:2406.11903 DOI ↗