docs: storage overage markup is 25% (x1.25); mark 2026-10-06 storage billing decisions #1

Merged
marchon merged 1 commit from docs/storage-billing-consistency into overdue-negative-balance-only 2026-10-06 13:19:10 -04:00
Owner

Docs and comments only. No behavior change: no runtime code or numbers move, and this is not deployed.

Branch base: overdue-negative-balance-only (1ac4e55), the branch that matches the live /opt/verae/zappier-edge.

Why

George decided on 2026-10-06 that the storage overage markup is 25% (×1.25). That matches the code (DEFAULT_STORAGE_OVERAGE_MARKUP_BPS = 2500, giving 2875 millicents = $0.02875/GB-month at the $0.023 AWS pin). The comments and docs still said +20% / ×1.20.

The same day he also settled the storage billing model (D1–D6). Some docs stated the opposite as if it were the plan, so this PR marks them. The full design is in marchon/peergos-flutter docs/STORAGE_BILLING_DESIGN.md.

Changes

File Change
src/pricing.ts Two comments: +20% → +25%, AWS×1.20 → AWS×1.25
tests/peergos-billing.test.ts Test title AWS×1.20 → AWS×1.25, and the arithmetic comment 2760 → 28¢ → 2875 → 29¢. The test already asserts 29, so no assertion changes.
docs/PEERGOS-BILLING.md Hosted overage × 1.20 → × 1.25 with the dollar figure. States that the ×1.5 / ×0.75 multipliers apply to timestamp SKUs only. Marks the cust-platform default as contradicting D3. Adds a "Storage billing decisions (not yet implemented)" section listing D1–D6.
docs/ACCOUNTING.md Notes that Stripe customers will be collected through a Stripe subscription (D1), and that prepaid drawdown describes current code only.
docs/CUSTOMER-PORTAL.md Same D1 note on the Reload / prepaid section.

Decisions referenced

  • D1: Stripe subscription (storage base item plus metered overage item) for Stripe customers; PO customers stay on the invoice run.
  • D2: the monthly credit counts against storage.
  • D3: every Peergos user has a Verae account.
  • D4: partial months are prorated.
  • D5: 25% markup.
  • D6: never block on overage; quotas auto-raise.

Not in this PR (code follow-ups)

  • Retire the cust-platform default in POST /admin/api/peergos/users (D3).
  • Stripe subscription, storage meter and webhooks (D1).
  • Storage proration (D4).
  • Skip Issue / email / overdue for subscription customers.

Please don't merge without review.

Docs and comments only. **No behavior change**: no runtime code or numbers move, and this is not deployed. Branch base: `overdue-negative-balance-only` (1ac4e55), the branch that matches the live `/opt/verae/zappier-edge`. ### Why George decided on 2026-10-06 that the storage overage markup is **25% (×1.25)**. That matches the code (`DEFAULT_STORAGE_OVERAGE_MARKUP_BPS = 2500`, giving 2875 millicents = $0.02875/GB-month at the $0.023 AWS pin). The comments and docs still said +20% / ×1.20. The same day he also settled the storage billing model (D1–D6). Some docs stated the opposite as if it were the plan, so this PR marks them. The full design is in `marchon/peergos-flutter` `docs/STORAGE_BILLING_DESIGN.md`. ### Changes | File | Change | |------|--------| | `src/pricing.ts` | Two comments: `+20%` → `+25%`, `AWS×1.20` → `AWS×1.25` | | `tests/peergos-billing.test.ts` | Test title `AWS×1.20` → `AWS×1.25`, and the arithmetic comment `2760 → 28¢` → `2875 → 29¢`. The test already asserts 29, so no assertion changes. | | `docs/PEERGOS-BILLING.md` | Hosted overage `× 1.20` → `× 1.25` with the dollar figure. States that the ×1.5 / ×0.75 multipliers apply to timestamp SKUs only. Marks the `cust-platform` default as contradicting D3. Adds a "Storage billing decisions (not yet implemented)" section listing D1–D6. | | `docs/ACCOUNTING.md` | Notes that Stripe customers will be collected through a Stripe subscription (D1), and that prepaid drawdown describes current code only. | | `docs/CUSTOMER-PORTAL.md` | Same D1 note on the Reload / prepaid section. | ### Decisions referenced * D1: Stripe subscription (storage base item plus metered overage item) for Stripe customers; PO customers stay on the invoice run. * D2: the monthly credit counts against storage. * D3: every Peergos user has a Verae account. * D4: partial months are prorated. * D5: 25% markup. * D6: never block on overage; quotas auto-raise. ### Not in this PR (code follow-ups) * Retire the `cust-platform` default in `POST /admin/api/peergos/users` (D3). * Stripe subscription, storage meter and webhooks (D1). * Storage proration (D4). * Skip Issue / email / overdue for subscription customers. Please don't merge without review.
Docs and comments only, no behavior change:
- src/pricing.ts: fix two comments that said +20% / AWS x1.20 (the code is 2500 bps = x1.25)
- tests/peergos-billing.test.ts: fix test title and arithmetic comment (2875 millicents -> 29c, which the test already asserts)
- docs/PEERGOS-BILLING.md: hosted overage AWS x1.25; clarify that the 1.5/0.75 multipliers are timestamp-only; flag the cust-platform default as contradicting D3; add a decisions D1-D6 section
- docs/ACCOUNTING.md, docs/CUSTOMER-PORTAL.md: mark prepaid drawdown as current behavior and note the planned Stripe subscription collection (D1)
marchon merged commit b1dc6e5093 into overdue-negative-balance-only 2026-10-06 13:19:10 -04:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
marchon/verae-edge-billing!1
No description provided.