Price Gouging Detection Calculator

ANALife Services AuthorityNational 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

More Calculators

Read Next

Study Time Planner Authority Network America › Life Services Authority › National Calculator Authority .calc-container { max-width: 640px;...

References