Recued
Menu
← Back to recipes

Tenant statement

by recued-core v5 13 views

Use “Tenant statement” in Recued. One tenant's account: everything charged, everything received, and the balance derived from the two. Not read off any invoice, because no invoice knows about the payment that arrived against a different month.

Complete workflow

Rental Book 19 pinned recipes

Use Rental Book in Recued for property, landlord, ledger, and records. It includes 24 built-in actions and 18 ready-to-run workflows.

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

Tenant statement
This recipe

Use “Tenant statement” in Recued. One tenant's account: everything charged, everything received, and the balance derived from the two. Not read off any invoice, because no invoice knows about the payment that arrived against a different month.

pack:rental-bookstatementreportledger
by recued-core pinned v5

Use “Add a building” in Recued. Records one building or complex. Units hang off it.

pack:rental-bookbuildingsetup
by recued-core pinned v2

Use “Add a unit” in Recued. Records one rentable unit against a building. It uses the connections and settings you choose when you run it.

pack:rental-bookunitsetup
by recued-core pinned v2

Use “Add a tenant” in Recued. Records one tenant and how they pay: cash, autopay, or stripe.

pack:rental-bookcustomertenantsetup
by recued-core pinned v3

Use “Open a rental contract” in Recued. Binds a tenant to a unit at a monthly rent. The contract is what a period charge is raised against.

pack:rental-bookcontractsetup
by recued-core pinned v4

Use “Raise the period's rent charges” in Recued. Raises one rent charge per live contract for a billing period. Safe to run unattended on a monthly schedule and safe to run twice — the charge id is the (contract, period, kind) tuple, so a repeat is a no-op rather than a second bill.

pack:rental-bookbillingchargescheduled
by recued-core pinned v4
Show all 19 recipes

Use “Record a rent payment” in Recued. Records what a tenant actually paid, against their account rather than against an invoice. A partial payment is one receipt for the part; an overpayment is one receipt for the whole, and the credit carries.

pack:rental-bookreceiptpaymentmanual
by recued-core pinned v3

Use “Collection sheet” in Recued. The month's collection list as a table and as CSV, one row per active contract, each carrying the contract id the import matches on.

pack:rental-bookreportexportcsv
by recued-core pinned v2

Use “Import payments” in Recued. Reads the collection sheet back and records one receipt per row that carries an amount and the date it arrived. Re-uploading the same sheet records nothing twice, and a row it cannot record is named rather than dropped.

pack:rental-bookreceiptpaymentimport
by recued-core pinned v5

Use “Buildings” in Recued. Every building you hold, with a way into each one's units.

pack:rental-booklistbuildingnavigation
by recued-core pinned v5

Use “Building” in Recued. One building: what it is, and every unit in it. It uses the connections and settings you choose when you run it.

pack:rental-bookdetailbuildingnavigation
by recued-core pinned v5

Use “Unit” in Recued. One unit: who is in it now, and every tenancy it has had. It uses the connections and settings you choose when you run it.

pack:rental-bookdetailunittenancy
by recued-core pinned v4

Use “Contracts” in Recued. Live tenancies by default; expired ones only when you ask.

pack:rental-booklistcontractfilter
by recued-core pinned v5

Use “Customers” in Recued. Everyone on the book, most recent first — and the way to start a tenancy for one.

pack:rental-booklistcustomerpicker
by recued-core pinned v5

Use “Retire or restore a customer” in Recued. Takes a customer off the working list without deleting anything they are attached to, or puts them back.

pack:rental-bookcustomerhousekeeping
by recued-core pinned v5

Use “End a tenancy” in Recued. Closes a contract on a date. The ledger it produced stays exactly as it is — ending a tenancy is not settling it.

pack:rental-bookcontractterminationlifecycle
by recued-core pinned v5

Use “Change the rent” in Recued. Sets a contract's rent. Periods already raised keep the amount they were raised at.

pack:rental-bookcontractrentlifecycle
by recued-core pinned v5

Use “Collect the rent” in Recued. Type what each tenant paid, straight into a grid — one row per live tenancy, one save.

pack:rental-bookreceiptpaymentbatch
by recued-core pinned v5
View pack details, dependencies, and permissions →

The balance is DERIVED, every time

balance = everything charged − everything received, rolled up over the account's whole history. Nothing carries a running total that could drift, and no charge is marked paid.

That is what makes a partial payment ordinary: 800 against 1200 leaves 400 owing on the ACCOUNT, and next month's rent adds to it. An overpayment leaves the balance negative — a credit — and the next period consolidates it without anyone applying it anywhere.

Reading the sign

Positive is owed to you. Negative is credit the tenant is holding.

Both rollups are over the WHOLE account, not the period. The period rows below are shown so you can see the month; the balance deliberately is not scoped to it, because a balance that ignored last month's arrears would be the unreliable number this pack exists to replace.

A receipt with no period still counts. Money that arrived is money that arrived; matching it to a month is optional bookkeeping, not a condition of the balance being right.

How it works 24 steps

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

Process (24 steps)
contract_id trim
Trim whitespace from setting contract id
ok compare
Check if contract id has data
guard guard
Stop if ok equals
contract ?
found compare
Check if contract record id has data
found_guard guard
Stop if found equals
ref template
Generate text from a template
period_in trim
Trim whitespace from setting period
now_iso date_add
Add 0 seconds to
this_month date_format
Format as a date
period coalesce
Use the first available value from: period in, this month
billed_roll ?
received_roll ?
defaults defaults
Apply defaults
balance math
Calculate billed minus received
in_credit compare
Check if balance is less than 0
standing ternary
Apply ternary
period_charges_read ?
period_charges default
Apply default
period_receipts_read ?
period_receipts default
Apply default
charge_rows map
Extract from each item
receipt_rows map
Extract from each item
card to_summary
Format results as a summary card
Settings 2 configurable

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

period setting =
contract id setting = [object Object]

About

Tags

pack:rental-bookstatementreportledgeraggregate

Details

24 steps 2 configurable settings recipe_id: tenant-statement