Skip to content
View ryanduguid's full-sized avatar
💜
Accounting
💜
Accounting

Highlights

  • Pro

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 · Tools · Evaluations · Credentials and evidence

I am not a registered tax agent or BAS agent. This is a free software portfolio. I do not accept advice, return-preparation, tax-treatment confirmation, or lodgement requests through it. Support covers software issues reproduced with fabricated data, so please do not send taxpayer information.

Try an accounting task

Your task Example and expected result What you need
Explain profit and cash differences Fictional Newcastle cash-flow case: $35,957.55 quarterly profit and a $25,160 cash shortfall Read in your browser; desktop Excel to change the receipt delay
Calculate in Excel Ozzit formula and workbook: extract $100 GST from a wholly taxable $1,100 amount Microsoft 365 or Excel 2024 or later
Review a month-end close Monthly Close Controls: eight exceptions, including a $250 creditors difference Read in your browser; Git and Python 3.10 or later to reproduce the pack

Each example includes its working, version and review boundary.

llm-tax-guardrails: APES 110 aligned guardrails Open-source Australian accounting tools Ozzit: 133 native Excel LAMBDAs Python 3.10 or later
Model Context Protocol aus-accounting-mcp on PyPI Latest Ozzit release

Selected work

  • au-fpa-pack: Australian cash-flow forecasts and management briefings using fictional businesses. Extends Guiderail's openfpa.
  • Accounting Review Pipeline: Xero exports, month-end exceptions and workpaper review packs, with Excel and Power BI components.
  • Ozzit: 133 native Excel LAMBDA functions plus 5 help tables for financial modelling and GST arithmetic, with editable examples. No macros or add-ins; needs Microsoft 365 or Excel 2024 and later. What it covers and what it needs.
  • Australian Accounting: Tax and payroll calculation packages, plus a local Model Context Protocol (MCP) server for supported tools. Install it with uvx aus-accounting-mcp.
  • Australian Accounting Skills: AI-assisted preparation workflows for public practice and subcontractor accounting: 61 workflows on the default branch ahead of v0.3.0, and 19 in the v0.2.1 release. Recorded model runs cover 17 of its 63 validation cards.
  • llm-tax-guardrails: APES 110 and TPB Code controls, refusal patterns and evaluation fixtures for firms using LLMs in tax work. Conclusions stay with the registered practitioner.
  • au-tax-legislation-corpus: Builds retrieval material from in-force Commonwealth tax legislation on the Federal Register of Legislation, with source and provenance records. It is a finding aid, not authorised legislation.

Public examples use fabricated data, and the tools 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["Australian Accounting<br/>MCP server"]
    mcp -->|Calculations| engines["Calculation packages"]
    assistant -->|Workpapers and exceptions| reviewer["Authorised human review"]
    official["Federal Register<br/>of Legislation"] -->|Corpus build| corpus["Legislation corpus<br/>Finding aid"]
    corpus -. Locate provisions .-> reviewer
    official -. Check authority .-> reviewer
Loading

The corpus is not 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.

To get in touch, use the contact page.

Pinned Loading

  1. 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

  2. au-tax-legislation-corpus au-tax-legislation-corpus Public

    Code for building a corpus of in-force Commonwealth tax legislation, with source and provenance records.

    Python

  3. 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

  4. 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

  5. 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

  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