FINTECH ANALYTICS ENGINEERING PROJECT

WalletFlow Analytics

WalletFlow models a fictional digital-wallet business using synthetic customer, wallet and transaction data. The project covers transformation, testing, incremental processing, customer engagement metrics and retention reporting.

Data: all records shown here are generated for this project. No employer or customer data is included.

SYNTHETIC WALLET PERFORMANCE

Transaction and engagement metrics

Metrics calculated from the deterministic seed-42 dataset.

JAN TO JUN 2026
Gross transaction value₦145.85M5,000 transactions
Transaction success rate88.42%successful ÷ attempts
June MAU238monthly active users
June avg. DAU25.8daily active users
June DAU/MAU10.84%average DAU ÷ MAU
June retention95.06%vs May MAU
Successful value₦128.11Msuccessful transactions
Fees generated₦409.8Ksuccessful transactions

Monthly engagement

MonthMAUAvg DAUDAU/MAURetention
Jan24225.6810.61%N/A
Feb24026.8211.18%95.87%
Mar23926.4211.05%96.25%
Apr24425.5710.48%97.91%
May24327.3211.24%97.13%
Jun23825.8010.84%95.06%

Metric definitions

DAUdaily distinct customers
MAUmonthly distinct customers
DAU/MAUavg DAU ÷ MAU
Monthly retentionreturning ÷ prior MAU
Cohort retentionretained ÷ cohort size
Success ratesuccessful ÷ attempts

ARCHITECTURE

Layered models from raw sources to reporting marts.

01 / SOURCES

Raw data

Synthetic customer, wallet and transaction tables declared as dbt sources with source-level tests.

02 / STAGING

Clean & standardise

Explicit column selection, type conversion, controlled categories and null handling.

03 / CORE

Facts & dimensions

The transaction fact uses incremental MERGE processing, partitioning, clustering and a three-day lookback for delayed records.

04 / MARTS

Reporting metrics

Daily transaction metrics, DAU, MAU, DAU/MAU, monthly retention and cohort retention.

IMPLEMENTATION DETAILS

Key modelling and quality decisions.

COLUMN DEPENDENCIES

Explicit column selection

Transformation and test SQL name the fields they depend on. This makes schema changes easier to review and prevents unnecessary fields from flowing downstream.

select transaction_id, customer_id, amount_ngn, status, created_at from {{ ref('stg_transactions') }}
INCREMENTAL PROCESSING

Late-arriving transactions

The transaction fact reprocesses a configurable three-day window on incremental runs. `transaction_id` is the MERGE key, so existing records can be updated without creating duplicates.

vars: incremental_lookback_days: 3
TESTING

Structural and business checks

Tests cover keys, relationships, accepted values, positive amounts, transaction-status reconciliation, composite grains and retention rules.

  • Average DAU cannot exceed MAU.
  • Retained customers cannot exceed the comparison population.
  • Month-zero cohort retention must equal 100%.
  • Retention and success rates must remain between 0 and 1.
CI

Pull-request checks

GitHub Actions checks model and test SQL for `SELECT *`. When BigQuery credentials are configured, the workflow also runs `dbt seed`, `dbt build` and `dbt source freshness`.

ENGAGEMENT

DAU and MAU

DAU counts distinct customers with at least one transaction attempt on a day. MAU counts distinct customers with activity in a month. Average DAU divided by MAU provides a monthly usage-frequency measure.

RETENTION

Monthly and cohort retention

Monthly retention measures customers who were active in both the current and previous month. Cohort retention groups customers by first successful transaction and tracks successful activity in later months.

PROJECT SUMMARY

WalletFlow combines data modelling, quality checks and product reporting.

The project starts with generated wallet data, standardises it in staging models, builds an incremental transaction fact and customer dimension, and exposes reporting marts for transaction performance, engagement and retention. Tests cover structural integrity and business rules, while CI checks SQL conventions and can run dbt builds against BigQuery.