Skip to content

Monthly

Get last month's spending by category

On the 1st you get totals per spending category and your top merchants, with transfers and card payments left out.

Runs
Monthly
Apps
Plaid
AI
Not needed
Access
Transactions product; Item access_token

Send this to your assistant

Create a ClickRuntime automation: on the 1st of each month at 9am, email me last month's Plaid transactions totalled by category, excluding transfers and credit card payments, plus my top 5 merchants by spend.

Paste it into your assistant. It tells you what it will send or change before it runs live.

First time? Adding ClickRuntime to your assistant takes about two minutes.

Why use it

Why teams use this automation

Most people can say roughly what they earn but not where it goes. Bank apps show a long list of transactions, and the totals that would help, such as dining out, subscriptions or travel, require exporting data and building a spreadsheet. So a household that feels short of money each month cannot say whether the cause is groceries, a growing list of subscriptions or a few large one-off purchases.

On the first of the month, last month's transactions are fetched from Plaid and grouped by their personal_finance_category. Totals are calculated for each category, and merchants are ranked by how much you spent with them. One email then shows the top categories, the biggest merchants and the overall total, in a layout that is easy to compare month to month. Anyone preparing for a big purchase finds it useful too.

It is especially useful for budgeting households, freelancers who separate business spending and anyone setting a savings goal.

What you get out of it

  • See where the money really went

    Category totals replace guesses with figures. Many people discover that dining out or subscriptions cost twice what they thought, and that is the starting point for any realistic budget. Real numbers turn vague worry about money into specific choices.

  • Find merchants that quietly add up

    Ranking merchants by total spending shows the places you visit most. A coffee shop or delivery app that looks cheap per visit can turn out to be one of the largest items in the month.

  • A monthly rhythm that sticks

    Because the email arrives on the first, it becomes a monthly money check-in. A regular, ten-minute habit usually works better than a big review you plan to do and never do. Small recurring habits are easy to keep.

  • Spot subscription creep

    Recurring charges appear as a category with a clear total. Reviewing it monthly makes it easy to cancel services you stopped using before another year of payments goes out. Services you forgot about are the easiest savings to find. A monthly look keeps them from running unnoticed for years.

  • Easier conversations about money

    Couples and business partners can look at the same summary and talk about specific categories. That keeps discussions about spending grounded in numbers instead of impressions. Shared money decisions go better when both people look at the same figures. Nobody has to defend a feeling about where the money went.

How it works

What happens, step by step

  1. On the 1st of each month ClickRuntime gets last month's transactions from your linked accounts.

  2. It leaves out transfers and card payments, so only real spending counts.

  3. It totals spending by category and ranks your top merchants.

  4. The category totals and top merchants arrive in your inbox.

Before it runs live

  • Connect Plaid

What you get

RunsMonthly
Get last month's spending by categorytoday, 9:00Succeeded
Email · Monthly spendingFOOD_AND_DRINK: 842.15 TRAVEL: 1,320.40 Top merchants: Acme Airlines: 980.00

Build your own

Need it to work differently?

This template is a starting point. Copy the prompt and change it, or describe a different automation from scratch, with your own conditions, more apps or an AI step. Your assistant writes it, tests it and runs it on ClickRuntime.
  • Your own rules

    Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.

  • Any number of apps

    One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.

  • AI where it helps

    Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.

  • On a schedule or on each event

    Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.

Changes you can ask for

  • Run it at a different time, more or less often, or only on weekdays
  • Add an AI step, for example to summarize, sort or draft a reply
  • Add another app, for example also send it to Slack
  • Combine it with other Plaid steps into one automation

Under the hood

The code that runs this automation

This is the Python script that runs each time the automation starts. Your AI assistant writes it for you when you send the prompt, and you allow each step in your assistant. To change how the automation works, describe the change to your assistant and it updates the script for you. For every function it can use, see the script reference.
get_a_monthly_spending_by_category_summary.pyexample
from collections import Counter
from datetime import date, timedelta
from clickruntime import on_trigger, credentials, http, notify

PLAID = "https://production.plaid.com"

def plaid(path, **body):
    auth = {"client_id": credentials.secret("PLAID_CLIENT_ID"), "secret": credentials.secret("PLAID_SECRET"),
            "access_token": credentials.secret("PLAID_ACCESS_TOKEN")}
    resp = http.post(f"{PLAID}{path}", json={**auth, **body})
    resp.raise_for_status()
    return resp.json()

SKIP = {"TRANSFER_IN", "TRANSFER_OUT", "LOAN_PAYMENTS"}

@on_trigger
def run(event):
    end = date.today().replace(day=1) - timedelta(days=1)
    txns, offset = [], 0
    while True:
        page = plaid("/transactions/get", start_date=end.replace(day=1).isoformat(), end_date=end.isoformat(),
                     options={"count": 500, "offset": offset})
        txns += page["transactions"]
        offset = len(txns)
        if offset >= page["total_transactions"]:
            break
    spend = [t for t in txns if t["amount"] > 0 and t["personal_finance_category"]["primary"] not in SKIP]
    cats = Counter(); merchants = Counter()
    for t in spend:
        cats[t["personal_finance_category"]["primary"]] += t["amount"]
        merchants[t.get("merchant_name") or t["name"]] += t["amount"]
    body = "\n".join(f"{c}: {v:,.2f}" for c, v in cats.most_common())
    body += "\n\nTop merchants:\n" + "\n".join(f"{m}: {v:,.2f}" for m, v in merchants.most_common(5))
    notify.email_me(f"Spending in {end:%B}: {sum(cats.values()):,.2f}", body)
    return dict(cats)

FAQ

Common questions

Which categories does it use?
It uses the personal_finance_category that Plaid assigns to each transaction, such as food and drink, transportation or entertainment. These are Plaid's labels, so a few transactions may land in an unexpected category. Merchant names come from the bank's own descriptions.
Are transfers between my own accounts counted as spending?
Plaid labels transfers separately, so they can be left out of the spending totals. Ask your AI assistant to exclude transfers and credit card payments so money moved between your accounts is not counted twice. Refunds and income can be handled the same way if you prefer cleaner totals.
Can I compare to the month before?
Yes. The email can include last month's totals next to the previous month's and show the difference for each category. Describe the comparison you want and look over the update before it replaces the current one. Seeing both months together makes trends obvious.
What permissions does it need?
Transactions product; Item access_token. Nothing else in your accounts is used.
Does it need AI?
No. It runs without AI, so it doesn't use your plan's AI allowance.
How many runs does it use?
One run each time it runs (monthly). Checks that find nothing to do and stop right away aren't counted.
Can I change how it works?
Yes. Describe the change to your AI assistant, for example a different schedule, channel or filter. It updates the automation, tests it and tells you what changed.

Set up “Get last month's spending by category” from your assistant

Copy the prompt above, or connect your assistant first. Free plan, no credit card.