Markus Laaksonen
112b09f425
fix(sync): store EnableBanking credit card debt as balance instead of available credit ( #2459 )
...
* fix(sync): store EnableBanking credit card debt as balance instead of available credit
Previously, the EnableBanking processor forcibly overrode the primary account balance for credit cards to be the available credit (credit_limit - debt) rather than the actual outstanding debt. Since credit cards are modeled as Liability accounts, this caused the balance sheet (net worth) to treat available credit mathematically as a debt.
This PR aligns the EnableBanking processor with the Plaid and SimpleFIN processors by storing the absolute debt as the account balance, while tracking the available credit via accountable metadata.
Fixes #2458
* docs(sync): update EnableBanking credit card processor documentation
Updates the inline processor comments to reflect the new behavior introduced by the previous commit, clarifying that outstanding debt is stored sequentially as the primary balance rather than the UX available credit overriding it.
* refactor(sync): clarify balance and available credit calculations in EnableBanking processor
Refactors the debt polarity assignments to clarify why liability balances are strictly parsed as absolute positive numbers. Replaces the implicit ordering dependency between the '.abs' conversion and the 'available_credit' math with an explicit 'outstanding_debt' variable to prevent regression by future maintainers.
* style: remove trailing whitespace in EnableBanking processor
2026-06-27 06:20:50 +02:00
..
2026-06-11 14:39:36 +02:00
2026-06-02 21:44:57 +02:00
2026-06-02 21:44:57 +02:00
2026-06-02 21:44:57 +02:00
2026-06-21 12:01:39 +02:00
2026-06-26 06:52:09 +02:00
2026-05-27 23:58:00 +02:00
2026-05-27 23:58:00 +02:00
2026-05-13 18:13:48 +02:00
2026-05-13 18:13:48 +02:00
2026-05-13 18:13:48 +02:00
2026-05-30 00:12:54 +02:00
2026-04-01 20:25:06 +02:00
2026-04-01 20:25:06 +02:00
2026-06-20 21:43:20 +02:00
2026-02-06 18:04:03 +01:00
2026-06-27 06:20:50 +02:00
2026-05-12 00:17:49 +02:00
2026-06-11 16:48:40 +02:00
2026-02-06 18:04:03 +01:00
2026-04-13 00:51:23 +02:00
2026-06-15 20:09:39 +02:00
2026-06-08 21:45:35 +02:00
2026-05-27 23:33:08 +02:00
2026-05-26 22:48:23 +02:00
2026-05-12 23:45:19 +02:00
2026-04-27 18:33:22 +02:00
2026-05-12 00:22:37 +02:00
2026-05-12 00:22:37 +02:00
2026-01-09 13:14:14 +01:00
2026-02-19 18:58:01 +01:00
2026-01-23 00:53:24 +01:00
2026-05-30 23:27:18 +02:00
2026-06-11 20:26:40 +02:00
2025-10-28 19:32:27 +01:00
2025-05-24 19:16:55 -04:00
2026-06-26 06:37:33 +02:00
2026-06-09 23:02:26 +02:00
2026-06-18 12:28:32 +02:00
2026-06-15 22:12:24 +02:00
2026-05-17 16:55:01 +02:00
2025-11-24 14:07:14 +01:00
2026-05-13 18:17:10 +02:00
2026-04-07 14:43:17 +02:00
2026-06-25 05:38:06 +02:00
2026-05-12 00:55:46 +02:00
2026-05-09 21:55:20 +02:00
2026-05-31 22:17:56 +02:00
2026-04-08 21:05:58 +02:00
2026-06-20 20:33:09 +02:00
2026-06-20 20:33:09 +02:00
2025-07-15 11:42:41 -04:00
2026-06-08 21:35:12 +02:00
2026-05-12 23:45:19 +02:00
2026-05-13 20:07:00 +02:00
2026-01-07 15:59:04 +01:00
2026-03-25 10:50:23 +01:00
2025-11-24 14:07:14 +01:00
2026-06-01 14:58:18 +02:00
2026-06-16 10:57:35 +02:00
2026-06-11 09:04:56 +02:00
2026-04-29 15:30:04 +02:00
2026-06-02 21:44:57 +02:00
2026-06-02 21:44:57 +02:00
2026-06-02 21:44:57 +02:00
2026-06-26 06:47:38 +02:00
2026-03-14 20:14:18 +01:00
2026-06-14 22:09:02 +02:00
2026-05-03 20:33:29 +02:00
2026-06-25 05:44:44 +02:00
2026-06-04 22:11:51 +02:00
2026-04-07 14:43:17 +02:00
2026-04-07 14:43:17 +02:00
2026-05-13 18:13:48 +02:00
2026-05-13 18:13:48 +02:00
2026-05-30 00:51:16 +02:00
2026-04-23 21:28:38 +02:00
2026-03-11 15:54:01 +01:00
2026-06-01 21:59:46 +02:00
2026-06-25 05:44:44 +02:00
2026-01-21 22:56:39 +01:00
2026-01-21 22:56:39 +01:00
2026-04-11 21:37:07 +02:00
2026-01-07 15:59:04 +01:00
2026-02-19 19:51:42 +01:00
2024-10-03 14:42:22 -04:00
2026-05-17 16:55:01 +02:00
2026-04-10 23:19:48 +02:00
2026-06-04 19:53:52 +02:00
2026-05-09 12:36:41 +02:00
2026-06-16 10:51:51 +02:00
2026-04-13 00:51:23 +02:00
2026-02-19 18:07:47 +01:00
2026-02-11 15:22:56 +01:00
2025-09-24 00:19:51 +02:00
2026-04-13 19:53:04 +02:00
2026-06-02 14:00:16 +02:00
2026-06-06 17:25:27 +02:00
2026-05-12 23:45:19 +02:00
2026-05-18 21:03:04 +02:00
2026-05-12 23:45:19 +02:00
2026-05-12 23:45:19 +02:00
2026-05-12 23:45:19 +02:00
2025-09-24 00:19:51 +02:00
2026-06-16 17:13:03 +02:00
2026-06-04 11:48:44 +02:00
2026-06-18 20:19:36 +02:00
2026-02-08 18:19:37 +01:00
2026-02-08 18:19:37 +01:00
2026-06-06 17:11:33 +02:00
2026-06-18 20:18:18 +02:00
2026-05-05 01:04:29 +02:00
2026-05-27 23:25:46 +02:00
2024-02-02 19:37:10 -06:00
2026-05-12 00:22:37 +02:00
2026-06-01 22:00:48 +02:00
2026-04-18 00:06:24 +02:00
2026-05-12 12:18:17 +02:00
2026-04-07 20:46:05 +02:00
2026-05-03 10:56:31 +02:00
2026-05-03 10:56:31 +02:00
2026-05-12 00:00:49 +02:00
2026-02-06 18:04:29 +01:00
2026-05-12 21:55:22 +02:00
2026-05-30 00:22:25 +02:00
2026-06-04 23:11:43 +02:00
2026-03-19 15:17:55 +01:00
2026-05-28 14:55:21 +02:00
2026-05-12 00:22:37 +02:00
2026-05-30 23:27:18 +02:00
2025-04-01 08:41:49 -04:00
2026-04-05 09:27:24 +02:00
2026-06-03 00:04:32 +02:00
2026-04-03 12:38:37 +02:00
2026-03-13 07:59:45 +01:00
2026-06-19 17:07:09 +02:00
2025-11-11 19:51:07 +01:00
2026-04-29 13:00:38 +02:00
2026-06-25 05:38:06 +02:00
2025-11-17 21:51:37 +01:00
2025-10-22 19:51:24 +02:00
2026-05-30 23:29:37 +02:00
2026-06-15 21:43:08 +02:00
2026-01-23 00:27:00 +01:00
2026-05-12 12:17:00 +02:00
2026-05-08 15:15:23 +02:00
2026-05-09 21:55:20 +02:00
2026-02-10 23:14:58 +01:00
2026-05-05 00:47:45 +02:00
2025-05-13 15:53:13 -04:00
2026-06-03 00:37:21 +02:00
2026-05-28 00:01:34 +02:00
2024-07-10 11:22:59 -04:00
2026-05-13 20:07:00 +02:00
2026-05-12 23:45:19 +02:00
2026-03-14 23:56:27 +01:00
2026-05-13 20:07:00 +02:00
2026-05-12 23:45:19 +02:00
2026-01-12 15:35:14 -05:00
2025-02-21 11:57:59 -05:00
2026-06-20 20:33:09 +02:00
2026-05-03 20:33:29 +02:00
2026-06-15 20:34:34 +02:00
2026-06-16 08:32:17 +02:00