backbone-payroll 0.3.49

Payroll: salary structures, payroll runs and computed salary slips over effective-dated statutory tables, plus compensation changes
Documentation
server:
  host: 0.0.0.0
  port: 8080
  grpc_port: 50051
database:
  url: postgresql://root:password@localhost:5432/skeletondb
  max_connections: 10
  min_connections: 5
  connect_timeout: 30
  idle_timeout: 600
logging:
  level: info
  format: json
  file: logs/payroll.log
module:
  name: payroll
  enabled: true
features:
  soft_delete: true
  state_machines: false
  workflows: false
entities:
  payroll_entry:
    collection: payroll_entries
    enabled: true
    cache_ttl: 300
    pagination:
      default_limit: 20
      max_limit: 100
  salary_slip:
    collection: salary_slips
    enabled: true
    cache_ttl: 300
    pagination:
      default_limit: 20
      max_limit: 100
  salary_slip_line:
    collection: salary_slip_lines
    enabled: true
    cache_ttl: 300
    pagination:
      default_limit: 20
      max_limit: 100
  salary_structure:
    collection: salary_structures
    enabled: true
    cache_ttl: 300
    pagination:
      default_limit: 20
      max_limit: 100
  salary_component:
    collection: salary_components
    enabled: true
    cache_ttl: 300
    pagination:
      default_limit: 20
      max_limit: 100
  compensation_change:
    collection: compensation_changes
    enabled: true
    cache_ttl: 300
    pagination:
      default_limit: 20
      max_limit: 100
tracing:
  enabled: true
  exporter: otlp
  endpoint: http://localhost:4317
metrics:
  enabled: true
  endpoint: /metrics
  port: 9090
statutory:
  pph21:
    brackets:
    - lower_bound: '0'
      upper_bound: '60000000'
      rate: '0.05'
    - lower_bound: '60000000'
      upper_bound: '250000000'
      rate: '0.15'
    - lower_bound: '250000000'
      upper_bound: '500000000'
      rate: '0.25'
    - lower_bound: '500000000'
      upper_bound: '5000000000'
      rate: '0.30'
    - lower_bound: '5000000000'
      upper_bound: null
      rate: '0.35'
    ptkp_map:
      tk0: '54000000'
      tk1: '58500000'
      tk2: '63000000'
      tk3: '67500000'
      k0: '58500000'
      k1: '63000000'
      k2: '67500000'
      k3: '72000000'
    npwp_surtax_multiplier: '1.2'
  bpjs:
    kesehatan:
      employee_rate: '0.01'
      employer_rate: '0.04'
      salary_cap: '12000000'
    ketenagakerjaan:
      jht_employee_rate: '0.02'
      jht_employer_rate: '0.037'
      jp_employee_rate: '0.01'
      jp_employer_rate: '0.02'
      jp_salary_cap: '10547400'
      jkk_rates_by_risk_class:
        '1': '0.0024'
        '2': '0.0054'
        '3': '0.0089'
        '4': '0.0127'
        '5': '0.0174'
      jkm_rate: '0.003'