From daf758d336e8e78206596f6952d7b36a5a58e9c3 Mon Sep 17 00:00:00 2001 From: Sam Rolfe Date: Mon, 10 Aug 2026 10:11:31 +1000 Subject: [PATCH] =?UTF-8?q?docs:=20product=20model=20=E2=80=94=20metering+?= =?UTF-8?q?renewal+unlock=20marked=20done?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/PRODUCT-MODEL.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/PRODUCT-MODEL.md b/docs/PRODUCT-MODEL.md index 480c558..1991510 100644 --- a/docs/PRODUCT-MODEL.md +++ b/docs/PRODUCT-MODEL.md @@ -42,7 +42,7 @@ Scope: keep small and lean now; rebuild a larger system once there are a few tho **Info tags (bulk)** - e.g. **$1.50/tag** one-off **or** an annual operator license (e.g. $30/yr for up to 100 tags + content management) — no SMS, near-100% margin; tune with the parks use case -**Pinch points to nail before launch** +**✅ Done**: server-side metering (per-tag credits, admin top-up), renewal date + lazy expiry, unlock notice to the owner (ntfy/SMS) when gated by lapsed or credits. **Remaining pinch points:** 1. **Metering enforced server-side** — count only *sent* (OK:0) SMS; block when credits hit 0 → triggers the unlock flow. 2. **Renewal reminders** (30/7/1 days before) + **grace period** (~7 days) before lapsed. 3. **Top-up profitability at the 6¢ prepaid rate** (works above; even better on a plan).