Check that cash covers your bills before each payment run
Every Thursday at 9am, see what you owe over the next 30 days against the cash you actually have, before you approve a single payment.
Every Thursday at 9am, before we run payments, I want to know whether the bills coming due are actually covered by the cash we have. Use Puzzle for the numbers, post the decision to Slack, and append one row per run to a Google Sheet so I build a trendline of accounts payable pressure over time.
Start with Puzzle Get Current User to resolve the company id. Then use Get Bills filtered to open status to pull everything still owed, Get Vendors so every bill can be attributed to a named vendor, and Get Financial Account Balances to read cash. Puzzle returns start of day balances per financial account, so sum across every cash account rather than assuming there is only one. Page through all results and do not stop at the first page. If Puzzle returns a resource processing error because the company is still syncing, wait briefly and retry before giving up.
Bucket the open bills by due date into four cumulative windows measured from the run date: already overdue, due within 7 days, due within 14 days, and due within 30 days. Cumulative means the 14 day window includes anything overdue and anything due this week, because that is the money that actually has to leave the account by then. Amounts come back as an amount and currency pair with the amount as a decimal string, so parse carefully and sum per currency. If more than one currency is present, report each separately and say so rather than silently adding them together or converting between them.
For each bucket work out a coverage position: total cash on hand divided by the cumulative amount due through that horizon. Compare the 14 day coverage against a buffer I set, defaulting to 1.5x. If 14 day coverage falls below that buffer, flag it loudly at the very top of the message so it is impossible to miss.
Then post a Slack message with Send a Message to my finance channel. Lead with the total due this week against cash on hand. Call out anything already overdue, including how many bills it is and how far past due the oldest one is. Name the single largest bill by amount with its vendor and due date. State the coverage figure for each bucket. Keep this to the decision I need to make and not a full bill listing. If I want line by line detail I will open Puzzle myself.
Finally, append one dated row to my Google Sheet with Append Values: the run date, the overdue total, the due this week total, the 14 day total, the 30 day total, total cash on hand, and the 14 day coverage ratio. Use the same column order on every run so the sheet builds a clean trendline I can chart.
This workflow is read only against Puzzle. It must never create, update or pay a bill. If there are no open bills at all, still post a short all clear message and still append a row of zeros so the trendline has no gaps.
Example output
What does this prompt do?
- Sorts every open bill into overdue, due this week, due within 14 days and due within 30 days, with the vendor named on each one
- Adds up the cash sitting across all of your bank accounts and works out whether each of those windows is actually covered
- Posts a short Slack message with just the decision: what is due this week against cash on hand, anything already overdue, and your single biggest bill
- Flags it loudly when coverage for the next 14 days drops below the safety buffer you set
- Appends a dated row to a Google Sheet every run, so you can watch payables pressure build or ease over the months
What do I need to use this?
- A Puzzle account with your bills, vendors and bank balances synced
- A Slack workspace and a channel for the update, a private finance channel works well
- A Google Sheet to collect the weekly history rows
- Optional: the coverage buffer you want to hold, which defaults to 1.5x
How can I customize it?
- Change the day and time so it lands the morning of your actual payment run, or move it to twice a week if cash is tight
- Raise or lower the 1.5x buffer, or point the alert at a different window than 14 days
- Send it to a private channel or a direct message if the cash position is not for the whole team
- Add or reorder the columns written to the spreadsheet to match how you already track cash
FAQs
What does coverage actually mean here?
Will this pay any bills for me?
Does it work if we have money in more than one bank account?
Can I run it more often than once a week?
Will the Slack message list every single bill?
Related templates
When your flight moves, your calendar times get corrected automatically and you get a Slack note naming the meetings you're about to miss.
Every 15 minutes, forwarded phishing reports get traced back to the server that really sent them, with a verdict in Slack and the worst senders reported.
Every Monday, check every S3 bucket for public exposure, missing encryption and weak backup settings, then get the risks ranked in Slack.
Every weekday at 7am, sign in to the tender portals you track, filter new notices against your bid criteria, and open a deal for the ones worth chasing.
Every weekday at 4pm, spot the threads that went quiet, stage a ready-to-send nudge in your mailbox, and get a ranked Slack recap.
Every Monday, rank the week's matches by expected demand, put the big ones on your venue calendar, and post a rota-ready summary to Slack.
Stop guessing whether you can cover this week's bills.
Set this up once and walk into every payment run already knowing the answer.