This is what an assistant calls when the person it works for asks how the business is going or
what they can pay themselves. One call answers it. Amounts are integer cents: 81250 is $812.50.
Biloh never moves money: its tools record payments that already happened, and a pay-now link opens the business's own Stripe checkout for its client.
The tools
| Tool | Use it for |
|---|---|
get_money_brief | The whole picture in one call — start here |
get_owner_pay_plan | The pay plan alone: "what can I pay myself", "when am I caught up with the tax" |
get_envelope_targets | What should be in the tax and buffer accounts now, what is, and the gap |
All three take the same optional inputs: as_of_date (YYYY-MM-DD, default today in the
business's timezone), include_test (default false) and, for the first two, detail
(summary, the default, or full). None has side effects.
What get_money_brief returns
Relay headline, the top of needs_you and the first entry of levers; read the rest when asked.
| Field | What it holds |
|---|---|
headline | One sentence: this pay day's three transfers |
needs_you | Plain sentences, most urgent first |
pay_day | this_pay_day, tax_transfer_cents, buffer_transfer_cents, drawings_transfer_cents, planned_weekly_drawings_cents, safe_weekly_drawings_cents, steady_state_drawings_cents, caught_up_date |
plan_narrative | The dated plan in words |
cash.accounts[] | name, purpose, balance_cents, target_cents (null when the account's purpose has no target), target_basis, feed_stale |
receivables | overdue_count, overdue_cents, open_cents, oldest_overdue[] |
payables.due_within_7_days | count, total_cents and items[] — contractor bills falling due in the next seven days |
levers[] | key, label, impact, pay_effect_cents_per_week, next_tool |
plan | The whole pay plan, as get_owner_pay_plan returns it |
next_tools | Where to go next, by purpose |
advice_only | Always true |
The plan's trajectory.weeks holds the first 8 pay days by default, with weeks_total and a
weeks_note; call again with detail: "full" for every week. The narrative and milestones are
never trimmed.
Reading the pay plan
In get_owner_pay_plan, this_pay_day is today on a pay day, otherwise the next one.
this_week holds the transfers net of anything already drawn or moved, and
planned_weekly_drawings_cents is the owner's pay. Figures are weekly averages over the business's
lookback window; each dated tax bill is paid from a sinking fund on its due date. Read warnings
and data_notes aloud when they are present — they say what the plan could not see.
Reading the envelope targets
get_envelope_targets returns, per envelope, target_cents, actual_cents (from the chained bank
balance), delta_cents (positive means short) and advice
(this week's transfer from the pay plan; lump_sum_advice keeps the whole gap). The tax target
includes an income-tax provision only once the business has set its percentage:
until then it says provision_unset. An envelope with no account registered says
no_account_registered and still shows the target.
Acting on a lever
A lever names its next_tool. Collecting overdue invoices is propose_payment_reminders — a
staged send that goes out only after the person approves it
(the chasing sequence). Changing the plan's
tax percentage or buffer pace is update_setting; contractor bills by age are
get_aged_payables. Every send stays two-step: preview, then the person's yes.
What to say about money
Never tell the person a transfer has been made or scheduled. Say what to move, to which account, and that they make it in their bank; the bank feed pairs it afterwards.