An Offer in Compromise (OIC) is an agreement between a taxpayer and the Internal Revenue Service (IRS) that settles a taxpayer's tax liability for less than the full amount owed. The IRS considers your ability to pay, your income, expenses, and asset equity when determining if it will accept an OIC. This calculator provides an estimate of what the IRS might consider your "Reasonable Collection Potential" (RCP), which is often the minimum amount they would accept.
Disclaimer: This calculator provides an estimate based on simplified IRS guidelines and common scenarios. It is not a substitute for professional tax advice or the official IRS OIC process. Actual IRS calculations may vary based on specific facts, current standards, and individual circumstances. Always consult with a qualified tax professional or the IRS directly for accurate information regarding your tax situation.
Income & Household Information
Monthly Expenses (Enter your actual expenses; calculator will compare to IRS standards)
Asset Information (Enter Fair Market Value and Secured Debt)
Offer Payment Option
Lump Sum (Paid in 5 or fewer months)
Periodic Payment (Paid in 6 to 24 months)
Understanding the Offer in Compromise (OIC)
An Offer in Compromise (OIC) is a program offered by the IRS that allows certain taxpayers to resolve their tax liability with the IRS for a lower amount than what they originally owe. It's typically an option for taxpayers who are experiencing significant financial difficulty and cannot pay their full tax debt. The IRS will generally approve an OIC when it determines that the amount offered is the most it can expect to collect within a reasonable period.
How the IRS Evaluates an OIC
The IRS uses a specific formula to determine a taxpayer's "Reasonable Collection Potential" (RCP). This RCP is essentially the minimum amount the IRS believes it can collect from you. The RCP is comprised of two main components:
Ability to Pay (ATP): This is calculated based on your monthly disposable income. The IRS looks at your gross monthly income and subtracts necessary living expenses, which are determined using IRS National and Local Standards. Any remaining disposable income is then multiplied by a factor (12 months for a lump sum offer, or 24 months for a periodic payment offer).
Equity in Assets: This component considers the fair market value of all your assets (cash, investments, real estate, vehicles, etc.) minus any secured debt on those assets and certain exemptions. The IRS expects you to liquidate or borrow against non-essential assets to pay your tax debt.
The sum of your Ability to Pay and your Equity in Assets forms your estimated Reasonable Collection Potential, which is the basis for your OIC amount.
IRS National and Local Standards
When calculating your Ability to Pay, the IRS does not necessarily use your actual expenses. Instead, they use a combination of your actual expenses (for certain categories) and standardized amounts:
National Standards: These cover categories like food, clothing, personal care products, miscellaneous items, and out-of-pocket health care. These standards vary based on your income and the number of people in your household.
Local Standards: These cover housing and utilities, and transportation. These standards vary by geographic region and household size. The IRS will generally allow the lesser of your actual expense or the applicable local standard.
This calculator uses simplified, illustrative IRS standards for demonstration purposes. Actual IRS standards are detailed and regularly updated, and can be found on the IRS website (IRS Publication 1854).
Types of OIC Payment Options
Lump Sum Offer: You pay the total offered amount in 5 or fewer installments within 5 months of the offer's acceptance. For this option, the IRS calculates your Ability to Pay based on 12 months of future disposable income.
Periodic Payment Offer: You pay the total offered amount in 6 to 24 monthly installments. For this option, the IRS calculates your Ability to Pay based on 24 months of future disposable income.
Important Considerations
Compliance: You must be current with all tax filings and estimated tax payments to be eligible for an OIC.
Future Income: The IRS considers your future earning potential.
Non-Liable Spouse: If you filed jointly, your spouse's income and assets will also be considered.
Professional Advice: The OIC process can be complex. It is highly recommended to consult with a tax professional (e.g., a CPA or Enrolled Agent) or a tax attorney to help you prepare and submit your offer.
function calculateOIC() {
// IRS Standard Values (Simplified for demonstration – actual values vary by region, income, and year)
// These are illustrative and should not be used for actual IRS OIC submissions.
var nationalStandardsFoodClothingMisc = {
'1': 700, '2': 1200, '3': 1500, '4': 1800, '5': 2000, '6': 2200 // Simplified tiers
};
var nationalStandardsHealthCare = { // Per person, per month
'adult': 60, 'child': 40
};
var localStandardsHousingUtilities = { // Simplified, varies by region
'1': 1000, '2': 1300, '3': 1600, '4': 1900, '5': 2100, '6': 2300
};
var localStandardsTransportationOperating = 300; // Per vehicle, per month
var localStandardsTransportationOwnership = 500; // Per vehicle, per month (if applicable)
var assetExemptions = {
'realEstate': 1000, // Simplified, often based on state homestead exemptions
'vehicle': 3450 // For one vehicle, simplified
};
// Get input values
var monthlyGrossIncome = parseFloat(document.getElementById('monthlyGrossIncome').value) || 0;
var numDependents = parseInt(document.getElementById('numDependents').value) || 0;
var householdSize = numDependents + 1; // Taxpayer + dependents
var monthlyHousingExpense = parseFloat(document.getElementById('monthlyHousingExpense').value) || 0;
var monthlyTransportationExpense = parseFloat(document.getElementById('monthlyTransportationExpense').value) || 0;
var monthlyHealthCareExpense = parseFloat(document.getElementById('monthlyHealthCareExpense').value) || 0;
var monthlyOOPHealthCare = parseFloat(document.getElementById('monthlyOOPHealthCare').value) || 0;
var monthlyOtherExpenses = parseFloat(document.getElementById('monthlyOtherExpenses').value) || 0;
var cashBalance = parseFloat(document.getElementById('cashBalance').value) || 0;
var investmentsBalance = parseFloat(document.getElementById('investmentsBalance').value) || 0;
var realEstateFMV = parseFloat(document.getElementById('realEstateFMV').value) || 0;
var realEstateDebt = parseFloat(document.getElementById('realEstateDebt').value) || 0;
var vehicleFMV = parseFloat(document.getElementById('vehicleFMV').value) || 0;
var vehicleDebt = parseFloat(document.getElementById('vehicleDebt').value) || 0;
var otherAssetFMV = parseFloat(document.getElementById('otherAssetFMV').value) || 0;
var otherAssetDebt = parseFloat(document.getElementById('otherAssetDebt').value) || 0;
var oicPaymentOption = document.getElementById('oicPaymentOption').value;
// — Step 1: Calculate Allowable Monthly Expenses —
var totalAllowableMonthlyExpenses = 0;
// National Standards (Food, Clothing, Personal Care, Miscellaneous)
var stdFoodClothingMisc = nationalStandardsFoodClothingMisc[Math.min(householdSize, 6).toString()] || nationalStandardsFoodClothingMisc['6']; // Cap at 6 for simplicity
totalAllowableMonthlyExpenses += stdFoodClothingMisc;
// Housing & Utilities (Lesser of actual or local standard)
var stdHousingUtilities = localStandardsHousingUtilities[Math.min(householdSize, 6).toString()] || localStandardsHousingUtilities['6'];
totalAllowableMonthlyExpenses += Math.min(monthlyHousingExpense, stdHousingUtilities);
// Transportation (Lesser of actual or local standard – simplified to one vehicle)
var stdTransportation = localStandardsTransportationOperating + localStandardsTransportationOwnership; // Assuming one vehicle for simplicity
totalAllowableMonthlyExpenses += Math.min(monthlyTransportationExpense, stdTransportation);
// Health Care (Lesser of actual or national standard)
var stdHealthCarePremiums = (nationalStandardsHealthCare['adult'] * (numDependents >= 0 ? 1 : 0)) + (nationalStandardsHealthCare['child'] * numDependents);
totalAllowableMonthlyExpenses += Math.min(monthlyHealthCareExpense, stdHealthCarePremiums);
// Out-of-Pocket Health Care (Lesser of actual or national standard)
var stdOOPHealthCare = (nationalStandardsHealthCare['adult'] * (numDependents >= 0 ? 1 : 0)) + (nationalStandardsHealthCare['child'] * numDependents);
totalAllowableMonthlyExpenses += Math.min(monthlyOOPHealthCare, stdOOPHealthCare);
// Other Necessary Expenses (IRS allows actual if necessary and reasonable)
totalAllowableMonthlyExpenses += monthlyOtherExpenses;
// — Step 2: Calculate Monthly Disposable Income —
var monthlyDisposableIncome = monthlyGrossIncome – totalAllowableMonthlyExpenses;
if (monthlyDisposableIncome < 0) {
monthlyDisposableIncome = 0; // Cannot have negative disposable income for OIC calculation
}
// — Step 3: Calculate Ability to Pay (ATP) Component —
var atpMultiplier = (oicPaymentOption === 'lumpSum') ? 12 : 24;
var abilityToPayComponent = monthlyDisposableIncome * atpMultiplier;
// — Step 4: Calculate Equity in Assets Component —
var totalEquityInAssets = 0;
// Cash & Bank Accounts
totalEquityInAssets += cashBalance;
// Investments & Retirement Accounts (IRS looks at liquid value)
totalEquityInAssets += investmentsBalance;
// Real Estate Equity
var realEstateEquity = Math.max(0, realEstateFMV – realEstateDebt – assetExemptions['realEstate']);
totalEquityInAssets += realEstateEquity;
// Vehicle Equity (Assuming one vehicle for simplicity)
var vehicleEquity = Math.max(0, vehicleFMV – vehicleDebt – assetExemptions['vehicle']);
totalEquityInAssets += vehicleEquity;
// Other Asset Equity
var otherAssetEquity = Math.max(0, otherAssetFMV – otherAssetDebt); // No standard exemption for 'other' assets
totalEquityInAssets += otherAssetEquity;
// — Step 5: Calculate Total Reasonable Collection Potential (RCP) / Estimated OIC Amount —
var estimatedOIC = abilityToPayComponent + totalEquityInAssets;
// Display Result
var resultDiv = document.getElementById('oicResult');
resultDiv.innerHTML = '
Estimated Minimum Offer in Compromise (OIC) Amount:
' +
'$' + estimatedOIC.toLocaleString('en-US', { minimumFractionDigits: 2, maximumFractionDigits: 2 }) + '' +
'This estimate is based on your provided information and simplified IRS guidelines.' +
'Breakdown:' +
'