# Finance settings

> The finance engine's behaviour that varies between businesses is configuration, not code. Each setting below is a key in the platform settings registry, editable on the Settings pages and by an agent with update_setting, with history and revert. Defaults are the platform's; a business changes only what differs.

URL: https://biloh.com.au/docs/reference/finance-settings
Category: Reference | Audience: operator | Updated: 2026-09-18

## How settings work

All of these live in the platform settings registry. Each is editable on its
Settings page and by an agent through `update_setting`, with a full history
and a one-call revert. Values shown are the platform defaults.

## Bank feed

| Key | Default | What it does |
| --- | --- | --- |
| `finance.bankfeed.chain_guard` | `enforce` | How hard the import refuses a statement that does not chain onto the account it is being imported into |
| `finance.bankfeed.stale_after_days` | 7 | How many days behind the feed may fall before it is called stale and named in the digest |
| `finance.bankfeed.transfer_window_days` | 3 | How many days apart the two halves of an inter-account transfer may land and still be offered as a pair |
| `finance.bankfeed.date_window_days` | 14 | How far apart a payment date and a bank value date may be before linking warns |
| `finance.bankfeed.cutover_date` | unset | The day this business started invoicing in Biloh; lines before it are pre-Biloh history the cutover triage can bulk-mark |
| `finance.close.pre_cutover_boundary` | set per tenant | Cutover triage may not sweep lines dated on or after this date |

## Reconciliation

| Key | Default | What it does |
| --- | --- | --- |
| `finance.reconcile.bulk_confirm_min_score_pct` | 95 | Minimum confidence a suggested deposit-to-invoice match needs before the one-tap bulk confirm accepts it |
| `finance.reconcile.cash_receipt_client_id` | unset | The client a cash or non-invoice deposit is booked against by "Record as a cash receipt" |
| `finance.vendors.auto_apply_coding_rules` | off | Run the vendor coding rules automatically after a bank import |
| `finance.vendors.default_gst_treatment` | `gst` | The treatment a new vendor gets when none is stated |
| `finance.ap.unregistered_gst_enforcement` | `block` | Block or warn when a bill records GST from a contractor not registered for it |
| `finance.ap.out_of_gate_settlement` | per tenant | Whether settling a bill whose linked client invoice is unpaid warns or is refused |
| `finance.expenses.gst_estimation` | `off` | How to estimate GST on auto-triaged expenses with no receipt attached |

## GST evidence and BAS

| Key | Default | What it does |
| --- | --- | --- |
| `finance.accounting_basis` | `cash` | Basis for period reconciliation; the close, BAS and P&L are cash |
| `finance.tax.locale` | `AU` | Jurisdiction used by invoice validation and rendering |
| `finance.gst.receipt_only_threshold_cents` | 8250 | Below this a purchase needs only a record, not a tax invoice, to claim its GST |
| `finance.gst.detailed_tax_invoice_threshold_cents` | 100000 | Above this the tax invoice must also identify you, the buyer |
| `finance.gst.require_buyer_detail_above_threshold` | false | Refuse to call a large purchase substantiated until its tax invoice is confirmed to name you |
| `finance.bas.payg_instalment_cents` | 0, shown as not set | The PAYG instalment the ATO issued for the quarter |

## Envelopes

| Key | Default | What it does |
| --- | --- | --- |
| `finance.envelopes.income_tax_provision_pct` | 0 | Percent of net cash profit to set aside for income tax on top of the GST position; 0 reports `provision_unset` |
| `finance.envelopes.buffer_horizon_weeks` | 6 | How many weeks of scheduled visits the contractor buffer should cover |
| `finance.envelopes.digest_tolerance_cents` | 5000 | How far below target an envelope may sit before the digest names it |

## Shoebox and evidence reading

| Key | Default | What it does |
| --- | --- | --- |
| `finance.shoebox.aging_window_days` | 14 | How long a receipt may wait unpaired before the digest names it |
| `finance.shoebox.pairing_window_days` | 14 | How many days apart a receipt and a debit may be and still be offered as a pair |
| `finance.extraction.figure_confidence_min` | 0.9 | How sure a document read must be before a money figure is stored |
| `finance.extraction.needs_human_confidence_threshold` | per tenant | Below this confidence a reading is flagged for a person |
| `finance.extraction.abn_cross_check` | per tenant | Check an ABN read off a document against the ABR |

## Obligations, assets and the pack

| Key | Default | What it does |
| --- | --- | --- |
| `finance.obligations.lead_days` | 21 | How many days before a lodgement or renewal is due the digest starts naming it |
| `finance.assets.instant_writeoff_threshold` | 100000 | The most an asset can cost, in cents, and still be written off in full in the year it was bought |
| `finance.pack.evidence_bundle_max_mb` | 200 | The most the pack's Evidence folder may hold before it files the index and an overflow note instead |
| `finance.bookkeeper.backlog_card_cap` | 5 | How many things the bookkeeper desk may raise as separate cards before it raises one summary card |
| `finance.bookkeeper.stale_pending_operation_days` | per tenant | How long a staged operation may await approval before it counts as stale |

## Invoicing, credits and statements

The invoice side has its own keys (numbering, payment terms, dates on send,
late fees, statements, credit notes). See
[how payment terms are decided](/docs/explanation/how-payment-terms-are-decided)
and [invoice send gates and guards](/docs/reference/invoice-send-gates-and-guards).

## Related

- [Finance MCP tools](/docs/reference/finance-mcp-tools)
- [The finance engine overview](/docs/explanation/finance-engine-overview)
