Skip to content
View ryanduguid's full-sized avatar

Block or report ryanduguid

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
ryanduguid/README.md

Ryan Duguid

I'm a Senior Accountant in Newcastle, Australia. I build open-source tools for cash-flow modelling, month-end review and Australian tax and payroll calculations.

Website · Worked examples · Credentials and evidence

Start with the fictional Newcastle cash-flow case: how a quarter can show $35,957.55 of profit while the bank account runs $25,160 short, with the Excel forecast, the working and a management briefing.

Selected work

Browse the tools or reproduce the public evaluations. Public examples use fabricated data; the forecasting example's independent accountant trial remains pending.

These are preparation and review aids. They do not lodge or write to ledgers; professional judgement and sign-off stay with the reviewer.

How the accounting tools fit together

Skills guide preparation. A configured assistant can call the local MCP server, which delegates calculations to independently released packages. Workpapers and unresolved exceptions go to an authorised human for review.

flowchart TB
    assistant["Assistant using<br/>accounting skills"] <--> mcp["Aus Accounting MCP"]
    mcp -->|Calculations| engines["Calculation packages"]
    assistant -->|Workpapers and exceptions| reviewer["Authorised human review"]
    official["Federal Register"] -->|Corpus build| corpus["Legislation corpus<br/>Finding aid"]
    corpus -. Locate provisions .-> reviewer
    official -. Check authority .-> reviewer
Loading

The corpus is a separate finding aid derived from the Register's EPUB reading view. It is not authorised legislation or an automatic source feed into the calculation engines. Dashed arrows show reference use, which still requires checking the applicable authority.

Inspect the local MCP server, its PyPI distribution and its MCP Registry listing.

Background

Read the certificate in the evidence register, or explore my Xero trial balance export and review workflow.

The badge is Xero's artwork, taken from that certificate. Xero has not endorsed or certified anything here.

Contributions

Across 16 upstream projects I have 50 merged pull requests as at 14 September 2026, 33 of them in OpenAccountants. Two examples:

  • Meltano SDK: I fixed OAuth refresh-token handling so the authenticator keeps a replacement token and preserves the existing token when no replacement arrives. The change includes regression tests and updates the in-memory authenticator. Persistent configuration write-back is outside its scope. Merged 8 August 2026.
  • OpenAccountants: I restored Australian BAS guide corrections after an older platform export overwrote them, and added checks for stale source changes. The repository checks detect this overwrite pattern. Preventing it also requires changes to the private exporter. Merged 11 August 2026.

Setup

OpenHands runs on my old uni laptop with CachyOS, unattended, so its commit timestamps show when a job finished rather than when I was at a keyboard. I use Hermes Agent on my Windows 11 IoT Enterprise LTSC desktop and supplement my vitamin D. Both machines are my own and everything here is built in my own time.

Pinned Loading

  1. au-fpa-pack au-fpa-pack Public

    Australian FP&A tools for openfpa (Jeff Brines / Guiderail), with 30 June years, Xero AU and GST/BAS.

    Python

  2. accounting-review-pipeline accounting-review-pipeline Public

    Runs deterministic month-end close checks on Xero trial-balance exports and produces exception packs for human sign-off.

    Python

  3. Ozzit Ozzit Public

    133 native Excel LAMBDA functions and 5 help tables for Australian GST arithmetic and financial modelling. Requires Microsoft 365 or Excel 2024 or later; no add-ins or macros.

    Python

  4. australian-accounting australian-accounting Public

    Local engines for ATO small-business benchmarks, Payday Super 2026 and Division 7A loan review, available through the aus-accounting-mcp server. Synthetic fixtures only.

    Python

  5. australian-accounting-skills australian-accounting-skills Public

    Preparation and review workflows for Australian public practice and contracting: BAS, month-end close, payroll and workpaper tie-outs. No lodgement or advice.

    Python 1 1

  6. llm-tax-guardrails llm-tax-guardrails Public

    APES 110 and TPB Code controls, DrDebits refusal patterns and evaluation fixtures for firms using LLMs in tax work.

    Python