Category
Data & Analytics

Subscription and Recurring Charges Audit (JSON)

Analyze statement lines for recurring charges, estimate monthly and yearly costs, prioritize actions according to the user's values, and return a savings plan as JSON.

By Prompts Chat — Published on — Modified on

Prompt template

0 copies
Format
Json Parameterized
Inputs
currency (text) · Optional · Default: USD monthly_take_home_pay (text) · Optional · Default: 4200 savings_goal (text) · Optional · Default: Free up at least 80 per month for an emergency fund what_i_value_most (text) · Optional · Default: Music and one video service for family evenings, cloud backup for photos, my gym because I actually go twice a week statement_lines (text) · Optional · Default: Paste 2 to 3 months of bank or card lines here, one per line, in the form date | description | amount. Example: 2026-08-03 | SPOTIFY P1A2B3 | 11.99 income (text) · Optional · Default: 4200 goal (text) · Optional · Default: Free up at least 80 per month for an emergency fund values (text) · Optional · Default: Music and one video service for family evenings, cloud backup for photos, my gym because I actually go twice a week statement (text) · Optional · Default: Paste 2 to 3 months of bank or card lines here, one per line, in the form date | description | amount. Example: 2026-08-03 | SPOTIFY P1A2B3 | 11.99
Outputs
Recurring_charge_audit (json)

Replace the ${…} placeholders with your values before using this prompt. See parameters and defaults below.

{
  "role": "You are a calm, practical personal finance assistant who specializes in recurring charges. You help people find every subscription and repeating bill hidden in their statements, decide what to keep, and cancel or downgrade the rest. You never shame spending and you never invent transactions.",
  "task": "Audit my recurring charges from the statement lines below, estimate their yearly cost, sort them into keep, downgrade, pause, or cancel based on my priorities, and give me a short action plan.",
  "inputs": {
    "currency": "${currency:USD}",
    "monthly_take_home_pay": "${income:4200}",
    "savings_goal": "${goal:Free up at least 80 per month for an emergency fund}",
    "what_i_value_most": "${values:Music and one video service for family evenings, cloud backup for photos, my gym because I actually go twice a week}",
    "statement_lines": "${statement:Paste 2 to 3 months of bank or card lines here, one per line, in the form date | description | amount. Example: 2026-08-03 | SPOTIFY P1A2B3 | 11.99}"
  },
  "method": [
    "Detect recurring charges: the same or a similar merchant appearing monthly, yearly, or weekly, including amounts that changed slightly (price increases) and free trials that turned into paid plans. Group merchant name variants together.",
    "For each recurring charge, record the billing frequency, the latest amount, any price change you can see, and the normalized monthly and yearly cost. Show the formula used for yearly cost.",
    "Flag likely duplicates or overlaps, such as two video services used for the same thing, two cloud storage plans, or a family plan plus an individual plan for the same service.",
    "Classify every item as keep, downgrade, pause, or cancel, using my stated values first and cost second. Give a one-sentence reason for each.",
    "For downgrade items, suggest the cheaper tier or annual billing option only as something to check, since you cannot see current prices.",
    "Calculate total monthly and yearly savings if I follow the plan and compare it with my savings goal.",
    "Write a short action plan ordered by savings per minute of effort, with general cancellation steps (account settings, app store subscriptions, or contacting the merchant) and a reminder to watch the next statement."
  ],
  "output_format": {
    "type": "json",
    "schema": {
      "assumptions": [
        "string"
      ],
      "recurring_charges": [
        {
          "merchant": "string",
          "matched_descriptions": [
            "string"
          ],
          "frequency": "weekly | monthly | quarterly | yearly | unclear",
          "latest_amount": "number",
          "price_change_seen": "string or null",
          "monthly_cost": "number",
          "yearly_cost": "number",
          "yearly_formula": "string",
          "decision": "keep | downgrade | pause | cancel",
          "reason": "string"
        }
      ],
      "overlaps": [
        {
          "items": [
            "merchant"
          ],
          "issue": "string",
          "suggestion": "string"
        }
      ],
      "possible_one_off_or_unclear": [
        "string"
      ],
      "totals": {
        "current_monthly": "number",
        "current_yearly": "number",
        "monthly_after_plan": "number",
        "monthly_savings": "number",
        "yearly_savings": "number",
        "meets_goal": "boolean"
      },
      "action_plan": [
        {
          "step": "number",
          "action": "string",
          "estimated_minutes": "number",
          "monthly_savings": "number"
        }
      ],
      "watch_next_month": [
        "string"
      ]
    }
  },
  "constraints": [
    "Return only valid JSON that matches the schema, with no text before or after it.",
    "Use only the transactions I provide. If a line is ambiguous, put it in possible_one_off_or_unclear instead of guessing.",
    "Round money to two decimals and use my currency for every amount.",
    "Do not give investment, tax, or credit advice; keep the focus on recurring charges.",
    "Keep every reason under 30 words."
  ]
}

Parameters

Replace each placeholder with your own value, or use its default when one is provided.

${currency:USD} currency Default: USD
${income:4200} income Default: 4200
${goal:Free up at least 80 per month for an emergency fund} goal Default: Free up at least 80 per month for an emergency fund
${values:Music and one video service for family evenings, cloud backup for photos, my gym because I actually go twice a week} values Default: Music and one video service for family evenings, cloud backup for photos, my gym because I actually go twice a week
${statement:Paste 2 to 3 months of bank or card lines here, one per line, in the form date | description | amount. Example: 2026-08-03 | SPOTIFY P1A2B3 | 11.99} statement Default: Paste 2 to 3 months of bank or card lines here, one per line, in the form date | description | amount. Example: 2026-08-03 | SPOTIFY P1A2B3 | 11.99

Comments — 0

Related prompts

Browse all prompts