1 · Audit Counters
Seven required structural metrics from the audit view.
2 · Mathematical Validation — Postgres vs Python / Excel
Side-by-side proof: pure-SQL Cramer's Rule output matches the scikit-learn / Excel closed-form OLS benchmark on the seeded Toyota Camry cohort, to the decimal.
| Metric | Postgres (Cramer) | Python / Excel | |Δ| |
|---|---|---|---|
| intercept (β₀) | 0 | -2,947,669.6854 | — |
| year coefficient (β₁) | 0 | 1,470.62949313 | — |
| mileage coefficient (β₂) | 0 | -0.0621497135 | — |
| r_squared | 0 | 0.9889860361 | — |
| sample_count | — | 18 | — |
| Metric | Postgres (Cramer) | Python / Excel | |Δ| |
|---|---|---|---|
| intercept (β₀) | 0 | -3,000,175.0619 | — |
| year coefficient (β₁) | 0 | 1,494.88407012 | — |
| mileage coefficient (β₂) | 0 | -0.0499646763 | — |
| r_squared | 0 | 0.9730032371 | — |
| sample_count | — | 12 | — |
3 · Diminished-Value RPC Calculator
Live execution of get_vehicle_diminished_value() — raw regression DV% vs guardrailed DV% (floor 10%, ceiling 25%).
Cohort lock: POC currently supports Toyota · Camry. Other inputs trigger the strict validation_status = ERROR path.
4 · Raw Listings vs Excluded Rows
Each row labeled with the precise reason for exclusion from listing_audit.
| VIN | Year | Price | Mileage | Acc |
|---|
| VIN | Year | Price | Mileage | Acc | Reason |
|---|
5 · SQL Migration Script
The exact migration applied to this Lovable Cloud backend. Copy or download to re-create the schema anywhere.
-- =====================================================================
-- National Accident Stigma Database (NASD) — POC backend (self-contained)
-- =====================================================================
-- 1. BASE TABLE -------------------------------------------------------
CREATE TABLE IF NOT EXISTS public.listings (
id BIGSERIAL PRIMARY KEY,
vin TEXT,
year INT,
make TEXT,
model TEXT,
trim TEXT,
price NUMERIC,
mileage NUMERIC,
zipcode TEXT,
state TEXT,
source TEXT,
accident_flag BOOLEAN NOT NULL DEFAULT false,
listing_date DATE,
created_at TIMESTAMPTZ NOT NULL DEFAULT now()
);
GRANT SELECT, INSERT, UPDATE, DELETE ON public.listings TO authenticated;
GRANT SELECT ON public.listings TO anon;
GRANT ALL ON public.listings TO service_role;
GRANT USAGE, SELECT ON SEQUENCE public.listings_id_seq TO anon, authenticated, service_role;
ALTER TABLE public.listings ENABLE ROW LEVEL SECURITY;
DROP POLICY IF EXISTS "Public read listings (POC)" ON public.listings;
CREATE POLICY "Public read listings (POC)" ON public.listings FOR SELECT USING (true);
CREATE INDEX IF NOT EXISTS idx_listings_make_model ON public.listings (lower(trim(make)), lower(trim(model)));
CREATE INDEX IF NOT EXISTS idx_listings_listing_date ON public.listings (listing_date);
CREATE INDEX IF NOT EXISTS idx_listings_accident_flag ON public.listings (accident_flag);
-- 2. AUDIT VIEW -------------------------------------------------------
CREATE OR REPLACE VIEW public.listing_audit
WITH (security_invoker = true) AS
WITH base AS (
SELECT l.*,
CASE WHEN l.vin IS NULL OR l.year IS NULL OR l.make IS NULL
OR l.model IS NULL OR l.price IS NULL
OR l.mileage IS NULL OR l.listing_date IS NULL
THEN 'missing_required_fields' END AS r_missing,
CASE WHEN l.listing_date IS NOT NULL
AND l.listing_date < CURRENT_DATE - INTERVAL '365 days'
THEN 'old_listing' END AS r_old,
CASE WHEN l.mileage IS NOT NULL AND l.mileage > 250000
THEN 'mileage_outlier' END AS r_mileage,
CASE WHEN COALESCE(l.source,'') ~* '(salvage|rebuilt|flood|junk|lemon)'
OR COALESCE(l.trim,'') ~* '(salvage|rebuilt|flood|junk|lemon)'
THEN 'salvage_title' END AS r_salvage
FROM public.listings l
),
with_median AS (
SELECT lower(trim(b.make)) AS mk, lower(trim(b.model)) AS mdl,
percentile_cont(0.5) WITHIN GROUP (ORDER BY b.price) AS cohort_median_price
FROM base b
WHERE b.r_missing IS NULL
GROUP BY lower(trim(b.make)), lower(trim(b.model))
),
flagged AS (
SELECT b.id, b.vin, b.year, b.make, b.model, b.trim, b.price, b.mileage,
b.zipcode, b.state, b.source, b.accident_flag, b.listing_date,
m.cohort_median_price,
b.r_missing, b.r_old, b.r_mileage, b.r_salvage,
CASE WHEN m.cohort_median_price IS NOT NULL
AND (b.price < 0.25 * m.cohort_median_price
OR b.price > 3.00 * m.cohort_median_price)
THEN 'price_outlier' END AS r_price
FROM base b
LEFT JOIN with_median m
ON m.mk = lower(trim(b.make)) AND m.mdl = lower(trim(b.model))
)
SELECT id, vin, year, make, model, trim, price, mileage, zipcode, state,
source, accident_flag, listing_date, cohort_median_price,
COALESCE(r_missing, r_salvage, r_old, r_mileage, r_price) AS reason_for_exclusion,
(COALESCE(r_missing, r_salvage, r_old, r_mileage, r_price) IS NULL) AS included
FROM flagged;
GRANT SELECT ON public.listing_audit TO anon, authenticated, service_role;
CREATE OR REPLACE VIEW public.cleaned_listings
WITH (security_invoker = true) AS
SELECT id, vin, year, make, model, trim, price, mileage,
zipcode, state, source, accident_flag, listing_date
FROM public.listing_audit
WHERE included = true;
GRANT SELECT ON public.cleaned_listings TO anon, authenticated, service_role;
CREATE OR REPLACE VIEW public.audit_counts
WITH (security_invoker = true) AS
SELECT
(SELECT count(*) FROM public.listings)::INT AS original_listing_count,
(SELECT count(*) FROM public.listing_audit WHERE included)::INT AS cleaned_listing_count,
(SELECT count(*) FROM public.listing_audit WHERE reason_for_exclusion='old_listing')::INT AS excluded_old_listing_count,
(SELECT count(*) FROM public.listing_audit WHERE reason_for_exclusion='mileage_outlier')::INT AS excluded_mileage_outlier_count,
(SELECT count(*) FROM public.listing_audit WHERE reason_for_exclusion='salvage_title')::INT AS excluded_salvage_title_count,
(SELECT count(*) FROM public.listing_audit WHERE reason_for_exclusion='price_outlier')::INT AS excluded_price_outlier_count,
(SELECT count(*) FROM public.listing_audit WHERE reason_for_exclusion='missing_required_fields')::INT AS excluded_missing_required_fields_count;
GRANT SELECT ON public.audit_counts TO anon, authenticated, service_role;
-- 3. OLS REGRESSION via CRAMER'S RULE --------------------------------
CREATE OR REPLACE FUNCTION public.calc_ols_camry(p_accident BOOLEAN)
RETURNS TABLE(
intercept NUMERIC,
year_coefficient NUMERIC,
mileage_coefficient NUMERIC,
sample_count INT,
r_squared NUMERIC
)
LANGUAGE plpgsql STABLE SECURITY INVOKER SET search_path = public
AS $fn$
DECLARE
n NUMERIC; sy NUMERIC; sm NUMERIC;
syy NUMERIC; smm NUMERIC; sym NUMERIC;
sp NUMERIC; syp NUMERIC; smp NUMERIC;
detA NUMERIC; det0 NUMERIC; det1 NUMERIC; det2 NUMERIC;
b0 NUMERIC; b1 NUMERIC; b2 NUMERIC;
mean_p NUMERIC; tss NUMERIC; rss NUMERIC;
BEGIN
SELECT count(*)::NUMERIC, sum(year::NUMERIC), sum(mileage),
sum(year::NUMERIC * year::NUMERIC), sum(mileage * mileage),
sum(year::NUMERIC * mileage), sum(price),
sum(year::NUMERIC * price), sum(mileage * price), avg(price)
INTO n, sy, sm, syy, smm, sym, sp, syp, smp, mean_p
FROM public.cleaned_listings
WHERE lower(make)='toyota' AND lower(model)='camry' AND accident_flag = p_accident;
IF n IS NULL OR n < 3 THEN
intercept:=NULL; year_coefficient:=NULL; mileage_coefficient:=NULL;
sample_count:=COALESCE(n,0)::INT; r_squared:=NULL; RETURN NEXT; RETURN;
END IF;
detA := n*(syy*smm - sym*sym) - sy*(sy*smm - sym*sm) + sm*(sy*sym - syy*sm);
det0 := sp*(syy*smm - sym*sym) - sy*(syp*smm - sym*smp) + sm*(syp*sym - syy*smp);
det1 := n*(syp*smm - smp*sym) - sp*(sy*smm - sym*sm) + sm*(sy*smp - syp*sm);
det2 := n*(syy*smp - syp*sym) - sy*(sy*smp - syp*sm) + sp*(sy*sym - syy*sm);
IF detA = 0 THEN
intercept:=NULL; year_coefficient:=NULL; mileage_coefficient:=NULL;
sample_count:=n::INT; r_squared:=NULL; RETURN NEXT; RETURN;
END IF;
b0 := det0 / detA; b1 := det1 / detA; b2 := det2 / detA;
SELECT sum((price - mean_p)^2),
sum((price - (b0 + b1*year::NUMERIC + b2*mileage))^2)
INTO tss, rss
FROM public.cleaned_listings
WHERE lower(make)='toyota' AND lower(model)='camry' AND accident_flag = p_accident;
intercept:=b0; year_coefficient:=b1; mileage_coefficient:=b2;
sample_count:=n::INT;
r_squared := CASE WHEN tss IS NULL OR tss = 0 THEN NULL ELSE 1 - (rss / tss) END;
RETURN NEXT;
END;
$fn$;
GRANT EXECUTE ON FUNCTION public.calc_ols_camry(BOOLEAN) TO anon, authenticated, service_role;
-- 4. VALIDATED 21-FIELD DIMINISHED-VALUE RPC --------------------------
DROP FUNCTION IF EXISTS public.get_vehicle_diminished_value(INT, TEXT, TEXT, NUMERIC);
CREATE OR REPLACE FUNCTION public.get_vehicle_diminished_value(
p_year INT, p_make TEXT, p_model TEXT, p_mileage NUMERIC
)
RETURNS TABLE(
raw_predicted_clean_value NUMERIC,
raw_predicted_accident_value NUMERIC,
raw_diminished_value NUMERIC,
raw_diminished_value_percent NUMERIC,
final_predicted_clean_value NUMERIC,
final_predicted_accident_value NUMERIC,
final_diminished_value NUMERIC,
final_diminished_value_percent NUMERIC,
guardrail_applied BOOLEAN,
guardrail_type TEXT,
guardrail_reason TEXT,
clean_sample_count INT,
accident_sample_count INT,
r_squared_clean NUMERIC,
r_squared_accident NUMERIC,
confidence_score NUMERIC,
validation_status TEXT,
warning_message TEXT,
remedy_applied TEXT,
requires_manual_review BOOLEAN
)
LANGUAGE plpgsql STABLE SECURITY INVOKER SET search_path = public
AS $rpc$
DECLARE
c RECORD; a RECORD;
pred_c NUMERIC; pred_a NUMERIC;
raw_pct NUMERIC; final_pct NUMERIC;
g_applied BOOLEAN := false;
g_type TEXT := 'none';
g_reason TEXT := 'Within standard defensibility boundaries.';
v_status TEXT := 'OK';
v_warn TEXT := 'No warnings.';
v_remedy TEXT := 'NONE';
v_review BOOLEAN := false;
v_conf NUMERIC := 0;
norm_make TEXT := lower(btrim(coalesce(p_make,'')));
norm_model TEXT := lower(btrim(coalesce(p_model,'')));
BEGIN
IF norm_make <> 'toyota' OR norm_model <> 'camry' THEN
raw_predicted_clean_value:=0; raw_predicted_accident_value:=0;
raw_diminished_value:=0; raw_diminished_value_percent:=0;
final_predicted_clean_value:=0; final_predicted_accident_value:=0;
final_diminished_value:=0; final_diminished_value_percent:=0;
guardrail_applied:=true; guardrail_type:='unsupported_cohort';
guardrail_reason:='POC currently supports Toyota Camry only.';
clean_sample_count:=0; accident_sample_count:=0;
r_squared_clean:=NULL; r_squared_accident:=NULL; confidence_score:=0;
validation_status:='ERROR';
warning_message:='POC currently supports Toyota Camry only.';
remedy_applied:='UNSUPPORTED_COHORT_BLOCKED'; requires_manual_review:=true;
RETURN NEXT; RETURN;
END IF;
SELECT * INTO c FROM public.calc_ols_camry(false);
SELECT * INTO a FROM public.calc_ols_camry(true);
IF c.intercept IS NULL OR a.intercept IS NULL THEN
raw_predicted_clean_value:=0; raw_predicted_accident_value:=0;
raw_diminished_value:=0; raw_diminished_value_percent:=0;
final_predicted_clean_value:=0; final_predicted_accident_value:=0;
final_diminished_value:=0; final_diminished_value_percent:=0;
guardrail_applied:=true; guardrail_type:='insufficient_data';
guardrail_reason:='Not enough cleaned cohort rows (need >= 3 per cohort).';
clean_sample_count:=COALESCE(c.sample_count,0);
accident_sample_count:=COALESCE(a.sample_count,0);
r_squared_clean:=c.r_squared; r_squared_accident:=a.r_squared;
confidence_score:=0; validation_status:='ERROR';
warning_message:='Insufficient cleaned cohort data to compute regression.';
remedy_applied:='ABORTED_LOW_SAMPLE'; requires_manual_review:=true;
RETURN NEXT; RETURN;
END IF;
pred_c := c.intercept + c.year_coefficient*p_year + c.mileage_coefficient*p_mileage;
pred_a := a.intercept + a.year_coefficient*p_year + a.mileage_coefficient*p_mileage;
raw_pct := CASE WHEN pred_c > 0 THEN (pred_c - pred_a)/pred_c ELSE NULL END;
IF raw_pct IS NULL THEN
final_pct:=0.10; g_applied:=true; g_type:='invalid_prediction';
g_reason:='Predicted clean value non-positive; defaulted to 10% floor.';
v_remedy:='CLAMPED_TO_FLOOR_INVALID_PRED'; v_review:=true;
ELSIF raw_pct*100 < 10 THEN
final_pct:=0.10; g_applied:=true; g_type:='minimum_threshold';
g_reason:='Raw observed depreciation below MarketVerify''s 10% minimum DV threshold.';
v_remedy:='CLAMPED_TO_FLOOR_10PCT'; v_review:=true;
ELSIF raw_pct*100 > 25 THEN
final_pct:=0.25; g_applied:=true; g_type:='maximum_threshold';
g_reason:='Raw observed depreciation exceeded MarketVerify''s 25% maximum V1 threshold.';
v_remedy:='CLAMPED_TO_CEILING_25PCT'; v_review:=true;
ELSE
final_pct:=raw_pct; g_applied:=false; g_type:='none';
g_reason:='Within standard 10%-25% defensibility boundaries.';
v_remedy:='NONE'; v_review:=false;
END IF;
v_conf := round(LEAST(1.0,
0.6*GREATEST(0, COALESCE((c.r_squared + a.r_squared)/2.0, 0))
+ 0.4*LEAST(1.0, (c.sample_count + a.sample_count)::NUMERIC/30.0)
)::NUMERIC, 4);
IF (c.sample_count + a.sample_count) < 20 THEN v_review:=true; END IF;
IF g_applied THEN
v_status:='GUARDRAILED';
v_warn:='Final DV% adjusted by '||g_type||' guardrail.';
END IF;
raw_predicted_clean_value := pred_c;
raw_predicted_accident_value := pred_a;
raw_diminished_value := pred_c - pred_a;
raw_diminished_value_percent := COALESCE(raw_pct,0)*100;
final_predicted_clean_value := pred_c;
final_predicted_accident_value := pred_c - (pred_c * final_pct);
final_diminished_value := pred_c * final_pct;
final_diminished_value_percent := final_pct * 100;
guardrail_applied := g_applied;
guardrail_type := g_type;
guardrail_reason := g_reason;
clean_sample_count := c.sample_count;
accident_sample_count := a.sample_count;
r_squared_clean := c.r_squared;
r_squared_accident := a.r_squared;
confidence_score := v_conf;
validation_status := v_status;
warning_message := v_warn;
remedy_applied := v_remedy;
requires_manual_review := v_review;
RETURN NEXT;
END;
$rpc$;
GRANT EXECUTE ON FUNCTION public.get_vehicle_diminished_value(INT, TEXT, TEXT, NUMERIC)
TO anon, authenticated, service_role;
-- 5. SEED.SQL — complete mock dataset (39 rows) -----------------------
INSERT INTO public.listings (id, vin, year, make, model, trim, price, mileage, zipcode, state, source, accident_flag, listing_date) VALUES
(1, '4T1BF1FK000000001', 2021, 'Toyota', 'Camry', 'XLE', 22516.59, 47544, '89817', 'TX', 'autotrader', false, '2026-06-06'),
(2, '4T1BF1FK000000002', 2022, 'Toyota', 'Camry', 'XLE', 24339.7, 20657, '29920', 'WA', 'carmax', false, '2026-03-22'),
(3, '4T1BF1FK000000003', 2017, 'Toyota', 'Camry', 'LE', 16643.84, 32675, '83148', 'NC', 'cargurus', false, '2026-05-23'),
(4, '4T1BF1FK000000004', 2021, 'Toyota', 'Camry', 'XLE', 23255.86, 23204, '87905', 'WA', 'dealer-feed', false, '2026-06-03'),
(5, '4T1BF1FK000000005', 2019, 'Toyota', 'Camry', 'LE', 19971.25, 17829, '45381', 'WA', 'autotrader', false, '2026-03-24'),
(6, '4T1BF1FK000000006', 2017, 'Toyota', 'Camry', 'XLE', 11107.27, 121677, '94820', 'NC', 'carmax', false, '2026-05-23'),
(7, '4T1BF1FK000000007', 2022, 'Toyota', 'Camry', 'XSE', 24268.12, 26312, '97641', 'GA', 'autotrader', false, '2026-06-12'),
(8, '4T1BF1FK000000008', 2019, 'Toyota', 'Camry', 'SE', 18526.87, 31779, '90074', 'TX', 'carmax', false, '2026-03-07'),
(9, '4T1BF1FK000000009', 2022, 'Toyota', 'Camry', 'XLE', 25053.9, 23495, '26952', 'NY', 'carmax', false, '2026-06-28'),
(10, '4T1BF1FK000000010', 2017, 'Toyota', 'Camry', 'XSE', 14886.06, 66520, '20561', 'FL', 'carmax', false, '2026-06-18'),
(11, '4T1BF1FK000000011', 2016, 'Toyota', 'Camry', 'XLE', 9881.55, 111987, '27947', 'PA', 'dealer-feed', false, '2026-05-23'),
(12, '4T1BF1FK000000012', 2016, 'Toyota', 'Camry', 'XSE', 13007.86, 65955, '57024', 'PA', 'cars.com', false, '2026-04-03'),
(13, '4T1BF1FK000000013', 2016, 'Toyota', 'Camry', 'SE', 14842.76, 42910, '29830', 'NY', 'cars.com', false, '2026-03-16'),
(14, '4T1BF1FK000000014', 2020, 'Toyota', 'Camry', 'TRD', 15535.0, 117874, '33900', 'IL', 'cargurus', false, '2026-03-05'),
(15, '4T1BF1FK000000015', 2018, 'Toyota', 'Camry', 'XSE', 17543.91, 38878, '80069', 'GA', 'dealer-feed', false, '2026-05-05'),
(16, '4T1BF1FK000000016', 2020, 'Toyota', 'Camry', 'TRD', 18694.74, 55376, '90949', 'CA', 'carmax', false, '2026-06-13'),
(17, '4T1BF1FK000000017', 2017, 'Toyota', 'Camry', 'XSE', 15433.31, 57249, '61658', 'TX', 'carmax', false, '2026-06-02'),
(18, '4T1BF1FK000000018', 2021, 'Toyota', 'Camry', 'SE', 22444.85, 33540, '18827', 'NY', 'carmax', false, '2026-04-04'),
(19, '4T1BF1FK000000019', 2020, 'Toyota', 'Camry', 'XLE', 18600.33, 28459, '88738', 'CA', 'autotrader', true, '2026-03-19'),
(20, '4T1BF1FK000000020', 2020, 'Toyota', 'Camry', 'SE', 17658.22, 27624, '80335', 'TX', 'cargurus', true, '2026-03-03'),
(21, '4T1BF1FK000000021', 2020, 'Toyota', 'Camry', 'SE', 17180.46, 65990, '90487', 'PA', 'cars.com', true, '2026-05-12'),
(22, '4T1BF1FK000000022', 2019, 'Toyota', 'Camry', 'TRD', 11687.66, 124090, '57731', 'WA', 'autotrader', true, '2026-03-28'),
(23, '4T1BF1FK000000023', 2022, 'Toyota', 'Camry', 'XSE', 17014.72, 94351, '71078', 'WA', 'carmax', true, '2026-05-03'),
(24, '4T1BF1FK000000024', 2019, 'Toyota', 'Camry', 'SE', 12329.65, 130799, '23393', 'GA', 'cargurus', true, '2026-06-27'),
(25, '4T1BF1FK000000025', 2018, 'Toyota', 'Camry', 'SE', 12221.28, 90582, '77676', 'CA', 'cars.com', true, '2026-05-05'),
(26, '4T1BF1FK000000026', 2017, 'Toyota', 'Camry', 'TRD', 11972.93, 59124, '13544', 'CO', 'cargurus', true, '2026-03-23'),
(27, '4T1BF1FK000000027', 2021, 'Toyota', 'Camry', 'XLE', 16769.82, 75988, '77947', 'GA', 'cars.com', true, '2026-05-25'),
(28, '4T1BF1FK000000028', 2016, 'Toyota', 'Camry', 'SE', 8380.36, 90708, '79807', 'CO', 'dealer-feed', true, '2026-05-21'),
(29, '4T1BF1FK000000029', 2020, 'Toyota', 'Camry', 'SE', 12453.29, 141791, '90377', 'NY', 'cars.com', true, '2026-06-24'),
(30, '4T1BF1FK000000030', 2018, 'Toyota', 'Camry', 'SE', 9750.72, 129659, '36203', 'CO', 'carmax', true, '2026-05-24'),
(31, 'OLDLIST00000000001', 2019, 'Toyota', 'Camry', 'LE', 18500, 62000, '90210', 'CA', 'autotrader', false, '2024-03-01'),
(32, 'MILEHIGH000000001', 2014, 'Toyota', 'Camry', 'SE', 9500, 278000, '75001', 'TX', 'cargurus', false, '2026-05-01'),
(33, 'SALVAGE0000000001', 2020, 'Toyota', 'Camry', 'XLE', 12000, 55000, '33101', 'FL', 'copart-salvage-auction', true, '2026-04-15'),
(34, 'REBUILT000000001A', 2021, 'Toyota', 'Camry', 'SE Rebuilt', 15500, 42000, '60601', 'IL', 'craigslist', true, '2026-05-20'),
(35, 'MISSING000000001A', 2020, 'Toyota', 'Camry', 'LE', NULL, 48000, '30301', 'GA', 'autotrader', false, '2026-05-30'),
(36, 'MISSING000000002A', 2019, 'Toyota', 'Camry', 'SE', 17500, NULL, '10001', 'NY', 'cars.com', false, '2026-06-01'),
(37, 'PRICEHI00000000A1', 2022, 'Toyota', 'Camry', 'TRD', 85000, 15000, '94016', 'CA', 'dealer-listing', false, '2026-06-02'),
(38, 'PRICELO00000000A1', 2020, 'Toyota', 'Camry', 'LE', 2500, 68000, '19101', 'PA', 'private-seller', false, '2026-06-03'),
(39, 'FLOOD0000000000A1', 2021, 'Toyota', 'Camry', 'XSE', 14000, 35000, '77001', 'TX', 'flood-recovery-listings', true, '2026-05-10')
ON CONFLICT (id) DO NOTHING;
SELECT setval('public.listings_id_seq', (SELECT max(id) FROM public.listings));