Tools · CLIN 0001 Pricing & cost accounting
Prompt Payment Interest Tracker
PlannedWork out the interest owed on a late government invoice under the Prompt Payment Act.
This tool is planned. There is nothing to open yet. What follows is the plan, and it can change before the tool ships. The guide below covers the same job by hand in the meantime. Jump to the full specification.
What it will do
Enter the invoice amount and the dates the invoice was received, the work was accepted and the payment was made. The tool finds the due date, counts the days late and works out the interest owed, including the rule that adds interest to the balance every 30 days and the additional penalty when interest goes unpaid.
You bring
- The invoice amount
- The invoice receipt, acceptance and payment dates
- The Treasury rate for the period, which you confirm against Treasury’s table
You get
- The due date and the number of days late
- The interest owed, with each 30-day period shown
- The additional penalty, and the last day to demand it
Built from
- Prompt Payment Act, 31 U.S.C. Chapter 39
- Prompt payment regulations, 5 CFR Part 1315
- FAR Subpart 32.9 and clause 52.232-25
- Bureau of the Fiscal Service, Prompt Payment interest rates
Only material the government has officially released to the public. Where the rules live shows how to find and cite each one.
Do it by hand today
- Invoices and late payment interest · Work out the interestWhat makes an invoice proper, when the government’s payment is due and how Prompt Payment Act interest is worked out when it is late.
True of every tool
- Free and open source.
- No paid tier, no ads, and the code is public.
- Runs in your browser.
- What you type or open is not sent anywhere.
- No tracking.
- No accounts, cookies or analytics.
- Shows its sources.
- Each result names the rule it rests on, so you can check it.
- Says what it does not do.
- It is an aid for your own work, not professional advice.
What happens to what you type shows how to confirm this yourself, and Check a tool’s answer is the method for verifying a result.
Want it sooner?
Requests decide what is built first. Say what you would use it for, and what you do by hand today.
Issues are public. Leave out real contract data, real rates and anything controlled. How to write a useful request.
Specification · draft
How it is meant to work, in detail
The inputs, the logic, the checks the tool has to pass and the worked examples it is tested against. It is a draft, and the tool is built from it, so it can change until the tool ships.
4 min readLast revised November 2026Source of this specification
Overview & Role#
The Prompt Payment Interest Tracker (prompt-payment-interest, CLIN 0001: Pricing & cost accounting) is a standalone, MIT-licensed static browser utility generated by Moldloft using the deterministic calculator stack template. It determines the statutory payment due date for a federal invoice, counts late days, selects the applicable Treasury semi-annual interest rate from a bundled rate table, and computes simple or compounded late-payment interest.
The tool runs 100% in browser memory with zero backend services, zero runtime AI, and zero network calls after load. It also surfaces statutory deadlines for agency defect notices (7 days) and contractor written demands for unpaid interest penalties (40 days).
Governing Regulations & Sources#
| Authority | Citation | Role in Tool |
|---|---|---|
| Prompt Payment Act | 31 U.S.C. Chapter 39 (31 U.S.C. 3901 et seq.) | Establishes the statutory mandate for timely federal payment and automatic late-payment interest. |
| OMB Prompt Payment Regulations | 5 CFR 1315.4, 1315.9, 1315.10, 1315.11, 1315.17 | Defines proper invoice elements, 30-day payment standard, 7-day deemed acceptance and defect notice window, 360-day simple/compound interest formulas, $1.00 minimum, 1-year accrual cap, and additional penalty ($25–$5,000). |
| FAR Subpart 32.9 & Clause 52.232-25 | FAR 32.904, 32.907, 52.232-25 | Implements Prompt Payment rules in federal contracts, including WAWF/PIEE electronic invoicing contexts. |
| Treasury Bureau of the Fiscal Service | Prompt Payment Interest Rates | Publishes semi-annual interest rates effective January 1 and July 1 each year (e.g., 4.75% for July 1 – December 31, 2026). |
Inputs, Calculation Logic & Outputs#
Inputs
| Field | Type | Constraints / Options | Default |
|---|---|---|---|
Invoice Amount (P) | Currency ($) | >= 0.00 | 20,000.00 |
Invoice Received Date (D_inv) | Date (YYYY-MM-DD) | Date proper invoice reached designated billing office | — |
Delivery Date (D_del) | Date (YYYY-MM-DD) | Optional; used to compute 7-day deemed acceptance if D_acc is blank | — |
Acceptance Date (D_acc) | Date (YYYY-MM-DD) | Actual acceptance date, or auto-deemed D_del + 7 days per 5 CFR 1315.4(g) | — |
| Contract Payment Period | Integer (days) | > 0 (statutory default 30 days; shorter periods for specific commodities) | 30 |
Defect Notice Delay (days) | Integer (days) | >= 0 (if agency notified of invoice defect > 7 days after receipt, excess days reduce the payment window) | 0 |
Payment Transfer Date (D_pay) | Date (YYYY-MM-DD) | Date of electronic transfer or check mailing | — |
Interest Rate (R) | Percentage (%) | Auto-selected from bundled Treasury semi-annual table based on D_due + 1 day, with manual override | 4.75 |
| Dispute / Financing Flag | Boolean | Excludes interest if amount is under bona fide dispute or is a financing/progress payment | false |
Calculation Logic
- Effective Acceptance Date (
D_acc_eff):- Use actual
D_accif provided; otherwiseD_del + 7 days(deemed acceptance).
- Use actual
- Adjusted Payment Window (
W_pay):penalty_days = max(0, defect_notice_delay - 7)W_pay = max(0, contract_payment_period - penalty_days)
- Payment Due Date (
D_due):D_due = max(D_inv, D_acc_eff) + W_pay days
- Applicable Treasury Rate (
R):- Look up the semi-annual rate in effect on
D_due + 1 day(rate locks for the entire late period per 5 CFR 1315.10(a)(2)).
- Look up the semi-annual rate in effect on
- Days Late (
N):- If
D_pay <= D_dueordispute_or_financing == true:N = 0,interest = $0.00. - Otherwise:
N = min(days_between(D_due, D_pay), 365)(accrual stops at 1 year per 5 CFR 1315.10(b)(1)).
- If
- Interest Math (360-day year per 5 CFR 1315.17):
- If
N <= 30(simple interest):interest = round_to_cent(P * (R / 100) * (N / 360))
- If
N > 30(compounded every 30-day period):- Initialize
principal = P,total_interest = 0,remaining = N. - While
remaining > 0:chunk = min(30, remaining)period_interest = round_to_cent(principal * (R / 100) * (chunk / 360))total_interest += period_interestprincipal += period_interestremaining -= chunk
- Initialize
- If
- De Minimis & Additional Penalty Rules:
- If
total_interest < 1.00:payable_interest = $0.00(5 CFR 1315.10(c)). - Calculate 40-day demand deadline (
D_pay + 40 days) and additional penalty (clamp(payable_interest, 25.00, 5000.00)if unpaid 10 days afterD_pay).
- If
Outputs
- Computed Dates: Effective Acceptance Date, Due Date, Days Late, and 40-Day Demand Deadline.
- Period-by-Period Interest Table: Shows starting principal, days in period, and accrued interest for each 30-day (or partial) block.
- Total Interest Owed and Additional Penalty Eligibility (with
$1.00de minimis and$25–$5,000penalty bounds). - Rate Verification Notice: Displays the effective date range of the bundled Treasury rate table and reminds users to verify against
fiscal.treasury.gov/prompt-payment/.
Clean-Room & 5-Condition QA Requirements#
- Offline Execution: Ships the historical and current Treasury semi-annual rate table as a bundled JSON asset inside the repository; operates completely offline.
- Strict Content Security Policy: Enforces
default-src 'self'; connect-src 'self'; form-action 'none'with zero remote API calls. - Zero Tracking or Accounts: Zero sign-in walls, analytics, cookies, or beacons. Any optional
localStorageinvoice log must be disclosed with a Clear Data button. - Worked-Example Assertions & Synthetic Fixtures: Automated tests assert both simple (
<= 30days) and compounded (> 30days) worked examples,< $1.00de minimis suppression, 1-year (365-day) accrual cap, 7-day deemed acceptance, and late defect-notice window reduction. Real contractor invoices and CUI are strictly forbidden. - Citations, Scope Limits & MIT License: Cites 31 U.S.C. Chapter 39, 5 CFR Part 1315, and FAR 52.232-25; explicitly states exclusions (prime-to-subcontractor payments, OTAs, grants, Contract Disputes Act claims, and disputed/financing payments); includes a non-advice disclaimer and an
MITLICENSEfile.
Worked Example & Verification#
Fixture 1: Simple Interest (<= 30 Days Late, from Invoices and late payment interest)
- Inputs: Invoice
$20,000.00, Due Date2026-09-01, Payment Date2026-09-21(20days late), Treasury Rate4.75%. - Expected Output:
20,000.00 × 0.0475 × (20 / 360)=$52.78
Fixture 2: Compounded Interest (> 30 Days Late, from Invoices and late payment interest)
- Inputs: Invoice
$20,000.00,45days late, Treasury Rate4.75%. - Expected Output:
- Period 1 (
30days on$20,000.00):20,000.00 × 0.0475 × (30 / 360)=$79.17 - Period 2 (
15days on$20,079.17):20,079.17 × 0.0475 × (15 / 360)=$39.74 - Total Interest Owed:
$79.17 + $39.74=$118.91 - Additional Penalty Range (if unpaid after 10 days & demanded within 40 days):
$118.91(within$25.00–$5,000.00).
- Period 1 (
Boundary Fixtures
- De Minimis (
< $1.00): Invoice$500.00,10days late at4.75%→ raw interest$0.66→ Payable interest$0.00(under$1.00statutory minimum). - On-Time Payment (
0days late):D_pay <= D_due→0days late,$0.00interest.