```ts
/** Gross pay less a percentage and then a flat fee. */
export function netPay(gross: number, rate: number, fee: number): number {
  if (gross === 0) return 0;

  const afterFee = gross - fee;
  const percentageAmount = Math.floor((afterFee * rate) / 100);
  const finalNetPay = Math.max(afterFee - percentageAmount, 0);

  return finalNetPay;
}
```