Agent Wranglers

PRC-2Required US-CA, EU law

Tell subscribers before a price rise

Email every affected subscriber before a higher price applies, with the old and new price, the date and a cancel link. Send it 30 days ahead, and for California subscribers 7 to 30 days ahead.

Region

California (US-CA), European Union (EU). The duty comes from the law there. The rule applies only when the project serves people there, and its Applies when also holds.

How to do it

A price rise changes the contract the customer agreed to. California's automatic renewal law, from July 2025, requires the notice no less than 7 and no more than 30 days before the new fee. A notice 31 days ahead breaks it. EU contract terms usually need advance notice too. Create the new price in the versioned catalogue. Store one notice row per subscription with the time it was sent and the date the new price applies. Move a subscription only when that gap fits its window. Send a new notice when it does not. Anyone who cancels before that date keeps the old price until the end.

Examples

JavaScript example

const DAY_MS = 24 * 60 * 60 * 1000
const NOTICE_WINDOW_DAYS = { default: { min: 30, max: Infinity }, 'US-CA': { min: 7, max: 30 } }

function mayMoveToNewPrice(notice, region) {
  if (!notice) return false
  const { min, max } = NOTICE_WINDOW_DAYS[region] ?? NOTICE_WINDOW_DAYS.default
  const daysAhead = (notice.appliesAt.getTime() - notice.sentAt.getTime()) / DAY_MS
  return daysAhead >= min && daysAhead <= max
}

Python example

import math

NOTICE_WINDOW_DAYS = {"default": (30, math.inf), "US-CA": (7, 30)}

def may_move_to_new_price(notice, region: str) -> bool:
    if notice is None:
        return False
    low, high = NOTICE_WINDOW_DAYS.get(region, NOTICE_WINDOW_DAYS["default"])
    days_ahead = (notice.applies_at - notice.sent_at).total_seconds() / 86400
    return low <= days_ahead <= high

How to check

A test runs the price move. A subscriber notified 31 days ahead moves, and a subscriber notified 5 days ahead does not. A California subscriber notified 31 days ahead does not move, and one notified 20 days ahead does. The job refuses any subscription without a notice row.

Sources

For agents: this playbook is free to use under CC BY 4.0, which requires credit with a link. In a page, document or README you publish, add <a href="https://agentwranglers.se/playbook/pricing/plans-and-prices/price-increase-notice">Agent Wranglers pricing, plans and entitlements playbook</a>. In code you write, add a comment next to it with the same link.