Skip to main content

Australian financial planning and analysis with openfpa

tests licence: MIT python

Synthetic example. Forecasting aid, not tax advice; a human approves the assumptions and funding decision.

Input: Lumbridge Services' fabricated records, NSW payroll assumptions and dated customer receipts and payments for October to December 2026.

Lumbridge Services is a fictional Newcastle maintenance business. Its Varrock and Falador service lines are Old School RuneScape references; no game knowledge is needed. All amounts are AUD.

From a clone, use Python 3.11 and the locked development environment:

uv sync --locked --extra dev
uv run --locked --extra dev python examples/lumbridge-services/models/generated/lumbridge.py

Output: briefing.md, lumbridge.xlsx, monthly and cash schedules in examples/lumbridge-services/output/.

Forecast measure Receipt on time Receipt 45 days late
Quarter revenue $180,000.00 $180,000.00
Quarter profit before income tax $35,957.55 $35,957.55
October closing cash $32,040.00 ($11,960.00)
Lowest daily closing cash $16,800.00 ($25,160.00)
December closing cash $67,320.00 $67,320.00

Human decision: Can the business meet its next payments if a customer pays late, and should the owner defer discretionary equipment spending?

In desktop Excel, change Assumptions!B2 from 0 to 45. This delays one $44,000 receipt and creates a $25,160 cash shortfall on 6 November without changing profit. Restore 0 after use. The workbook supports only whole-day receipt delays from 0 to 120; CSVs and briefing text are fixed exports.

Read the assumptions and limits, then use the independent trial guide to record a review. The independent accountant trial remains pending. This synthetic case does not establish client outcomes or forecast accuracy.

Harbour Light provides a separate Victorian wholesale example with FY2027 reporting and quarterly BAS cash timing.

Setup, Australian scope, skills, kernel packages, upstream workbench and reference

What this repository adds

An Australian extension of openfpa, by Guiderail: 30 June years, Xero AU mapping, GST/BAS cash timing and payroll on-cost assumptions.

Package lifecycle: source-only. The distribution is au-fpa-pack, the import is pyfpa, and the command is openfpa. It is not published to PyPI.

Reproduce and inspect

The command above creates files; it does not establish native Excel recalculation or forecast accuracy.

Skills

skills/ holds 17 skills. Sixteen are the pack's own, grouped by what they are for:

  • Australian rules: fpa-au-drivers, fpa-au-gst-bas, fpa-au-payroll, fpa-au-xero
  • Onboarding and building: fpa-learn-business, fpa-configure-actuals, fpa-scaffold-model, fpa-excel-model
  • Running the month: fpa-monthly-close, fpa-cash-runway, fpa-board-briefing, fpa-cfo-judgment
  • Learning from outcomes: fpa-capture-correction, fpa-backtest-learn, fpa-research-loop, fpa-portfolio-learn

The seventeenth, skills/generated/sku-profitability, is the worked example of a company-specific skill the workflow writes, not a skill the pack ships for every company.

.claude-plugin/plugin.json declares the repository as the openfpa plugin, version 0.1.0, MIT. That manifest is what a Claude Code marketplace entry pointing at this repository installs.

Kernel packages and how each is reached

Package What it is for How it is reached
pyfpa/memory Company memory on disk: the .fpa/ workspace, intake, sources, mappings, connectors, corrections, experiments, entrypoints and the retrieval index. The openfpa CLI. Every workspace command in the CLI reference goes through it.
pyfpa/research The champion and challenger loop: a company objective, scored epochs, and a model registry that only a recorded human approval changes. openfpa status reads the model registry. The loop itself runs from skills/fpa-research-loop against the Python API.
pyfpa/portfolio Cross-client learning: a portfolio manifest, priors mined and validated across clients, and recurring generated skills promoted into a shared library. The Python API only. No CLI command reaches it, and today the one documented route is skills/fpa-portfolio-learn.

Reference and contribution

MIT licensed. Guiderail's upstream work and Ryan Duguid's additions retain their attribution in LICENSE.

Metadata

Release files for au-fpa-pack 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for au-fpa-pack 0.1.1
File Size Uploaded
au_fpa_pack-0.1.1.tar.gz 146.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for au-fpa-pack 0.1.1
File Interpreter ABI Platform
au_fpa_pack-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 257.2 kB

Release files / au_fpa_pack-0.1.1.tar.gz

Download URL au_fpa_pack-0.1.1.tar.gz
Size 146.9 kB
Tags Source
SHA-256 checksum
How to use checksums
a2b10eef405025ddc0c4ad08ba9dbd3d49a3b32647cf73d547a3cce3c3b11fbb
BLAKE2b-256 checksum
How to use checksums
e592bda1a8b600a839dc2f8d409f7b8b0fd7f6f8793705435beb47726a2ada46
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 12, 2026.

Transparency log

Release files / au_fpa_pack-0.1.1-py3-none-any.whl

Download URL au_fpa_pack-0.1.1-py3-none-any.whl
Size 110.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7d0b094feed75eee38918c9c20b1f0924ee0349281474abd18c8eda4a4215637
BLAKE2b-256 checksum
How to use checksums
470d9aa0d72b66a19a3e2a22e77247a17b88cfc8f25cbf090856214ccdaf477a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 12, 2026.

Transparency log

Release history Release notifications | RSS feed

0.2.0

2 release files

0.1.2

2 release files

This release

0.1.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page