diff --git a/app/config/contributions.js b/app/config/contributions.js
index 73005f1..ea60f98 100644
--- a/app/config/contributions.js
+++ b/app/config/contributions.js
@@ -20,3 +20,12 @@ export const getGuidanceLabel = (amount) => {
const match = CONTRIBUTION_PRESETS.findLast(p => p.amount <= n)
return match?.label ?? null
}
+
+// Format a contribution amount with cadence-aware suffix.
+// amount is interpreted in cadence units (e.g. 180 + 'annual' → "$180/yr").
+export const formatContribution = (amount, cadence) => {
+ const n = Number(amount) || 0
+ if (n === 0) return '$0'
+ const suffix = cadence === 'annual' ? '/yr' : '/mo'
+ return `$${n}${suffix}`
+}
diff --git a/app/pages/admin/members/[id].vue b/app/pages/admin/members/[id].vue
index e082be7..76d650b 100644
--- a/app/pages/admin/members/[id].vue
+++ b/app/pages/admin/members/[id].vue
@@ -54,7 +54,7 @@
-
+
Writes to our database only. If the member is on a paid plan, also update recurringAmount in the Helcim dashboard — this form does not sync.
diff --git a/app/pages/admin/members/index.vue b/app/pages/admin/members/index.vue
index d602447..eefc723 100644
--- a/app/pages/admin/members/index.vue
+++ b/app/pages/admin/members/index.vue
@@ -111,7 +111,7 @@