Skip to content

Changelog

v1.0 — Initial release

Platform (Sprint 1–3)

Core calculator

  • NGER Method 1 fuel-based emission calculator
  • Transport modes: Road, Rail, Aviation, Sea
  • 13 vehicle classes across all modes with NGER Schedule 1 factors
  • Scope 1 (CO₂ + CH₄ + N₂O) and Scope 3 (upstream) outputs
  • Reporting year attribution by departure/arrival date

CSV import

  • Bulk job upload via CSV
  • Per-row validation with error reporting
  • Idempotency via reference_number

API

  • POST /jobs — submit jobs and receive emission results
  • GET /clients — list organisation clients
  • GET /emission-factor-types — list available transport modes and fuel types (public)
  • SHA-256 API key hashing — keys stored as hashes, shown plaintext once
  • Rate limiting: 1,000 requests per rolling hour per key
  • Idempotency: duplicate reference_number returns original result without creating a duplicate

Analytics dashboard

  • Emissions by reporting period, transport mode, and client
  • Recharts-based visualisations

User management

  • Invite-only onboarding via email
  • Roles: superuser, org_admin, org_member, client_admin, client_member
  • Organisation and client scoping via Supabase RLS

NGER reports

  • Report generation with immutable snapshots
  • Grouped by client and reporting year

Post-sprint fixes

Vehicle classification overhaul

  • Replaced 10 generic vehicle class codes with 14 NGER-accurate codes matching Schedule 1 of the NGER Measurement Determination
  • Added Division 4.1 / 4.2 / 4.3 structure for road transport
  • Euro standard differentiation for heavy vehicles (Euro I, Euro III, Euro IV+)
  • Fleet guidance tooltip in UI: "Most modern Australian heavy vehicles (post-2006) qualify as Euro IV or higher"
  • Electric locomotive flagged as Scope 2 only with UI warning

Emission factors corrected to NGER Schedule 1 values

  • Diesel CO₂ factor updated to 69.9 kg CO₂-e/GJ (was 69.7)
  • Euro IV+ CH₄ factor set to 0.07 (not the same as Euro III 0.10)
  • Factors seeded for reporting years 2023–2026
  • Database check constraint enforces combined_factor = co2 + ch4 + n2o

API Keys page — superuser context switcher

  • Superuser with no active org context sees all API keys across all organisations with an Organisation column
  • Superuser with active org context sees keys filtered to that organisation
  • Create button disabled with amber warning if no org context is selected
  • Creation form shows org confirmation banner ("This API key will be created for: X")

API keys RLS fix (migration 20260610000200)

  • Fixed 42501 INSERT violation for superusers caused by two permissive policies ANDing their WITH CHECK expressions
  • Replaced generic api_keys_org_access policy with role-exclusive api_keys_superuser and api_keys_org_members policies

Superuser profile fix (migration 20260610000300)

  • Superuser dev@emwise.com.au now has organization_id = NULL so the context switcher (not the profile) controls which org they act within
  • Fixed Clients page and Users page being empty for superusers with a null org

Clients page and Users page context switcher

  • Both pages now respect the superuser active org context
  • Superuser with no context: sees all records; Add Client button disabled with amber warning
  • Superuser with context: sees org-scoped records; can create

Password reset flow

  • Fixed 404 on /auth/update-password — added vercel.json SPA rewrite rule
  • Fixed SIGNED_OUT event in AuthContext redirecting users away from the update-password page before PASSWORD_RECOVERY fired
  • UpdatePassword page now waits for the PASSWORD_RECOVERY event before rendering the form
  • Shows spinner while waiting, expired-link card with "Request new link" button if token does not arrive within 5 seconds

Demo client

  • Vehicle class codes updated to match NGER schema
  • articulated_truckheavy_vehicle_euro4
  • rigid_truckheavy_vehicle_euro4
  • light_commercial_vehiclelight_vehicle_post2004_diesel
  • passenger_vehiclelight_vehicle_post2004_petrol

NGER Transport Emissions Platform