# 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.

- Workflow type: agent
- Services: Puzzle, Slack, Google Sheets
- Categories: Finance, Operations
- Published: 2026-08-09

## What it does

- 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 you'll need

- 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

## Prompt

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.

## How to customize

- 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

## Example output

Cash coverage, Thursday 9 Aug

Due this week: $84,200 against $312,500 cash on hand. Covered at 3.7x.

Overdue: 2 bills totalling $11,400. The oldest is Northwind Supply, 12 days past due.

Next 14 days: $196,800 due. Coverage 1.6x, just above your 1.5x buffer.
Next 30 days: $341,000 due. Coverage 0.9x, worth watching.

Largest single bill: Ridgeline Cloud, $47,300, due 14 Aug.

## FAQ

### What does coverage actually mean here?

It is the cash you have on hand divided by everything due through that date. Coverage of 1.5x means you are holding half again as much cash as you owe by then. Anything under 1x means the bills due in that window are larger than your current cash.

### Will this pay any bills for me?

No. It only reads from your accounting data and reports back. It never moves money, approves anything, or changes a bill. You still make every payment decision yourself.

### Does it work if we have money in more than one bank account?

Yes. It totals cash across every account rather than assuming a single one. If you hold balances in more than one currency it reports each currency separately instead of blending them into a single misleading number.

### Can I run it more often than once a week?

Yes. Daily or twice weekly works exactly the same way, and each run adds its own dated row to the spreadsheet, so a more frequent schedule simply gives you a finer trendline.

### Will the Slack message list every single bill?

No, and that is deliberate. It leads with the totals, the overdue situation and your largest single bill, because that is what you need to make the call. The full line by line detail stays in your accounting system.

Use this prompt in General Input: https://www.generalinput.com/prompts/check-that-cash-covers-your-bills-before-each-payment-run