Price Gouging Detection Calculator
ANA›Life Services Authority›National Calculator Authority›Price Gouging Detection Calculator
.calc-container { max-width: 640px; margin: 2rem 0; padding: 1.5rem; background: #fff; border: 1px solid #ddd; border-radius: 8px; box-shadow: 0 1px 3px rgba(0,0,0,0.06); font-family: system-ui, -apple-system, sans-serif; } .calc-container h3 { font-family: Georgia, serif; font-size: 1.15rem; color: #1a1a1a; margin-bottom: 1rem; padding-bottom: 0.5rem; border-bottom: 2px solid var(--ac, #3d5a80); } .calc-row { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 0.75rem; flex-wrap: wrap; } .calc-row label { min-width: 160px; font-size: 0.9rem; color: #333; font-weight: 500; } .calc-row input[type="number"], .calc-row select { flex: 1; min-width: 120px; max-width: 200px; padding: 0.5rem 0.6rem; border: 1px solid #ccc; border-radius: 4px; font-size: 0.9rem; font-family: system-ui, sans-serif; color: #1a1a1a; background: #fafaf8; } .calc-row input:focus, .calc-row select:focus { outline: none; border-color: var(--ac, #3d5a80); box-shadow: 0 0 0 2px rgba(26,74,138,0.12); } .calc-row .unit { font-size: 0.82rem; color: #888; min-width: 30px; } .calc-btn { display: inline-block; margin-top: 0.5rem; padding: 0.55rem 1.5rem; background: var(--ac, #3d5a80); color: #fff; border: none; border-radius: 4px; font-size: 0.9rem; font-weight: 600; cursor: pointer; font-family: system-ui, sans-serif; } .calc-btn:hover { opacity: 0.9; } .calc-result { margin-top: 1.25rem; padding: 1rem 1.25rem; background: #f0f6fc; border-left: 3px solid var(--ac, #3d5a80); border-radius: 0 6px 6px 0; display: none; } .calc-result.visible { display: block; } .calc-result-label { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.06em; color: #666; margin-bottom: 0.25rem; } .calc-result-value { font-size: 1.6rem; font-weight: 700; color: var(--ac, #3d5a80); } .calc-result-detail { font-size: 0.85rem; color: #555; margin-top: 0.5rem; line-height: 1.5; } .calc-note { margin-top: 1rem; font-size: 0.8rem; color: #888; font-style: italic; } .calc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; margin-top: 0.75rem; } .calc-grid-item { padding: 0.6rem 0.8rem; background: #f8f9fa; border-radius: 4px; border: 1px solid #eee; } .calc-grid-item .label { font-size: 0.75rem; color: #888; text-transform: uppercase; letter-spacing: 0.04em; } .calc-grid-item .value { font-size: 1.1rem; font-weight: 600; color: #1a1a1a; } @media (max-width: 720px) { .calc-row { flex-direction: column; align-items: flex-start; gap: 0.3rem; } .calc-row label { min-width: auto; } .calc-row input[type="number"], .calc-row select { max-width: 100%; width: 100%; } .calc-grid { grid-template-columns: 1fr; } } .calc-chart { margin: 1rem 0; text-align: center; } .calc-chart svg { max-width: 100%; height: auto; } .calc-chart-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.6rem 1.2rem; margin-top: 0.6rem; font-size: 0.8rem; color: #555; } .calc-chart-legend span { display: inline-flex; align-items: center; gap: 0.3rem; } .calc-chart-legend i { display: inline-block; width: 10px; height: 10px; border-radius: 2px; font-style: normal; } .calc-related { max-width: 640px; margin: 2rem 0 1rem; padding: 1.25rem 1.5rem; background: #f8f9fa; border: 1px solid #e8e8e8; border-radius: 8px; } .calc-related h3 { font-family: Georgia, serif; font-size: 1rem; color: #1a1a1a; margin: 0 0 0.75rem; padding-bottom: 0.4rem; border-bottom: 2px solid var(--ac, #3d5a80); } .calc-related-list { list-style: none; padding: 0; margin: 0 0 0.75rem; display: grid; grid-template-columns: 1fr 1fr; gap: 0.4rem 1.5rem; } .calc-related-list li a { font-size: 0.88rem; color: var(--ac, #3d5a80); text-decoration: none; } .calc-related-list li a:hover { text-decoration: underline; } .calc-browse-all { margin: 0.5rem 0 0; font-size: 0.9rem; font-weight: 600; } .calc-browse-all a { color: var(--ac, #3d5a80); text-decoration: none; } .calc-browse-all a:hover { text-decoration: underline; } @media (max-width: 720px) { .calc-related-list { grid-template-columns: 1fr; } }
Price Gouging Detection Calculator
Determine whether a price increase constitutes price gouging based on pre-emergency baseline prices and current prices. Many jurisdictions define price gouging as a price increase of 10%–25% or more above pre-emergency levels.
Baseline (Pre-Emergency) Price ($)
Current (Post-Emergency) Price ($)
Jurisdiction Threshold (%)
10% — California, Florida, New York 15% — Custom / Conservative 20% — Federal / General Guideline 25% — Texas, Louisiana 30% — Custom / Lenient
Supplier Cost Increase (%) (optional — justifiable cost pass-through)
Calculate
function priCalc() { var baseline = parseFloat(document.getElementById('pri-baseline-price').value); var current = parseFloat(document.getElementById('pri-current-price').value); var threshold = parseFloat(document.getElementById('pri-threshold').value); var costIncrease = parseFloat(document.getElementById('pri-cost-increase').value) || 0;
var resultDiv = document.getElementById('pri-result'); resultDiv.style.display = 'block';
// --- Input Validation --- if (isNaN(baseline) || baseline ⚠ Please enter a valid baseline price greater than $0.00.'; return; } if (isNaN(current) || current ⚠ Please enter a valid current price greater than $0.00.'; return; } if (current ✓ The current price is lower than the baseline price — no price gouging detected.'; return; } if (costIncrease 100) { resultDiv.innerHTML = '⚠ Supplier cost increase must be between 0% and 100%.'; return; }
// --- Core Formulas --- // Absolute price increase var absoluteIncrease = current - baseline;
// Percentage price increase // Formula: Price Increase % = ((Current Price - Baseline Price) / Baseline Price) × 100 var priceIncreasePercent = ((current - baseline) / baseline) * 100;
// Adjusted threshold accounting for justifiable cost pass-through // Formula: Adjusted Threshold = Jurisdiction Threshold % + Supplier Cost Increase % var adjustedThreshold = threshold + costIncrease;
// Maximum allowable price // Formula: Max Allowable Price = Baseline Price × (1 + Adjusted Threshold / 100) var maxAllowablePrice = baseline * (1 + adjustedThreshold / 100);
// Price gouging amount (excess above max allowable) // Formula: Gouging Amount = Current Price - Max Allowable Price (if positive) var gougingAmount = current - maxAllowablePrice;
// Gouging severity index (how many times over the threshold) // Formula: Severity Index = Price Increase % / Adjusted Threshold var severityIndex = priceIncreasePercent / adjustedThreshold;
- // --- Verdict ---
- var isGouging = priceIncreasePercent > adjustedThreshold;
- var verdictColor = isGouging ? '#c0392b' : '#27ae60';
- var verdictIcon = isGouging ? '⚠' : '✓';
- var verdictText = isGouging
- ? 'POTENTIAL PRICE GOUGING DETECTED'
- 'No Price Gouging Detected';
// Severity label var severityLabel = ''; var severityColor = ''; if (!isGouging) { severityLabel = 'Within Legal Limits'; severityColor = '#27ae60'; } else if (severityIndex ' + '' + verdictIcon + ' ' + verdictText + '' + 'Severity: ' + severityLabel + '' + '';
html += '' + '' + 'Metric' + 'Value' + '';
var rows = [ ['Baseline Price', '$' + baseline.toFixed(2)], ['Current Price', '$' + current.toFixed(2)], ['Absolute Price Increase', '$' + absoluteIncrease.toFixed(2)], ['Price Increase %', priceIncreasePercent.toFixed(2) + '%'], ['Jurisdiction Threshold', threshold.toFixed(1) + '%'], ['Justifiable Cost Pass-Through', costIncrease.toFixed(1) + '%'], ['Adjusted Allowable Threshold', adjustedThreshold.toFixed(1) + '%'], ['Maximum Allowable Price', '$' + maxAllowablePrice.toFixed(2)], ['Excess Above Allowable Price', isGouging ? '$' + gougingAmount.toFixed(2) : 'N/A'], ['Severity Index (×threshold)', severityIndex.toFixed(2) + 'x'], ];
for (var i = 0; i ' + '' + rows[i][0] + '' + '' + rows[i][1] + '' + ''; }
html += '';
if (isGouging) { html += '' + 'Note: This result is an estimate for informational purposes only. ' + 'Legal definitions of price gouging vary by jurisdiction and may require a declared state of emergency. ' + 'Consult a legal professional or your local consumer protection agency for official determination.' + ''; }
resultDiv.innerHTML = html; }
#### Formulas Used
Price Increase % Price Increase % = ((Current Price − Baseline Price) / Baseline Price) × 100
Adjusted Allowable Threshold Adjusted Threshold = Jurisdiction Threshold % + Supplier Cost Increase % Accounts for legitimate cost increases passed through from suppliers.
Maximum Allowable Price Max Allowable Price = Baseline Price × (1 + Adjusted Threshold / 100)
Excess (Gouging Amount) Gouging Amount = Current Price − Max Allowable Price (positive value indicates gouging)
Severity Index Severity Index = Price Increase % / Adjusted Threshold A value > 1.0 indicates the threshold has been exceeded.
#### Assumptions & References
- California (AB 1813): 10% above pre-emergency price is the legal threshold.
- Florida (§501.160): Prices that "grossly exceed" the average — courts often apply ~10%.
- New York (Gen. Bus. Law §396-r): "Unconscionably excessive" — commonly interpreted as ≥10%.
- Texas (Bus. & Com. Code §17.46): Prices that are "exorbitant or excessive" — often ~25%.
- Federal guidance (FTC): No single federal price gouging law; the FTC monitors and refers cases to states.
- This calculator is for informational purposes only and does not constitute legal advice.
More Calculators
- Expert Witness Cost Estimator
- Recurring Cleaning Discount Calculator
- Lost Earnings / Damages Calculator
- House Cleaning Time Estimator
- Cleaning Supplies Cost Per Job Calculator
- MTG Commander Deck Color Identity Calculator
- Tourism Revenue Per Visitor Calculator
- Equipment Replacement vs Repair Cost Calculator
- Houston Hotel Occupancy Tax Calculator
- HVAC Maintenance Schedule & Cost Estimator
- Houston Event Venue ROI Calculator
Read Next
Study Time Planner Authority Network America › Life Services Authority › National Calculator Authority .calc-container { max-width: 640px;...