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.
FINTECH ANALYTICS ENGINEERING PROJECT
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.
SYNTHETIC WALLET PERFORMANCE
Metrics calculated from the deterministic seed-42 dataset.
| Month | MAU | Avg DAU | DAU/MAU | Retention |
|---|---|---|---|---|
| Jan | 242 | 25.68 | 10.61% | N/A |
| Feb | 240 | 26.82 | 11.18% | 95.87% |
| Mar | 239 | 26.42 | 11.05% | 96.25% |
| Apr | 244 | 25.57 | 10.48% | 97.91% |
| May | 243 | 27.32 | 11.24% | 97.13% |
| Jun | 238 | 25.80 | 10.84% | 95.06% |
ARCHITECTURE
Synthetic customer, wallet and transaction tables declared as dbt sources with source-level tests.
Explicit column selection, type conversion, controlled categories and null handling.
The transaction fact uses incremental MERGE processing, partitioning, clustering and a three-day lookback for delayed records.
Daily transaction metrics, DAU, MAU, DAU/MAU, monthly retention and cohort retention.
IMPLEMENTATION DETAILS
Transformation and test SQL name the fields they depend on. This makes schema changes easier to review and prevents unnecessary fields from flowing downstream.
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.
Tests cover keys, relationships, accepted values, positive amounts, transaction-status reconciliation, composite grains and retention rules.
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`.
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.
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
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.