B2B Payment Terms: Net-30, Credit Limits & Aging Analysis

Master B2B payment terms including Net-30/60/90, early payment discounts, credit limit management, aging analysis, and collection workflows in Odoo.

E

ECOSIRE Research and Development Team

ECOSIREチーム

2026年3月15日10 分で読める2.3k 語数

この記事は現在英語版のみです。翻訳は近日公開予定です。

B2B eCommerce & Operationsシリーズの一部

完全ガイドを読む

B2B Payment Terms: Net-30, Credit Limits & Aging Analysis

Cash is oxygen for a business. Payment terms determine how long you go without breathing between delivering value and receiving payment. A company with $10 million in monthly sales on Net-30 terms has $10 million permanently tied up in accounts receivable. Extending those terms to Net-60 doubles that figure to $20 million. That $10 million difference must be financed somehow --- through working capital, credit lines, or slower growth.

Yet payment terms are also a competitive weapon. A supplier offering Net-60 when competitors offer Net-30 wins deals. The question is not whether to offer credit terms but how to manage the risk, cash flow impact, and collection process that come with them.

Key Takeaways

  • Every day of DSO (Days Sales Outstanding) above your target costs approximately 0.015% of annual revenue in financing costs
  • 2/10 Net-30 terms (2% discount for payment within 10 days) yield an annualized return of 36.7% --- most buyers should take it, most sellers should offer it
  • Credit limits must be enforced in real time at the order entry point, not discovered after shipment
  • Aging analysis is a leading indicator of customer health --- deteriorating payment patterns predict churn 6-12 months before it happens

Understanding B2B Payment Terms

Common Payment Term Structures

| Term | Description | Cash Flow Impact | When to Use | |------|-------------|-----------------|-------------| | CIA | Cash in advance before shipment | Best (immediate) | New/high-risk customers | | COD | Cash on delivery | Good (at delivery) | Small orders, new customers | | Net-15 | Payment due 15 days after invoice | Moderate | Small accounts, low risk | | Net-30 | Payment due 30 days after invoice | Standard | Established accounts | | Net-45 | Payment due 45 days after invoice | Significant | Mid-tier accounts | | Net-60 | Payment due 60 days after invoice | Heavy | Large accounts, competitive | | Net-90 | Payment due 90 days after invoice | Severe | Enterprise, government | | Net-120 | Payment due 120 days after invoice | Critical | Government, overseas | | EOM+30 | 30 days after end of invoice month | Variable | Month-end alignment | | 2/10 Net-30 | 2% discount if paid in 10 days, full in 30 | Good (if discount taken) | Incentivize early payment |

The True Cost of Payment Terms

Extending payment terms has a quantifiable cost. Every dollar in accounts receivable has a carrying cost --- the opportunity cost of that capital plus the risk of non-payment.

Carrying cost calculation:

If your cost of capital is 8% annually:

  • Net-30: $10M AR x (8% / 365 x 30) = $65,753 per month
  • Net-60: $20M AR x (8% / 365 x 60) = $263,014 per month
  • Net-90: $30M AR x (8% / 365 x 90) = $591,781 per month

The difference between Net-30 and Net-90 is $526,028 per month in carrying costs. This must be factored into pricing when offering extended terms.


Early Payment Discounts

The Math Behind 2/10 Net-30

The most common early payment discount is "2/10 Net-30" --- the buyer gets a 2% discount for paying within 10 days instead of the standard 30 days. This seems like a small incentive, but the annualized return tells a different story.

The buyer choosing not to take the discount is effectively borrowing money for 20 days (the difference between day 10 and day 30) at a cost of 2%. Annualized, this is:

(2% / 98%) x (365 / 20) = 37.2% annualized interest rate

Any buyer with access to capital below 37.2% should take the discount. Since most business credit lines charge 5-15%, the rational choice is almost always to take the discount.

Discount Structures

| Discount Term | Buyer Savings | Annualized Rate | Seller Cash Flow Impact | |--------------|--------------|-----------------|------------------------| | 1/10 Net-30 | 1% | 18.4% | Accelerates by 20 days | | 2/10 Net-30 | 2% | 37.2% | Accelerates by 20 days | | 3/10 Net-60 | 3% | 22.4% | Accelerates by 50 days | | 2/10 Net-60 | 2% | 14.9% | Accelerates by 50 days | | 1/10 Net-45 | 1% | 10.5% | Accelerates by 35 days |

Implementing Discounts in Odoo

Odoo's payment terms configuration supports early payment discounts natively. When creating a payment term, you define the discount percentage and the discount period. The system automatically calculates the discounted amount when a payment is received within the discount window and reconciles the difference as a discount expense.

The buyer portal displays both the full amount and the discounted amount with the discount deadline, making it easy for buyers to see the savings and act on them.


Credit Limit Management

Setting Credit Limits

Credit limits should reflect both the customer's creditworthiness and the size of the business relationship. A customer who is creditworthy but only orders $5,000 per month does not need a $500,000 credit limit.

Credit limit formula:

Recommended credit limit = Average monthly purchases x Payment term multiplier x Risk factor

| Customer Risk Profile | Risk Factor | Payment Term Multiplier | |----------------------|-------------|------------------------| | Low risk (5+ years, clean history) | 1.5 | Terms in months (e.g., 1 for Net-30) | | Medium risk (1-5 years, minor delays) | 1.2 | Terms in months | | High risk (new customer, some issues) | 0.8 | Terms in months | | Very high risk (poor credit, disputes) | 0.5 | Terms in months |

Example: A medium-risk customer averaging $50,000/month on Net-30 terms: $50,000 x 1.0 x 1.2 = $60,000 credit limit

Real-Time Credit Enforcement

Credit limits must be enforced at the point of order entry, not after the fact. When a buyer places an order in the B2B portal or when a sales rep enters an order, the system should check the customer's current AR balance plus all open (unshipped) orders against their credit limit.

| Check Point | Action if Over Limit | |-------------|---------------------| | Order entry (portal) | Block order submission, display message | | Order entry (sales rep) | Warning with option to request exception | | Order confirmation | Block confirmation, route to credit team | | Shipment release | Hold shipment, notify credit team |

In Odoo, credit limits are configured on the customer record and checked during the sales order confirmation workflow. Custom logic can extend this to check at order entry and shipment stages.

Credit Review Triggers

Credit limits should not be static. Define events that trigger a credit review.

  • Order exceeds 80% of credit limit
  • Payment is more than 15 days past due
  • Customer requests a credit limit increase
  • Annual review (every 12 months minimum)
  • Significant change in ordering pattern (sudden increase or decrease)
  • External credit report change (Dun & Bradstreet, Experian Business)

Aging Analysis

The Aging Report

The accounts receivable aging report is the most important report in B2B credit management. It segments outstanding invoices by age, revealing which customers are paying on time and which are sliding.

| Aging Bucket | Amount | % of Total | Count | Avg Days Overdue | |-------------|--------|-----------|-------|-----------------| | Current (not yet due) | $485,000 | 52.1% | 147 | --- | | 1-30 days overdue | $215,000 | 23.1% | 68 | 18 | | 31-60 days overdue | $128,000 | 13.8% | 34 | 44 | | 61-90 days overdue | $67,000 | 7.2% | 15 | 72 | | 91-120 days overdue | $24,000 | 2.6% | 7 | 103 | | 120+ days overdue | $11,000 | 1.2% | 4 | 156 | | Total AR | $930,000 | 100% | 275 | |

Aging as a Predictive Indicator

Aging patterns predict customer behavior. A customer whose aging profile is shifting right --- more invoices in older buckets each month --- is showing signs of financial stress or dissatisfaction. This pattern typically appears 6-12 months before a customer churns or defaults.

Track aging trends by customer, not just snapshots. A customer with $50,000 in the 31-60 bucket is not concerning if that is typical for their payment pattern. The same customer with $50,000 in the 61-90 bucket when they normally pay in 30 days is a red flag.

Collection Workflows

Effective collection is systematic, not sporadic. Define a collection workflow that escalates automatically.

| Days Overdue | Action | Channel | Owner | |-------------|--------|---------|-------| | 1 day | Automated payment reminder | Email | System | | 7 days | Friendly follow-up | Email | AR team | | 15 days | Phone call to AP contact | Phone | AR team | | 30 days | Formal past-due notice | Email + mail | AR manager | | 45 days | Account placed on hold | System | AR manager | | 60 days | Escalation to sales rep | Email | Sales manager | | 75 days | Demand letter | Certified mail | Legal | | 90 days | Collection agency or legal action | External | CFO |

In Odoo, follow-up actions can be automated through the Accounting module's payment follow-up feature, which sends escalating communications based on the number of days past due.


Days Sales Outstanding (DSO)

Calculating DSO

DSO measures the average number of days it takes to collect payment after a sale.

DSO = (Accounts Receivable / Net Credit Sales) x Number of Days

For a company with $930,000 in AR and $3,100,000 in monthly credit sales:

DSO = ($930,000 / $3,100,000) x 30 = 9.0 days... but this is the monthly DSO. Annual DSO is more meaningful:

Annual DSO = ($930,000 / $37,200,000) x 365 = 9.1 days

Wait --- this company has $930K AR on $37.2M annual sales? That is an unusually low DSO of 9.1 days, suggesting most customers pay quickly. A more typical B2B DSO is 45-55 days.

DSO Benchmarks by Industry

| Industry | Median DSO | Top Quartile | Bottom Quartile | |----------|-----------|-------------|-----------------| | Manufacturing | 52 days | 38 days | 68 days | | Distribution | 45 days | 32 days | 58 days | | Technology | 58 days | 42 days | 75 days | | Professional services | 48 days | 35 days | 62 days | | Construction | 65 days | 48 days | 85 days |

Reducing DSO

Every day of DSO reduction frees working capital. For a company with $37.2M in annual sales, each day of DSO equals approximately $101,918 in AR. Reducing DSO from 55 to 45 days frees $1,019,178 in cash.

Strategies to reduce DSO:

  • Offer early payment discounts (2/10 Net-30)
  • Invoice immediately upon shipment (not weekly or monthly)
  • Provide easy online payment through the buyer portal
  • Enforce credit holds on past-due accounts
  • Automate collection follow-ups
  • Match payment terms to customer risk profile

For the complete B2B eCommerce strategy, see our pillar guide: The B2B eCommerce Playbook.


Frequently Asked Questions

What payment terms should we offer new customers?

Start new customers on Net-15 or Net-30 with a conservative credit limit (typically one month's expected purchases). After 6-12 months of clean payment history, consider extending to Net-45 or Net-60 with an increased credit limit. Never start a new customer on Net-90 without a credit check and management approval --- the risk of a large, slow-paying first order is too high.

How do we handle customers who consistently pay late?

First, determine why they are paying late. If it is a process issue (invoice goes to the wrong person, PO number is missing), fix the process. If it is a cash flow issue, consider tightening their terms (Net-30 to Net-15) or requiring partial advance payment. If it is a pattern of intentional delay, enforce credit holds and consider a late payment fee. Document every conversation and action in the CRM.

Should we charge interest on overdue invoices?

Late payment interest (typically 1-1.5% per month) is common in B2B contracts but rarely enforced for good customers with occasional delays. Include the provision in your terms and conditions so you have the legal right to charge it, but apply it selectively. Consistently late payers should be charged. Occasionally late customers with a good relationship should receive a warning before interest is applied. The goal is to incentivize timely payment without damaging the relationship.

How does Odoo handle multi-currency payment terms?

Odoo supports multi-currency transactions natively. Invoices can be issued in the customer's currency, with payment terms applied in that currency. Exchange rate gains and losses are automatically calculated when the payment is received and reconciled. For customers in volatile currency markets, consider invoice-date exchange rate locking or USD-denominated invoicing to reduce currency risk.


What Is Next

Payment terms and credit management are the financial backbone of B2B relationships. Getting them right means healthy cash flow, manageable risk, and competitive commercial terms. Getting them wrong means financing your customers' operations at your expense.

ECOSIRE's Odoo implementation services include accounts receivable automation, credit management configuration, and aging analysis dashboard setup. We help B2B companies optimize their order-to-cash cycle and reduce DSO.

Contact us to discuss your payment terms strategy and see how Odoo can automate your credit management operations.


Published by ECOSIRE --- helping businesses scale with AI-powered solutions across Odoo ERP, Shopify eCommerce, and OpenClaw AI.

E

執筆者

ECOSIRE Research and Development Team

ECOSIREでエンタープライズグレードのデジタル製品を開発。Odoo統合、eコマース自動化、AI搭載ビジネスソリューションに関するインサイトを共有しています。

WhatsAppでチャット