← Financial Ideas
Financial Ideas 2026-08-25

Welcome Bonus Spend Tracker

An integration spec that watches your card transactions against an open welcome-bonus spend threshold and tells you, in plain dollars-per-day terms, whether you're actually on pace to earn it before…

Welcome Bonus Spend Tracker

Welcome-Bonus Spend Tracker

An integration spec that watches your card transactions against an open welcome-bonus spend threshold and tells you, in plain dollars-per-day terms, whether you're actually on pace to earn it before the clock runs out.

Date: 2026-08-25 Type: Integration Theme: Rewards Status: Idea

What it is

A design for a background service that sits between Plaid's transaction feed and a Google Sheet. You tell it which card, what the minimum-spend threshold is, and when the window closes; it pulls every posted purchase on that card, adds them up, and writes back a status — on pace, behind pace, earned, or missed — plus the exact daily spend you'd need for the rest of the window to still catch up.

Who it serves

Someone juggling more than one card-opening welcome bonus at once and trying to remember, three weeks in, whether the $5,000-in-90-days card is actually going to clear or whether they've been quietly under-spending on it while routing purchases elsewhere out of habit.

The money problem it addresses

Welcome bonuses are all-or-nothing: the Chase Sapphire Preferred currently pays 100,000 points after $5,000 in purchases within the first three months, and the Amex Gold pays up to 100,000 points after $8,000 within six — miss the threshold by even a dollar when the window closes and the bonus doesn't partially credit, it just doesn't happen. Nobody adds up their exact spend on a specific card every few days against a specific deadline; they eyeball it, assume they're fine because they're "spending a lot lately," and sometimes find out in month three that a slow month put them behind. This service does the arithmetic continuously instead of once, right before it's too late to fix.

How it works

  1. A Plaid SYNC_UPDATES_AVAILABLE webhook fires when a new transaction posts to a tracked account, and the service pulls it via /transactions/sync.
  2. The service reads a Bonuses tab in a Google Sheet the user maintains — one row per open bonus, naming the card's account ID, the spend threshold, and the window's start and end dates.
  3. For each tracked account, it sums positive transaction amounts inside the window to get cumulative spend, then compares the actual daily pace of that spend to the pace required to hit the threshold by the deadline.
  4. It writes the result to a Progress tab: cumulative spend so far, days remaining, and a status of ON_PACE, BEHIND_PACE, EARNED, or MISSED. When behind, it also writes the exact daily spend needed for the rest of the window to still make it.
  5. A failsafe daily sync covers any card that hasn't fired a webhook in 24 hours, so a dropped webhook delivery doesn't silently stall the tracker.

What's in this folder

  • README.md — this file
  • cover-image.png — cover card image for the web app
  • metadata.md — workflow metadata sidecar
  • integration-spec.md — the full contract: systems, auth model, endpoint and payload shapes for Plaid and Google Sheets, the pace-calculation logic, error model, sequencing guarantees, and operational limits
  • sequence.md — an on-pace walkthrough, a behind-pace walkthrough with the catch-up math, and two failure cases: a Plaid pagination interruption and a Google Sheets quota hit
  • sample-request.json — an example /transactions/sync request against Plaid
  • sample-response.json — the matching response, showing the transaction from the behind-pace scenario in sequence.md

How to run / read it

Read integration-spec.md first for the full contract, then sequence.md for the call-by-call walkthrough of both the on-pace and behind-pace cases, then sample-request.json and sample-response.json together to see the exact payload shape.

Estimated impact

Worked from a real, current offer: the Chase Sapphire Preferred's 100,000-point bonus is worth about $2,050 at The Points Guy's August 2026 valuation of Chase Ultimate Rewards points (2.05 cents each). Miss the $5,000-in-three-months threshold and that entire $2,050 is forfeited — not prorated, not partially credited. Catching a behind-pace trend with even a month left to fix it, instead of finding out on day 89, is the difference between adjusting where you route routine spending and losing the bonus outright.

Good to know

This is a spend-tracking and pace-flagging tool, not a recommendation to open any specific card or chase any specific bonus — welcome-bonus terms, spend thresholds, and deadlines change and vary by issuer, and some issuers apply exclusions (cash advances, balance transfers, sometimes gift cards) that don't count toward the threshold even though they post as transactions. Always check your card's actual terms and conditions, not this tracker, for what counts. It also isn't a substitute for reading the fine print on annual fees or whether opening a new card affects your credit application strategy.

Sources

  • https://plaid.com/docs/api/products/transactions//transactions/sync request/response shape, sign convention, pagination, and error codes
  • https://plaid.com/docs/transactions/webhooks/SYNC_UPDATES_AVAILABLE webhook behavior and Plaid's default sync frequency
  • https://developers.google.com/workspace/sheets/api/limits — Google Sheets API default read/write quotas
  • https://thepointsguy.com/credit-cards/amex-gold-sapphire-preferred-pairing-together/ — current Chase Sapphire Preferred (100,000 points / $5,000 in 3 months) and Amex Gold (up to 100,000 points / $8,000 in 6 months) welcome-bonus terms
  • https://thepointsguy.com/loyalty-programs/monthly-valuations/ — TPG's August 2026 point valuations, including Chase Ultimate Rewards at 2.05 cents per point

More from Financial Ideas