Monaith is a financial intelligence system built around a simple premise: a person's financial state is better represented as a connected temporal system than as a collection of isolated transactions and balances.
The implementation and research repository remain private. This case study presents the financial semantics, forecasting architecture, empirical corrections, and evidence used to evaluate the system.
I am the founder and technical product lead for Monaith. I own the product direction, financial semantics, temporal-graph research program, architecture constraints, acceptance criteria, and release decisions described here. I review implementation through source, tests, model diagnostics, and system-level evidence. AI-assisted engineering tools are part of the build workflow; technical direction and acceptance remain mine.
Period: active development in 2026, with the current product repository split into its own lane in June 2026.
Current status: the application, financial-data pipeline, Plaid lifecycle, graph construction, recurrence/cadence layers, deterministic baselines, synthetic curriculum, model training, checkpointing, and inference machinery are implemented. Forecasting evidence remains development and offline research evidence rather than production accuracy evidence.
Consumer financial data is deceptively difficult to reason about. The same dollar movement can represent income, spending, an internal transfer, a credit-card payment, a refund, a corrected transaction, or a balance-side observation. If those semantics are collapsed too early, downstream forecasts inherit errors that model complexity cannot repair.
Monaith separates three questions:
- What happened? Build a defensible financial graph from observed account and transaction evidence.
- What is already known about the future? Preserve deterministic obligations and observed recurrence separately.
- What remains uncertain? Forecast residual financial behavior probabilistically rather than presenting one path as fact.
flowchart LR
A[Bank and account observations] --> B[Canonical financial facts]
B --> C[Account temporal graphs]
C --> D[User aggregate graph]
D --> E[Transfer and repayment relationships]
E --> F[Recurrence and cadence]
F --> G[Daily graph-derived series]
G --> H[Deterministic known-fact path]
G --> I[Probabilistic residual model]
H --> J[Combined future state]
I --> J
J --> K[Quantiles and ranges]
The graph layer resolves ordinary internal transfers and credit or loan repayments before those events are allowed to influence cash-flow targets. This prevents a transfer between two owned accounts from becoming both spending and income, and prevents repayment legs from being counted twice.
Ambiguous relationships remain ambiguous rather than being forced into a closed-world explanation simply to make the dataset cleaner.
Recurring behavior is represented through separate cadence, amount-behavior, lifecycle, and evidence planes. Repetition can support a future window without becoming a guaranteed payment or a learned probability.
Graph-derived series distinguish evidenced zero activity from missing observations. Historical balances are not reconstructed merely to produce a complete daily grid.
A model trained on silently fabricated zeros learns the data-collection process as if it were financial behavior.
Known obligations and accepted cadence projections form a deterministic future component. The trainable model targets the residual behavior left after that component is removed:
future financial path
= deterministic known-fact trajectory
+ learned residual forecast
The current in-house model is a graph-conditioned causal patch-transformer. A graph-context encoder summarizes 40 typed financial-graph features, conditions a temporal model over up to 512 days of graph-derived user series, and emits point plus q10/q50/q90 forecasts at 90, 180, 365, and 720-day horizons.
Weights are trained through Monaith's own pipeline. Model, feature-set, target-policy, dataset, architecture, checkpoint, and inference identities are digest-bound and fail closed on mismatch.
The completed primary synthetic banking curriculum contains:
- 700 synthetic users
- 900 calendar days per primary trajectory
- 439,092 generated transactions
- 700 successful graph-pipeline users, zero failures
- trajectory-disjoint train, validation, and challenge splits
- out-of-distribution challenge cohorts
- an 18/18 curriculum checker pass
- a completed model training run of 24 epochs / 13,128 steps with inference at all four target horizons
These figures establish pipeline and research mechanics. Real-user predictive accuracy and calibration require separate evidence.
One useful correction came from the model's normalization work. An earlier diagnosis treated the fixed low-value scale floor as the cause of disproportionate normalized loss on quiet users. A dedicated reproduction pass showed that explanation was wrong: fewer than roughly one percent of samples were actually sitting on the floor, and they contributed almost none of the loss.
The real problem was denominator arithmetic in a broader low-activity band. Once predictions were held fixed in cents and the evaluation denominator was changed, the apparent concentration collapsed. Several proposed normalization fixes were then rejected because they improved interval behavior only by trading away point accuracy or harming higher-activity cohorts.
The result was a correction to the diagnosis, not a rescue of the original theory.
| Class | Meaning |
|---|---|
| Observed fact | Backed by source data or explicit system state |
| Deterministic projection | Derived from known obligations or accepted observed cadence |
| Model output | Probabilistic estimate produced by a specific model and evidence set |
| Product claim | Requires separate validation before being presented to users as reliable behavior |
Technically interesting development evidence is not automatically product truth.
- TypeScript
- Next.js and React
- PostgreSQL and Neon
- Drizzle ORM
- Plaid
- Python model workers
- Vitest
- Zod
- Auth.js / NextAuth
The private repository has dedicated verification lanes for database boundaries, Plaid lifecycle behavior, account and user graph construction, transfer and repayment relationships, recurrence, graph-derived series, deterministic baselines, synthetic curriculum generation, training, and inference.
Monaith has a runnable product and a substantial offline forecasting research core. The current evidence supports implementation, synthetic-development, and offline empirical claims. Real-user calibration, comparative predictive performance, and production use of model outputs require further validation before stronger product claims are made.
The difficult part of the work has been deciding what the model is allowed to learn from, what the system already knows, what evidence is incomplete, and which outputs deserve stronger claims.
Architecture · Technical decisions · Validation · Back to profile