githubDCS/belgo-classifier
BelgoClassifier — Belgian bank-transaction categorizer (Core ML)
⚠️ Archive channel. This repository is a public archive of the Stay Steady app's on-device transaction classifier. The app itself distributes models via its own backend — files here are for reference and research, not consumed by any released app.
Current model: v4.6.1 (2026-07-20)
BelgoClassifier_v4.6.1.mlmodelc.zip — classifier head over Apple NLEmbedding sentence embeddings (512-dim, English). 34 spending categories. Trained on 21,565 samples: synthetic Belgian transaction text plus manually audited real bank transactions (personal/P2P counterparties excluded, merchant names canonicalized — branch towns, store numbers and card fragments stripped). Training accuracy 99.38%.
Runtime contract: embed input text with NLEmbedding.sentenceEmbedding(for: .english) (512-dim), UPPERCASE, diacritics folded, merchant canonicalized. Input tensor embeddings [1, 512] Float32; output probabilities over 34 classes.
⚠️ v4.5.0 is defective — do not use
BelgoClassifier_v4.5.0.mlmodelc.zip has been removed from this repository. It was trained by a different pipeline against all-MiniLM-L6-v2 embeddings (384-dim) and therefore cannot score NLEmbedding vectors at all; it also measured only 86.7% validation accuracy and carried a merchant+location labeling bias. If you have a cached copy, discard it.
