Skip to content
ClearedStack

Tools · CLIN 0001 Pricing & cost accounting

Prompt Payment Interest Tracker

Planned

Work 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

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#

AuthorityCitationRole in Tool
Prompt Payment Act31 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 Regulations5 CFR 1315.4, 1315.9, 1315.10, 1315.11, 1315.17Defines 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-25FAR 32.904, 32.907, 52.232-25Implements Prompt Payment rules in federal contracts, including WAWF/PIEE electronic invoicing contexts.
Treasury Bureau of the Fiscal ServicePrompt Payment Interest RatesPublishes 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

FieldTypeConstraints / OptionsDefault
Invoice Amount (P)Currency ($)>= 0.0020,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 PeriodInteger (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 override4.75
Dispute / Financing FlagBooleanExcludes interest if amount is under bona fide dispute or is a financing/progress paymentfalse

Calculation Logic

  1. Effective Acceptance Date (D_acc_eff):
    • Use actual D_acc if provided; otherwise D_del + 7 days (deemed acceptance).
  2. Adjusted Payment Window (W_pay):
    • penalty_days = max(0, defect_notice_delay - 7)
    • W_pay = max(0, contract_payment_period - penalty_days)
  3. Payment Due Date (D_due):
    • D_due = max(D_inv, D_acc_eff) + W_pay days
  4. 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)).
  5. Days Late (N):
    • If D_pay <= D_due or dispute_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)).
  6. 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_interest
        • principal += period_interest
        • remaining -= chunk
  7. 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 after D_pay).

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.00 de minimis and $25–$5,000 penalty 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#

  1. Offline Execution: Ships the historical and current Treasury semi-annual rate table as a bundled JSON asset inside the repository; operates completely offline.
  2. Strict Content Security Policy: Enforces default-src 'self'; connect-src 'self'; form-action 'none' with zero remote API calls.
  3. Zero Tracking or Accounts: Zero sign-in walls, analytics, cookies, or beacons. Any optional localStorage invoice log must be disclosed with a Clear Data button.
  4. Worked-Example Assertions & Synthetic Fixtures: Automated tests assert both simple (<= 30 days) and compounded (> 30 days) worked examples, < $1.00 de 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.
  5. 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 MIT LICENSE file.

Worked Example & Verification#

Fixture 1: Simple Interest (<= 30 Days Late, from Invoices and late payment interest)

  • Inputs: Invoice $20,000.00, Due Date 2026-09-01, Payment Date 2026-09-21 (20 days late), Treasury Rate 4.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, 45 days late, Treasury Rate 4.75%.
  • Expected Output:
    • Period 1 (30 days on $20,000.00): 20,000.00 × 0.0475 × (30 / 360) = $79.17
    • Period 2 (15 days 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).

Boundary Fixtures

  • De Minimis (< $1.00): Invoice $500.00, 10 days late at 4.75% → raw interest $0.66 → Payable interest $0.00 (under $1.00 statutory minimum).
  • On-Time Payment (0 days late): D_pay <= D_due → 0 days late, $0.00 interest.