A bill due next month can need attention today if its discount expires Friday. If your payment run only selects by due date, that bill won’t show up until after the discount is gone, and nobody will notice because nothing went wrong in the usual sense. The bill was paid on time. It was just paid at full price.
Discounts are usually missed for process reasons: a bill that wasn’t approved in time, a receipt that wasn’t entered, a hold nobody cleared, or a payment selection that never looked at discount dates. There are two halves to fix: deciding whether a discount is worth taking, and making sure the eligible ones reach the run.
Run your own terms: the early-payment discount calculator converts any discount into an annual rate and compares it with your cost of cash.
Is the discount worth the cash?
Taking a discount means using cash sooner. The question is whether the discount is worth more than what that cash would otherwise earn or cost you.
Illustrative example: a one-off offer
A $100,000 bill qualifies for a 1% discount if you pay 20 days early. You pay $99,000 and save $1,000. At an annual cost of cash of 8%, paying early costs about $434 ($99,000 × 8% × 20 ÷ 365). That leaves about $566 before fees and taxes.
Use your own dates, rate, and fees.
Annualizing standard terms
For standard terms, annualize the discount so you can compare it with your borrowing rate or return on cash:
Annualized rate ≈ discount % ÷ (100% − discount %) × 365 ÷ (net days − discount days)
| Terms | Calculation | Approximate annualized rate |
|---|---|---|
| 2/10 net 30 | 2 ÷ 98 × 365 ÷ 20 | 37.2% |
| 1/10 net 30 | 1 ÷ 99 × 365 ÷ 20 | 18.4% |
These are simple-interest approximations. If your cost of cash is well below the annualized rate and treasury can fund the run, the discount is usually worth taking. If cash is tight that week, the comparison changes, and treasury should make the call.
How the discount posts
Under the gross method, the bill is recorded at full value and the discount is recognized at payment. For a $48,500 bill on 2/10 net 30 paid within the window:
- Debit accounts payable $48,500
- Credit cash $47,530
- Credit purchase discounts $970 ($48,500 × 2%)
Some companies record bills net of expected discounts and book a “discounts lost” expense when one is missed, which makes missed discounts visible in the P&L. Ask your controller which method your company uses before building reports on it.
Why eligible discounts get missed
| Cause | What you see | Fix |
|---|---|---|
| Selection by due date only | Bill with an expiring discount isn’t in this week’s proposal | Run selection by discount date as well, or both |
| Bill not approved in time | Discount window closes while the bill sits in an approval queue | Flag discount bills in approval queues; set approvers’ deadline before the discount date |
| Receipt missing or under inspection | Bill can’t match, so it can’t be paid | Route to receiving with the discount date visible |
| Hold not cleared | Eligible bill excluded from the payment screen | Record hold reason and owner beside the offer |
| Batch date too late | Bill was selected but discount no longer available on the batch date | Check batch date against discount date before approving |
| Terms on the vendor record don’t match the offer | ERP calculates no discount, or a different one | Verify terms against the supplier agreement |
The hold row is worth separating out in reporting. A discount you chose to skip is a decision. A discount lost because the bill was held is a process problem with a different owner. Holds are covered in invoice holds and payment blocks, and approval timing in invoice approval workflows.
Check the bill before accepting an offer
- Confirm the invoice is approved, undisputed, and eligible under the supplier’s terms.
- Record the original due date, proposed payment date, amount, and supplier acceptance.
- Have treasury verify the cash for the run and the cost of paying early.
- Keep payment release with the authorized approver and reconcile the resulting payment and discount to the bill.
Manufacturing: accepted units, not shipped units
The offer is in, but receiving hasn’t finished inspecting the shipment. Check which units receiving has accepted and whether the offer covers them. If the bill includes material the plant hasn’t accepted, give that exception to receiving or quality before considering payment.
| Ask | Check |
|---|---|
| Can AP pay the bill? | Approved amount, receipt, inspection status, and open disputes |
| Will the supplier honor the discount? | Eligible amount, deadline, and whether it applies to a partial payment |
| Can treasury fund it? | Paying entity, available cash, and commitments already scheduled |
Illustrative example: discount on a partly approved bill
A $30,000 bill covers two receipts. Receipt A for $18,000 is clear. Receipt B for $12,000 is under quality review. The supplier offers 2% for early payment. Ask whether the discount applies to the approved portion or requires payment of the full bill.
If the supplier agrees to a discount on the approved portion, you pay $17,640 ($18,000 less 2% of $18,000, which is $360) and $12,000 stays open on the bill. Record which receipt supports the paid portion. After posting, compare the remaining balance with the supplier’s statement before treating the rest as disputed or due.
How eight ERPs select discount bills
The selection logic determines which bills reach the reviewer. Each row summarizes the linked vendor documentation; check your own version and configuration.
| ERP | What the vendor documents | What to test |
|---|---|---|
| NetSuite | Vendor bills show a discount date and amount, based on bill terms. Bills with Payment Hold enabled don’t appear on the Bill Payments page. Oracle | A held bill whose discount date is still in the future: confirm you can see the offer and the hold owner together |
| Sage Intacct | Calculates an early-payment discount for bills with eligible AP terms. Pay Bills lets a reviewer change the discount date on a specific bill. Sage | One bill on original terms and one with a date override; reviewer should find the supplier’s agreement for the override |
| SAP S/4HANA | Manage Automatic Payments can schedule a proposal or payment. Revise Payment Proposals shows an exceptions log and lets authorized users block or unblock items. Manage Automatic Payments · Revise Payment Proposals | Confirm the company code and exception reason; a discount deadline is no reason to lift a block |
| Sage 100 | Invoice Payment Selection can select by invoice due date or discount due date. Sage | Run both selections; find a bill only in the discount list; make sure a bill in both lists is paid once |
| Sage 300 | Create Payment Batch selects by due date, discount date, or either. For discount selection, the discount must still be available as of the batch date. Sage | A discount expiring today and one that expired yesterday; then move the batch date and explain what changed |
| Acumatica | Prepare Payments (AP503000) selects by pay date, due date, or cash discount date. Whether unapproved bills appear depends on the AP approval preference. An Always Take Cash Discount option can take an expired discount. Acumatica | An expired-discount bill: if the option is on, require confirmation that the supplier agreed |
| Dynamics 365 Finance | Payment proposals select by due date, cash discount date, or both. Payments can be created without the invoice preview. Microsoft | Two proposals with the same date range; a bill due next month should appear only in the discount proposal |
| Epicor Kinetic | The product overview describes AP, bank connections, and multiple payment instruments, but doesn’t establish how discount terms or holds are configured. Epicor | Walk through your own installation’s payment and approval workflow |
Two patterns stand out. First, several systems can select by due date or discount date, and the default selection may not be the one treasury wants. Running both and comparing the lists is the quickest way to find bills that would otherwise be missed. Second, several systems allow overrides (a changed discount date, a forced discount on an expired offer, a skipped preview). Each override should leave a reason and, where it changes what the supplier receives, the supplier’s agreement.
Dynamic discounting and one-off offers
Some suppliers offer a discount that varies with how early you pay, or make a one-off offer outside their standing terms. Treat these as exceptions to the vendor record. Keep the supplier’s acceptance with the bill and have AP confirm how to record it, so the person releasing payment can verify the changed terms without searching email.
What a reviewer should see before approving
| Check | What to look for |
|---|---|
| Selection criterion and date range | Which bills qualified and why |
| Scheduled payment or batch date | Whether the payment can meet the discount deadline |
| Approval and receipt status | Whether any bill still needs evidence or review |
| Amounts | Gross bill, discount, cash to release, and any remaining balance |
After release, reconcile the payments to the proposal and explain any discount that wasn’t taken. The vendor payment runs guide covers the rest of the release and reconciliation steps.
Test set before you change anything
- An eligible, approved bill with a discount expiring this week
- A bill whose discount expired yesterday
- A held bill with a future discount date
- A bill with a missing receipt and an open offer
- A bill with a manually overridden discount date
- A partly approved bill where the supplier agreed to discount the approved portion
- The same bill appearing in both the due-date and discount-date selections
Run them through a test company or sandbox, save the selection and batch date with each result, and record which ones the current process would have missed.