npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@classytic/ledger-au

v0.2.1

Published

Australia country pack for @classytic/ledger — AASB-aligned chart of accounts, GST/PAYG/Super accounts, ATO BAS return template

Readme

@classytic/ledger-au

Australia country pack for @classytic/ledger — AASB-aligned chart of accounts, ATO-friendly tax sub-accounts, and a full BAS return template.

Install

npm install @classytic/ledger @classytic/ledger-au

Usage

import { createAccountingEngine } from '@classytic/ledger';
import { australiaPack } from '@classytic/ledger-au';

const accounting = createAccountingEngine({
  mongoose: mongoose.connection,
  country: australiaPack,
  currency: 'AUD',
  multiTenant: { tenantField: 'organizationId', ref: 'organization' },
  fiscalYearStartMonth: 7, // AU fiscal year is 1-Jul to 30-Jun
});

await accounting.repositories.accounts.seedAccounts(orgId);
await accounting.repositories.journals.seedDefaults(orgId);

What's in the box

Chart of accounts (AU_ACCOUNT_TYPES)

AASB-aligned, mirrors what Xero / MYOB / QuickBooks AU converge on for SME files:

| Range | Category | |---|---| | 1000-1099 | Cash & cash equivalents (incl FX bank, merchant clearing) | | 1100-1199 | Trade receivables + ECL provision (AASB 9) | | 1200-1299 | Inventories (AASB 102) | | 1300-1399 | Prepayments, deposits, ATO refund clearing | | 1600-1699 | PPE at cost (AASB 116) | | 1700-1799 | Accumulated depreciation | | 1800-1899 | Intangibles + amortisation (AASB 138) | | 1900-1999 | Right-of-use assets (AASB 16), DTA, security deposits | | 2000-2099 | Trade creditors + accruals + contract liabilities (AASB 15) | | 2110.GST.* | GST control sub-accounts (collected / input / instalment / adjustments) | | 2200.PAYGW.* | PAYG-W sub-accounts (salary / no-ABN / non-resident) | | 2400.SUPER.* | Superannuation (SG / salary-sacrifice / additional) | | 2500-2510 | Fringe Benefits Tax (FBT) | | 2600-2620 | State payroll tax / workers comp / stamp duty | | 2700-2730 | Annual leave / LSL / personal leave / wages payable | | 2800-2899 | Current borrowings (overdraft, loans, AASB 16 lease, hire purchase) | | 2900-2998 | Non-current borrowings + DTL + make-good provisions (AASB 137) | | 3000-3399 | Equity (issued capital, reserves, retained earnings, dividends) | | 4000-4999 | Revenue (taxable / GST-free / input-taxed / commission) | | 5000-5999 | Cost of sales (purchases, direct labour, freight, customs duty) | | 6000-6999 | Operating expenses | | 7000-7099 | Other income (interest, dividend, FX gain, gain on disposal, grants) | | 7500-7599 | Finance + non-operating expense | | 8000-8010 | Income tax expense (current + deferred — AASB 112) |

Tax codes (TAX_CODES)

Mirrors Xero / MYOB AU codes so consumer migrations don't need a translation layer:

| Code | Rate | BAS fields | Description | |---|---|---|---| | GST | 10% | G1, 1A | Standard GST on sales | | GST-INPUT | 10% | G11, 1B | GST on non-capital purchases | | GST-CAPITAL | 10% | G10, 1B | GST on capital purchases ≥ $1k | | GST_FREE | 0 | G1, G3 | Domestic GST-free (food / health / education) | | EXPORT | 0 | G1, G2 | Export sales (60-day rule) | | INPUT_TAXED | 0 | G1, G4 | Residential rent / financial supplies | | IMPORT | 10% | G11, 1B, 7A | Imported goods (deferred GST scheme) | | WET | 29% | 1C | Wine Equalisation Tax | | LCT | 33% | 1E | Luxury Car Tax | | FUEL_TAX_CREDIT | varies | 7 | Fuel Tax Credit (eligible business fuel) | | PAYGW-SALARY | tables | W1, W2 | Employee withholding | | PAYGW-NO-ABN | 47% | W4 | No-ABN withholding (top marginal rate) | | PAYGW-NON-RESIDENT | varies | W3 | Non-resident withholding | | PAYGI-RATE / -AMOUNT | varies | T1-T11 | PAYG instalment options | | FBT-INSTALMENT | varies | F1 | Quarterly FBT instalment | | ADJ_INC / ADJ_DEC | 10% | G7 / G18 | GST increasing / decreasing adjustments |

BAS return template (basReturnTemplate)

Full-form quarterly BAS calculator. Pass field-coded inputs (G1, G11, W2, etc.); get back calculated lines (1A, 1B, W5, T11, 8A, 8B, 9):

import { basReturnTemplate } from '@classytic/ledger-au';

const result = basReturnTemplate.calculate({
  G1: 110_000,       // total sales incl GST
  G11: 22_000,       // non-capital purchases incl GST
  W1: 100_000, W2: 25_000,  // wages / PAYG-W
  T7: 1_500,         // PAYG instalment (amount method)
});

result['1A'];   // 10_000  — GST on sales
result['1B'];   // 2_000   — GST input credits
result.W5;      // 25_000  — total PAYG-W
result.T11;     // 1_500   — instalment payable
result['8A'];   // 36_500  — total payable to ATO
result['8B'];   // 2_000   — total credits
result['9'];    // 34_500  — net amount payable

basReturnTemplate.summarize(result);
// {
//   gstOnSales: 10_000, gstOnPurchases: 2_000,
//   paygWithholding: 25_000, paygInstalment: 1_500, ...
//   netAmount: 34_500, isRefund: false
// }

Per-state payroll tax thresholds (STATE_PAYROLL_TAX_THRESHOLDS)

Annual tax-free thresholds (FY 2024-25). Each state administers its own payroll tax — register and lodge monthly when wages exceed the threshold:

| State | Threshold (AUD) | |---|---| | NSW | 1,200,000 | | VIC | 900,000 | | QLD | 1,300,000 | | WA | 1,000,000 | | SA | 1,500,000 | | TAS | 1,250,000 | | ACT | 2,000,000 | | NT | 1,500,000 |

What this package does NOT cover

  • BAS lodgement / SBR submission → future @classytic/au-tax
  • STP (Single Touch Payroll) Phase 2 reporting → future @classytic/au-payroll
  • SuperStream / SBR clearing-house integration → future @classytic/au-payroll
  • ABA / NPP bank file generation → future @classytic/au-payments
  • R&D Tax Incentive workflows
  • Income tax return preparation

The chart of accounts + BAS calc template are the foundation — tax engines hook into them via taxMetadata on accounts and basFields on tax codes.

License

MIT — see LICENSE.