diff --git a/client/pages/SubscriptionsPage.jsx b/client/pages/SubscriptionsPage.jsx
index 5ce773b..8b67f29 100644
--- a/client/pages/SubscriptionsPage.jsx
+++ b/client/pages/SubscriptionsPage.jsx
@@ -319,6 +319,30 @@ function SubscriptionRow({ item, onEdit, onToggle, moveControls, dragProps, busy
Paused — not actively tracked
)}
+ {!!item.autopay_enabled && (
+
+
+ AP
+
+ Autopay enabled
+
+ )}
+ {!!item.has_2fa && (
+
+
+ 2FA
+
+ Two-factor authentication configured
+
+ )}
+ {(!!item.has_merchant_rule || !!item.has_linked_transactions) && (
+
+
+ L
+
+ Linked to bank transactions
+
+ )}
diff --git a/services/subscriptionService.js b/services/subscriptionService.js
index 7758b3d..c22e21c 100644
--- a/services/subscriptionService.js
+++ b/services/subscriptionService.js
@@ -509,7 +509,10 @@ function getSubscriptions(db, userId) {
SELECT b.*, b.catalog_id, c.name AS category_name,
CASE WHEN EXISTS(
SELECT 1 FROM bill_merchant_rules WHERE bill_id = b.id AND user_id = b.user_id
- ) THEN 1 ELSE 0 END AS has_merchant_rule
+ ) THEN 1 ELSE 0 END AS has_merchant_rule,
+ CASE WHEN EXISTS(
+ SELECT 1 FROM transactions WHERE matched_bill_id = b.id AND match_status = 'matched'
+ ) THEN 1 ELSE 0 END AS has_linked_transactions
FROM bills b
LEFT JOIN categories c ON c.id = b.category_id AND c.user_id = b.user_id AND c.deleted_at IS NULL
WHERE b.user_id = ?