Source: Versuro MVP and (demo) description, November 2023 (Denis Dell)
Review date: 2026-03-29
This document compares the Versuro MVP specification against what has been implemented in the Axion platform.
| Spec | Axion Implementation | Status |
|---|---|---|
| Bureaux (Vericred) — credit bureau data ingestion, customer/account/tradeline variables | ObjServiceBureau, ObjServiceBureauRouter, ObjServiceHCMyData — TransUnion, XDS, MyData integration. Supports single and batch. AVRO transport supported | Implemented |
| Credit Providers (Client data) — client data for feature generation, action triggers | ObjHook webhook system — reads client data, publishes to diallers, SMS, communication channels | Implemented |
| Research data — survey/campaign insights linked to bureau data | Connected via TLC marketing apps (WhatsApp conversations, USSD surveys, microsite interactions). Campaign engagement data feeds back into client data for feature generation. Serves both Versuro research and TLC campaign analytics | Implemented (via TLC) |
| Batch vs single processing | ObjSimulation (batch), ObjServiceDecisionSwitch (single real-time) | Implemented |
| Spec | Axion Implementation | Status |
|---|---|---|
| Data lineage — track origin, transformation, movement | ObjFeatureStore has lineage tracking (def_feature_lineage), dependency graphs | Partial — feature-level only |
| Metadata catalogue — searchable inventory of data assets | ObjDataDictionary — table/field metadata, descriptions | Partial — manual, not automated discovery |
| Data catalog — centralized repository | Not a standalone catalogue — metadata in def_tables, def_tableviews | Partial |
| Change control — impact analysis before schema changes | ObjVersionMixin — version history with ThreeWords, ChangedBy, ChangeNotes. ALTER TABLE IF NOT EXISTS pattern | Implemented (new — built this session) |
| Controlled data ingestion — quality criteria | ObjDataImport with validation, ObjHook with webhook_validations | Implemented |
| Data naming conventions | Axion conventions: def_ (definitions), data_ (runtime), bloom_ (simulation), sys_ (system) | Implemented |
| Spec | Axion Implementation | Status |
|---|---|---|
| Conceptual models — entity relationships | ObjDataDDL — schema creation from YAML definitions | Implemented |
| Logical models — normalized, platform-independent | YAML schema definitions in each Obj*.yaml file | Implemented |
| Physical models — MariaDB-specific DDL | Auto-generated CREATE TABLE from YAML, migrations via ALTER TABLE IF NOT EXISTS | Implemented |
| Spec | Axion Implementation | Status |
|---|---|---|
| AVRO — compressed binary transport | ObjWorkflow AVRO support (def_workflow_avro) | Implemented |
| JSON — API communication | All webhook/API integrations use JSON | Implemented |
| Kafka — stream processing | factory.kafka exists but limited use | Partial — infrastructure exists |
| MQTT — real-time events | ObjMqtt, ObjSignalMqtt — real-time monitoring and events | Implemented |
| Batch file transport — CSV/Excel/Parquet | ObjDataImport, ObjDataExport — CSV, Excel, JSON. Parquet via pandas | Implemented |
| Spec | Axion Implementation | Status |
|---|---|---|
| SAS/SPSS/Python hooks — model execution | ObjScorecard (Python), ObjMLScorecard (ML models), ObjAI (LLM) | Implemented (Python only, no SAS/SPSS) |
| Model versioning | ObjVersionMixin on ObjScorecard — version history with backfill | Implemented (new — built this session) |
| Model monitoring | Scorecard monitoring data uploads, simulation comparison | Implemented |
| Spec | Axion Implementation | Status |
|---|---|---|
| Feature computation | ObjFeatureStore — feature definitions, expectations, statistics | Implemented |
| Feature lineage | def_feature_lineage — tracks feature dependencies | Implemented |
| Feature versioning | def_feature_version — version tracking per feature | Implemented |
| Feature quality | def_feature_quality, def_feature_expectation — quality checks | Implemented |
| Real-time feature serving | FeatureStore integrated into workflows (Collections V2 in progress) | In Progress |
| Spec | Axion Implementation | Status |
|---|---|---|
| BI reporting | ObjReport — dynamic report generation, CDN delivery | Implemented |
| Custom reporting | Kibana/Elastic mentioned in spec; Axion uses InfluxDB + Grafana | Implemented (different stack) |
| Data marts | Per-package schemas (hcapi.live, hcplanning.dev, etc.) | Implemented |
| Spec | Axion Implementation | Status |
|---|---|---|
| AI integration | ObjAI — Ollama (local), Anthropic Claude, Google Gemini, HuggingFace, Mistral | Implemented — exceeded spec |
| RAG | ObjAiRag — ChromaDB vector store, codebase indexing, 10K+ chunks | Implemented (new — built this session) |
| AI-powered analysis | ObjSecurityAudit AI analysis, ObjCompile Ollama code review | Implemented |
| Spec | Axion Implementation | Status |
|---|---|---|
| Decision Switch (trees) | ObjDecisionSwitch — full tree evaluation with operators, caching, simulation | Implemented |
| Decision Matrix | ObjDecisionMatrix — 2D lookup grids with range/exact matching | Implemented (new — built this session) |
| Rule sets | ObjDecisionRuleset — binary pass/fail rules | Implemented |
| Champion/Challenger | Simulation engine with A/B comparison | Partial — manual group management |
| Decision designers | YAML + CSV import, visual Mermaid diagrams | Implemented |
| Versioning | ObjVersionMixin — universal history tracking across all decision components | Implemented (new — built this session) |
| Simulation | ObjSimulation — batch evaluation against datasets, bloom_sim_ tables | Implemented |
| Spec | Axion Implementation | Status |
|---|---|---|
| PUB workers — action execution | ObjWorkflow — BPMN-based workflow engine with parallel execution | Implemented |
| SMS | factory.sms, ObjSms — SMSPortal, Channel Mobile integration | Implemented |
| ObjChannelmail, ObjWebMail — Brevo SMTP relay | Implemented | |
| Conversation engine via TLC campaigns (factory.conversation) | Implemented | |
| USSD | USSD journey engine (TLC campaigns) | Implemented |
| Dialler integration | INOVO CIM integration (HomeChoice collections) | Implemented |
| Payment gateways | Ozow, Shoprite/Checkers, EasyPay, Pay@ (FullHouse) | Implemented |
| Spec | Axion Implementation | Status |
|---|---|---|
| Customer list preparation | ObjDataImport, workflow-driven list building | Implemented |
| Variable and model selection | ObjFeatureStore, ObjScorecard selection in workflows | Implemented |
| Data collection | ObjHook — webhook data retrieval with validation | Implemented |
| Decision switch execution | ObjWorkflowDecision node → ObjServiceDecisionSwitch | Implemented |
| Write to actions | ObjHook output → SMS, email, dialler, payment | Implemented |
| Write to data layer | Workflow results → database via ObjData | Implemented |
| Bureau data preparation | ObjServiceBureau — variable creation from bureau response | Implemented |
| Category | Spec Items | Implemented | Partial | Not Done |
|---|---|---|---|---|
| Data Sources | 4 | 3 | 0 | 1 |
| Data Layer | 6 | 4 | 2 | 0 |
| Data Models | 3 | 3 | 0 | 0 |
| Data Transport | 5 | 4 | 1 | 0 |
| Analytical Models | 3 | 3 | 0 | 0 |
| Feature Store | 5 | 4 | 0 | 1 |
| Reporting | 3 | 3 | 0 | 0 |
| Generative AI | 3 | 3 | 0 | 0 |
| Decision Layer | 6 | 5 | 1 | 0 |
| Intervention | 7 | 7 | 0 | 0 |
| Data Flows | 7 | 7 | 0 | 0 |
| Total | 52 | 46 (88%) | 4 (8%) | 2 (4%) |