Data

Ingest is a separate process. Metrics (all Direct Growth classes): npm run ingest:metrics. Holdings (active equity only): npm run ingest. The browser never calls FinAPI.

StartedStatusOk / failMonths
19/9/2026, 4:18:28 amok574 / 02026-08, 2026-07, 2026-06, 2026-05, 2026-04, 2026-03, 2026-02, 2026-01, 2025-12, 2025-11, 2025-10, 2025-09
window=09-2025..08-2026 all-schemes skip_existing=false sector_refresh=false
schemes=574
agg 2026-08 snaps=33213 diffs=35224
agg 2026-07 snaps=29377 diffs=31879
agg 2026-06 snaps=30282 diffs=32486
agg 2026-05 snaps=30298 diffs=32280
agg 2026-04 snaps=30109 diffs=31952
agg 2026-03 snaps=27790 diffs=29382
agg 2026-02 snaps=28644 diffs=30618
agg 2026-01 snaps=28105 diffs=28105
skip empty month 2025-12 (no snapshots; not a mass exit)
skip empty month 2025-11 (no snapshots; not a mass exit)
skip empty month 2025-10 (no snapshots; not a mass exit)
14/9/2026, 2:43:44 pmok574 / 02026-08, 2026-07, 2026-06, 2026-05, 2026-04, 2026-03, 2026-02, 2026-01, 2025-12, 2025-11, 2025-10, 2025-09
window=09-2025..08-2026 all-schemes skip_existing=false sector_refresh=true
schemes=574
12/9/2026, 7:13:01 pmok2177 / 0
scanned 14795 schemes; upserted 2177 Direct Growth + listed ETFs
12/9/2026, 6:55:48 pmok1853 / 0
scanned 14795 schemes; upserted 1853 Direct Growth
12/9/2026, 6:12:27 amok572 / 02026-08, 2026-07
window=07-2026..08-2026 all-schemes skip_existing=false
schemes=572
agg 2026-08 snaps=31512 diffs=33456
12/9/2026, 6:12:06 amfailed0 / 02026-08, 2026-07
Marked failed: superseded by a new ingest run
12/9/2026, 6:09:23 amfailed0 / 02026-08, 2026-07
Stopped by user request
12/9/2026, 6:07:14 amfailed0 / 02026-08, 2026-07
Marked failed: superseded by a new ingest run
3/9/2026, 12:17:02 pmok572 / 0
scanned 14763 schemes; upserted 572 Direct Growth active-equity
3/9/2026, 7:29:10 amok0 / 02026-07, 2026-06, 2026-05, 2026-04, 2026-03, 2026-02, 2026-01, 2025-12, 2025-11, 2025-10, 2025-09, 2025-08
window=08-2025..07-2026 all-schemes skip_existing=true
agg_only=1 (no FinAPI fetch)
agg 2026-07 snaps=27941 diffs=30164
agg 2026-06 snaps=28731 diffs=30668
agg 2026-05 snaps=28760 diffs=30516
agg 2026-04 snaps=28563 diffs=30282
agg 2026-03 snaps=26723 diffs=28012
agg 2026-02 snaps=27368 diffs=29081
agg 2026-01 snaps=26785 diffs=26785
skip empty month 2025-12 (no snapshots; not a mass exit)
skip empty month 2025-11 (no snapshots; not a mass exit)
skip empty month 2025-10 (no snapshots; not a mass exit)
skip empty month 2025-09 (no snapshots; not a mass exit)
3/9/2026, 7:20:49 amok0 / 02026-07, 2026-06, 2026-05, 2026-04, 2026-03, 2026-02, 2026-01, 2025-12, 2025-11, 2025-10, 2025-09, 2025-08
window=08-2025..07-2026 all-schemes skip_existing=true
agg_only=1 (no FinAPI fetch)
agg 2026-07 snaps=27941 diffs=30164
agg 2026-06 snaps=28731 diffs=30668
agg 2026-05 snaps=28760 diffs=30516
agg 2026-04 snaps=28563 diffs=30282
agg 2026-03 snaps=26723 diffs=28012
agg 2026-02 snaps=27368 diffs=29081
agg 2026-01 snaps=26785 diffs=26785
skip empty month 2025-12 (no snapshots; not a mass exit)
skip empty month 2025-11 (no snapshots; not a mass exit)
skip empty month 2025-10 (no snapshots; not a mass exit)
skip empty month 2025-09 (no snapshots; not a mass exit)
3/9/2026, 6:34:16 amok550 / 02026-07, 2026-06, 2026-05, 2026-04, 2026-03, 2026-02, 2026-01, 2025-12, 2025-11, 2025-10, 2025-09, 2025-08
window=08-2025..07-2026 all-schemes skip_existing=true
schemes=550
skip empty month 2025-12 (no snapshots; not a mass exit)
skip empty month 2025-11 (no snapshots; not a mass exit)
skip empty month 2025-10 (no snapshots; not a mass exit)
skip empty month 2025-09 (no snapshots; not a mass exit)
3/9/2026, 5:52:02 amok50 / 02026-08, 2026-07, 2026-06, 2026-05, 2026-04, 2026-03, 2026-02, 2026-01, 2025-12, 2025-11, 2025-10, 2025-09
window=09-2025..08-2026 limit=50
schemes=50
29/8/2026, 12:26:57 pmpartial41 / 92026-07, 2026-06, 2026-05, 2026-04, 2026-03, 2026-02, 2026-01, 2025-12, 2025-11, 2025-10, 2025-09, 2025-08
window=08-2025..07-2026 limit=50
schemes=50
fail 120586: {"code":"21000","details":null,"hint":"Ensure that no rows proposed for insertion within the same command have duplicate constrained values.","message":"ON CONFLICT DO UPDATE command cannot affect row a second time"}
fail 119775: {"code":"21000","details":null,"hint":"Ensure that no rows proposed for insertion within the same command have duplicate constrained values.","message":"ON CONFLICT DO UPDATE command cannot affect row a second time"}
fail 120166: {"code":"21000","details":null,"hint":"Ensure that no rows proposed for insertion within the same command have duplicate constrained values.","message":"ON CONFLICT DO UPDATE command cannot affect row a second time"}
fail 120828: {"code":"21000","details":null,"hint":"Ensure that no rows proposed for insertion within the same command have duplicate constrained values.","message":"ON CONFLICT DO UPDATE command cannot affect row a second time"}
fail 120596: {"code":"21000","details":null,"hint":"Ensure that no rows proposed for insertion within the same command have duplicate constrained values.","message":"ON CONFLICT DO UPDATE command cannot affect row a second time"}
fail 120158: {"code":"21000","details":null,"hint":"Ensure that no rows proposed for insertion within the same command have duplicate constrained values.","message":"ON CONFLICT DO UPDATE command cannot affect row a second time"}
fail 118278: {"code":"21000","details":null,"hint":"Ensure that no rows proposed for insertion within the same command have duplicate constrained values.","message":"ON CONFLICT DO UPDATE command cannot affect row a second time"}
fail 148990: {"code":"21000","details":null,"hint":"Ensure that no rows proposed for insertion within the same command have duplicate constrained values.","message":"ON CONFLICT DO UPDATE command cannot affect row a second time"}
fail 149185: {"code":"21000","details":null,"hint":"Ensure that no rows proposed for insertion within the same command have duplicate constrained values.","message":"ON CONFLICT DO UPDATE command cannot affect row a second time"}
29/8/2026, 12:21:35 pmok50 / 02026-07, 2026-06, 2026-05, 2026-04, 2026-03, 2026-02, 2026-01, 2025-12, 2025-11, 2025-10, 2025-09, 2025-08
window=2025-08..2026-07 limit=50
schemes=50
29/8/2026, 12:08:00 pmfailed0 / 02026-07, 2026-06, 2026-05, 2026-04, 2026-03, 2026-02, 2026-01, 2025-12, 2025-11, 2025-10, 2025-09, 2025-08
Marked failed: superseded by a new ingest run
29/8/2026, 12:04:37 pmfailed0 / 02026-07, 2026-06, 2026-05, 2026-04, 2026-03, 2026-02, 2026-01, 2025-12, 2025-11, 2025-10, 2025-09, 2025-08
Marked failed: superseded by a new ingest run
29/8/2026, 11:51:07 amfailed0 / 0

522 /api/v1/stats: {"type":"https://developers.cloudflare.com/support/troubleshooting/http-status-codes/cloudflare-5xx-errors/error-522/","title":"Error 522: Connection timed out","status":522,"detail":"Cloudflare could
29/8/2026, 9:52:52 amok556 / 0
scanned 14280 schemes; upserted 556 Direct Growth active-equity