Evidence behind the tools

Check the records behind the tools: identity records, releases, primary source reviews, repository controls and tests you can reproduce. These records support limited software claims. An output is not advice, approval, a compliance decision or a lodgement.

Last reviewed 4 October 2026.

From monthly close to a cash forecast

Fabricated October to December 2026 case. Verified locally on 4 October 2026.

October closes with $22,000 cash against a $24,000 budget. The arithmetic reconciles, but close exceptions remain and a fabricated reviewer requests changes.

Closed-month cash against the original budget

Each row is the closed month at its own checkpoint. All amounts are AUD.
Closed monthCashOriginal cash budgetActual less budgetClose
October$22,000.00$24,000.00-$2,000.00REVIEW
November$24,500.00$24,000.00$500.00REVIEW
December$29,500.00$24,000.00$5,500.00REVIEW

Accounting judgement

October cash rises from $20,000 to $22,000 while finishing $2,000 below budget. These are different comparisons: movement between closed balances and actual cash against the original budget. Revenue exceeds its zero budget by $4,000 and net income by $1,500. Selected transactions explain arithmetic contributions; the cash shortfall remains unattributed. Those contributions and the cash bridge do not establish a business cause or clear a close finding.

I separate calculation, close and review decisions. All three checkpoints have a RECONCILED calculation, a close marked REVIEW and an original receipt marked UNREVIEWED. A later fabricated reviewer requests changes. The source remains provisional and grants no action authority.

The workflow preserves the original budget, freezes closed months and revises the remaining forecast as each month closes. It includes known invoices only; future sales, purchases, tax and funding are excluded.

What was verified

Three forecast packs and reader reports recomputed from retained fabricated evidence. An altered receipt was rejected. A separate native Power BI view matched all 9 monthly rows and 135 supplied value and state fields. Amounts remain exact decimal text, with no financial formulas or aggregation. The full producer workflow was reused from its recorded run.

This verifies local import and displayed values. Integration with the existing financial dashboard, source or reviewer authenticity, live business accuracy, statutory currency and client suitability remain unverified.

Inspect the evidence

The CSV contains all nine checkpoint/month rows and their review states, with amounts in AUD. Months recur as the forecast changes; compare within a checkpoint and do not sum across checkpoints. The JSON reports also retain the cash bridge, close exceptions and source digests. All business data, transactions and reviewers are fabricated.

This is a local software case. It is not tax, legal or financial advice, accounting approval, a posting instruction or a compliance determination.

Accepted upstream work

Maintainers of the projects below merged these specific changes. The merges do not establish adoption or endorsement of this portfolio, or validate its accounting calculations.

OpenAccountants, tax guides for coding agents. Pull request 85 restored the Australian BAS guide and added stale-sync integrity checks, including detection after a write. It merged on 11 August 2026 and changed 10 files. Stopping stale sync runs from overwriting guides also needs the exporter to call those checks and the repository to enforce them. The pull request did not deploy either.

Meltano SDK, a framework for Singer taps and targets. Pull request 3727 retains previously discarded OAuth refresh tokens in memory for the run without writing them to stored configuration. It merged on 8 August 2026 and changed 2 files.

Xero command line, XeroAPI’s command-line tool for the Xero Accounting API. Pull request 44 passes the --standard-layout and --payments-only flags of the balance sheet and profit and loss reports to the matching Xero SDK parameters. The two had been swapped, so --standard-layout returned a cash-basis report with different amounts. It merged on 17 September 2026, changed 3 files and added regression tests for both reports.

PyXero, a Python client for the Xero accounting API. Pull request 440 adds client-credentials authentication for Xero custom connections. It merged on 10 September 2026 and changed 4 files. Pull request 439 raises an error when a Xero call expecting JSON receives a non-JSON page with a 200 status, which the client had passed back to callers as raw bytes. It merged on 9 September 2026 and changed 5 files.

Odoo Community Association, accounting modules for Odoo. Three pull requests for Odoo 19 merged after review. Pull request 1565 stops the financial report module's link hook acting on other reports and on frames that have not loaded. It merged on 7 September 2026 and changed 2 files. Pull request 1003 fixes three online bank statement import tests that failed in the first hour after midnight UTC. It merged on 31 August 2026 and changed 1 file. Pull request 1029 adds regression coverage for automatic reconciliation of an existing statement line. It merged on 31 August 2026 and changed 1 file.

ERPNext, open source ERP software. I reported outdated and misspelt account names in its Australian chart of accounts in issue 59498. A maintainer opened pull request 59499 incorporating my commit and merged it on 27 September 2026. It changed 1 file.

ERPNext Australian Localisation, BAS, ABA payment file and BAI2 bank file extensions for ERPNext. Pull request 194 stops ABA payment files truncating ten-digit account numbers to nine digits. It now rejects the number and names the party or bank account. It merged on 7 September 2026 and changed 2 files.

LedgerSMB, double-entry accounting software. Pull request 9842 makes existing GIFI codes (Canadian tax-reporting account codes) read-only while their descriptions stay editable, with tests for both. It merged on 7 September 2026 and changed 3 files.

requests-cache, a persistent HTTP cache for Python. Pull request 1187 adds a has_content_changed attribute that reports whether a refreshed response differs from the cached copy. It compares JSON without regard to formatting or key order and reports no result when no comparison was made. It merged on 15 September 2026 and changed 7 files.

Merge dates are in Australian Eastern time. Merge status and file counts were read from the GitHub API on 28 September 2026. By then 65 pull requests I had opened in other projects had merged: 46 to OpenAccountants and 19 across 17 other repositories. This section is a selection. To test the tools themselves, rerun the evaluations.

Identity and credentials

I am a Provisional CA ANZ Member. CA ANZ has not endorsed this site or its tools. Two of my credentials can be verified with their issuer: the SAP S/4HANA Financial Accounting Credly badge and the SAP S/4HANA Management Accounting Credly badge. Xero has no public verification page for its certification, so I publish the certificate Xero issued here in full. These credentials do not establish regulatory approval, authorisation to provide a regulated service or a client outcome.

Xero Certified Specialist, Level 3

Holder
Ryan Duguid
Issued by
Xero
Awarded
1 July 2026
Valid until
1 July 2027

The certificate records my own product knowledge for the period shown. It is not a Xero endorsement, certification or review of this site or any tool listed here, and it is not a Xero partner status. The badge is Xero’s artwork, taken from the certificate itself. Both files carry their own source and usage record, not this repository’s software licence.

Packages, releases and repositories

Install commands are under Adopt. The package, release, compatibility and licence links below point to maintained records.

Sources and review dates

Start with current Commonwealth legislation, such as the Income Tax Assessment Act 1997. Regulator material supplies administrative and operational guidance, while accounting standards govern questions within their scope. Check the current primary source before each calculation; secondary summaries are not authoritative.

These records link to the maintained source instead of repeating rates, thresholds, package versions or compatibility tables that change.

Data and privacy boundary

The calculation engines and MCP server run locally. Installation downloads packages. If you use a cloud-backed AI host, supplied arguments, tool results and local library excerpts may be sent to that host’s model provider. Check the host’s configuration and data handling before supplying information.

The optional LodgeiT calculator adapter is separate, unreleased development code and off by default. It makes network calls only with explicit enablement, a configured base URL and an allowed host. The standard MCP server does not use it as a fallback. Website hosting and browser data handling have their own boundaries.

No client, taxpayer or production-ledger data appears in public examples. Business fixtures are synthetic; dated official-source snapshots are identified separately and do not establish current law. Client data belongs in a controlled local directory, never a public issue, repository or enquiry email.

Security, tests and release evidence

Each component publishes a security policy, and its repository shows the current GitHub Actions results.

Published products expose release assets through the release pages linked above. Each repository’s attestation index provides inspectable SLSA provenance and SPDX SBOM records, and each release workflow page shows the workflow definition and its current run results:

Passing tests proves only the specified behaviour under the tested conditions. It does not prove a real-world accounting conclusion or a client outcome.

Supplier information for AI registers

The National AI Centre’s Guidance for AI Adoption recommends that organisations using AI keep an AI register and assess AI risk. For each component that works with an AI assistant, I publish the supplier’s side of that record: what it is, the data it handles, where a person decides, its known limits and failure modes, how it is tested and how to report a problem. Each record’s first seven rows follow the columns of the National AI Centre’s AI register template. The firm adds its own owner, use, risk assessment and review dates. Each repository has a test that holds its record to the version or published release it describes.

AS ISO/IEC 42001:2023 is the Australian identical adoption of ISO/IEC 42001:2023, a management system standard for organisations that provide or use AI systems. Certification against it is voluntary and is carried out by external certification bodies, not by ISO. These records are supplier information, not a certification, an audit or a conformity assessment, and they do not establish that any organisation’s AI management system conforms to, or is certified against, the standard.

Human accountability and refusals

Human review remains mandatory before posting, payment, lodgement, approval or period lock. Professional judgement stays with a person. A tool must refuse or escalate missing, contradictory, stale or out-of-scope facts rather than invent a result. Each product page records its specific inputs, refusal conditions, source currency limits and human decision boundary.

Published evaluations

I publish evaluations of fixed releases on the Evaluations page. I use feedback only with recorded permission. Each evaluation states its scope and method. It is not regulatory approval or evidence beyond that evaluation.