Recued
Menu
← Back to recipes

What each client owes

by recued-core v2 62 views

Use “What each client owes” in Recued. One line per client: what is outstanding, across how many invoices, and how long the oldest has been due.

Complete workflow

Invoice Book 12 pinned recipes

Use Invoice Book in Recued for invoicing, receivables, getting paid, and freelance. It includes 18 built-in actions and 11 ready-to-run workflows. Actions that change data use Recued's approval controls.

You are viewing one recipe in this workflow. Installing it opens the complete pack so its other recipes and background automations arrive together.

What each client owes
This recipe

Use “What each client owes” in Recued. One line per client: what is outstanding, across how many invoices, and how long the oldest has been due.

pack:invoice-bookinvoicingrecordsaggregate
by recued-core pinned v2

Use “Issue an invoice” in Recued. Turn the entries you picked into an invoice: lines frozen at issue time, total computed once from minutes, and a balance that payments come off.

pack:invoice-bookinvoicingreceivablesrecords
by recued-core pinned v6

Use “Record a payment” in Recued. Take a payment off an invoice's balance. Part payments are supported; overpayment is refused rather than absorbed, and the invoice settles when the balance reaches zero.

pack:invoice-bookinvoicingreceivablespayments
by recued-core pinned v6

Use “Who owes you” in Recued. Every open invoice with what is outstanding, which are overdue, and the oldest one still unpaid.

pack:invoice-bookinvoicingreceivablesoverdue
by recued-core pinned v4

Use “Add something billable” in Recued. Anything you can charge for that is not logged time — a fixed fee, materials, a call-out. A negative amount is a credit.

pack:invoice-bookinvoicingbillablerecords
by recued-core pinned v4
Show all 12 recipes

Use “Delete a pending item” in Recued. Remove something from the pending list. If it came from logged hours, you choose whether those hours go back on the unbilled list or get deleted with it.

pack:invoice-bookinvoicingbillablerecords
by recued-core pinned v6

Use “Pull hours into pending items” in Recued. Turn unbilled time entries into pending billable items, priced at a rate you give.

pack:invoice-bookinvoicingbillablebridge
by recued-core pinned v6

Use “What could go on an invoice” in Recued. Everything billable and not yet invoiced — hours you pulled across and fees you typed in — each with its id, so you can choose.

pack:invoice-bookinvoicingbillablerecords
by recued-core pinned v3

Use “Carry a balance forward” in Recued. Close a part-paid invoice and issue a new one for exactly what is left, with the VAT carried in proportion. The new invoice takes no items.

pack:invoice-bookinvoicingreceivablesrecords
by recued-core pinned v6

Use “One invoice” in Recued. Open one invoice from the list that names it, and read everything recorded about that invoice on one page.

pack:invoice-bookinvoicedetailnavigation
by recued-core pinned v1

Use “One billable item” in Recued. Open one billable item from the list that names it, and read everything recorded about that billable item on one page.

pack:invoice-bookbillable-itemdetailnavigation
by recued-core pinned v1
View pack details, dependencies, and permissions →

One question, one query

list-open-invoices shows you invoices. This shows you clients — the view you actually want before a chase call, because a client with four invoices at £300 is a different conversation from one with a single £1,200.

⛔ The totals are exact. The pack declares this as a grouped aggregate op, so the money is summed inside Records as scaled integers. Adding up decimal strings in a recipe would go through Number() and drift — £1,234.10 + £5,678.20 is £6,912.299999999999 in floating point, and it rounds away to something that looks right until it doesn't.

⚠ It is one query, not one per client. The grouping happens in the same scan that reads the rows, which is why this stays usable when you have hundreds of clients rather than five.

What it will not do

⚠ Owed is invoices only. Time you have logged and not yet invoiced is not a debt — nobody has been asked for it. list-unbilled-hours is that question.

⛔ Currencies do not add up, so pick one. Each invoice carries its own currency and this sums whatever it is given. Leave the filter blank across a mixed book and you get a number with no unit, which looks like money and is not. The recipe refuses to render a total when it was not given a currency to hold to.

⚠ A client with no email lands in one row marked (no client email). They are not dropped and not silently merged into a blank name — an invoice with nobody attached is a real invoice with real money on it, and the row is there so you go and fix it.

⚠ Long lists are capped. Past 200 clients the list says so rather than quietly showing you the first 200 as though that were all of them. Every figure shown is still whole; what is missing is rows.

How it works 18 steps

Inspect the data fetches, transforms, gates, and output this recipe runs.

Process (18 steps)
■ currency_raw trim
Trim whitespace from setting currency
■ currency uppercase
Convert currency raw to uppercase
■ has_currency compare
Check if currency has data
⚠ currency_guard guard
Stop if has currency equals
■ status trim
Trim whitespace from setting status
◆ owed recued-core.invoice-book.invoice.owed_by_client
Owed by client invoice on invoice book
■ groups default
Apply default
■ client_count count
Count items in groups
■ rows map
Extract from each item
■ labelled map
Extract from each item
■ ranked map
Extract from each item
■ sorted sort
Sort by owed_rank
■ table to_table
Format results as a data table
■ total_raw sum
Sum values in
■ total math
Calculate: {{step.total_raw}} / 100
■ complete default
Apply default
■ capped_note ternary
Apply ternary
■ card to_summary
Format results as a summary card
▼
Output
summary card
table table
Settings 2 configurable

Configurable at install. Defaults shown — change them anytime in Recued.

status setting = open
currency setting = GBP

Uses (1 operation)

Pack operation Owed by client invoice on invoice book recued-core.invoice-book.invoice.owed_by_client

Trust & control

What installing this recipe would let it do. Recued grants these permissions at install — review them there before approving.

What it's allowed to do

Read Pack Invoice Book read-only
Read: invoice.owed_by_client · No approval

About

Tags

pack:invoice-bookinvoicingrecordsaggregatev2

Details

18 steps 2 configurable settings recipe_id: list-what-clients-owe