spb/air Public MIT
AIR — The Language of Accounting.
Python 100%
1# Projet : AIR — Accounting Intermediate Representation2# Auteur : Simon-Pierre Boucher3# Contact : contact@spboucher.ai4#5# Golden cases — sales and refunds under CA-QC / CA-ON / CA-AB tax policies.6# Expected figures follow docs/research/canada-gst-qst.md:7# GST 5%, QST 9.975% (both on the pre-GST price), half-up rounding to the8# cent per Excise Tax Act s. 165.2(2) / RQ IN-203-V. Verified 2026-08-05.910cases:11 - name: sale_simple_qc12 description: "1000.00 CAD sale in Quebec on account: GST 50.00, QST 99.75 (research worked example)"13 air:14 events:15 - id: evt_sale_simple16 type: Sale17 date: 2026-07-1518 parties: {seller: "company:acme", buyer: "customer:cust_001"}19 amount: {amount: "1000.00", currency: CAD}20 tax: {jurisdiction: CA-QC}21 expected_entries:22 - id: je_evt_sale_simple23 lines:24 - ["1100", debit, "1149.75", CAD]25 - ["4000", credit, "1000.00", CAD]26 - ["2310", credit, "50.00", CAD]27 - ["2320", credit, "99.75", CAD]2829 - name: sale_multi_item_qc30 description: "CLAUDE.md flagship: 3 chairs at 333.33, paid by Visa immediately"31 air:32 events:33 - id: evt_sale_chairs34 type: Sale35 date: 2026-07-2036 description: "3 standard chairs"37 parties: {seller: "company:acme", buyer: "customer:cust_123"}38 items:39 - {sku: chair-std, qty: "3", unit_price: {amount: "333.33", currency: CAD}}40 payment: {method: card.visa, immediate: true}41 tax: {jurisdiction: CA-QC, codes: [GST, QST]}42 expected_entries:43 - id: je_evt_sale_chairs44 lines:45 - ["1000", debit, "1149.74", CAD]46 - ["4000", credit, "999.99", CAD]47 - ["2310", credit, "50.00", CAD]48 - ["2320", credit, "99.75", CAD]4950 - name: sale_rounding_qc51 description: "19.99 sale: GST 0.9995 rounds UP to 1.00; QST 1.9940 rounds DOWN to 1.99 (statute worked example)"52 air:53 events:54 - id: evt_sale_rounding55 type: Sale56 date: 2026-07-2157 amount: {amount: "19.99", currency: CAD}58 tax: {jurisdiction: CA-QC}59 expected_entries:60 - id: je_evt_sale_rounding61 lines:62 - ["1100", debit, "22.98", CAD]63 - ["4000", credit, "19.99", CAD]64 - ["2310", credit, "1.00", CAD]65 - ["2320", credit, "1.99", CAD]6667 - name: sale_exempt_qc68 description: "Exempt/zero-rated supply: no tax lines at all"69 air:70 events:71 - id: evt_sale_exempt72 type: Sale73 date: 2026-07-2274 amount: {amount: "500.00", currency: CAD}75 tax: {jurisdiction: CA-QC, exempt: true}76 expected_entries:77 - id: je_evt_sale_exempt78 lines:79 - ["1100", debit, "500.00", CAD]80 - ["4000", credit, "500.00", CAD]8182 - name: sale_ontario_hst83 description: "Ontario sale: single HST 13%"84 air:85 events:86 - id: evt_sale_on87 type: Sale88 date: 2026-07-2389 amount: {amount: "200.00", currency: CAD}90 tax: {jurisdiction: CA-ON}91 expected_entries:92 - id: je_evt_sale_on93 lines:94 - ["1100", debit, "226.00", CAD]95 - ["4000", credit, "200.00", CAD]96 - ["2330", credit, "26.00", CAD]9798 - name: sale_alberta_gst_only99 description: "Alberta sale: GST 5% only, no provincial tax"100 air:101 events:102 - id: evt_sale_ab103 type: Sale104 date: 2026-07-24105 amount: {amount: "300.00", currency: CAD}106 tax: {jurisdiction: CA-AB}107 expected_entries:108 - id: je_evt_sale_ab109 lines:110 - ["1100", debit, "315.00", CAD]111 - ["4000", credit, "300.00", CAD]112 - ["2310", credit, "15.00", CAD]113114 - name: refund_full_qc115 description: "Full refund of the 1000.00 QC sale: mirror entry, taxes reversed"116 air:117 events:118 - id: evt_refund_full119 type: Refund120 date: 2026-07-25121 related_event: evt_sale_simple122 amount: {amount: "1000.00", currency: CAD}123 tax: {jurisdiction: CA-QC}124 expected_entries:125 - id: je_evt_refund_full126 lines:127 - ["4000", debit, "1000.00", CAD]128 - ["2310", debit, "50.00", CAD]129 - ["2320", debit, "99.75", CAD]130 - ["1100", credit, "1149.75", CAD]131132 - name: refund_partial_qc133 description: "Partial refund 250.00: GST 12.50; QST 24.9375 rounds to 24.94"134 air:135 events:136 - id: evt_refund_partial137 type: Refund138 date: 2026-07-26139 related_event: evt_sale_simple140 amount: {amount: "250.00", currency: CAD}141 tax: {jurisdiction: CA-QC}142 expected_entries:143 - id: je_evt_refund_partial144 lines:145 - ["4000", debit, "250.00", CAD]146 - ["2310", debit, "12.50", CAD]147 - ["2320", debit, "24.94", CAD]148 - ["1100", credit, "287.44", CAD]149