Skip to content

2.17.0

Released: TBD

Highlights

  • Two payroll reports for Panama compliance: Payroll Register (per-paycheck) and Payroll Tax Liability (per-concept CSS / Seguro Educativo / ISR breakdown).
  • No schema migration — read from calculated payroll_items.

Added

  • Payroll reportspayrollRegister(dateFilter, generateCsv) lists one row per employee paycheck (by pay_date) with hours, gross, bonuses, total deductions, net, and employer cost; payrollTaxLiability(dateFilter) totals gross and breaks the deductions / employer-contribution JSONB maps out per concept. See Payroll Reports.
  • Report parity trackerPeachtree Report Parity now at 47 of 84 done (Payroll section 6/12); the register also serves the Current/Quarterly/Yearly Earnings reports (same report, wider date range).

Changed

  • None (all additive).

Fixed

  • None.

Migrations

  • None. Reports aggregate existing payroll_items / payroll_runs / payroll_periods / employees; no alembic revision and no new Path/Resource.

Frontend impact

  • Two new read-only queries under Path.REPORTS:
  • payrollRegister(dateFilter, generateCsv?)GenericReportPage of PayrollRegisterLine; sum net for net payroll, totalDeductions for withholdings, employerCost for employer burden.
  • payrollTaxLiability(dateFilter)PayrollTaxLiabilityReport with deductionLines / employerContributionLines (per-concept totals) and totalGross (taxable base).
  • New GraphQL types: PayrollRegisterLine, PayrollTaxLiabilityReport, PayrollTaxConceptLine.

Versioning notes

  • Bumped with uv run python scripts/bump_version.py 2.17.0 --changelog-stub. Additive schema only — no deploy-order constraint. Fifth release in the Peachtree-parity series.