diff --git a/src/app/good-deal-test/page.tsx b/src/app/good-deal-test/page.tsx new file mode 100644 index 0000000..b19a9ea --- /dev/null +++ b/src/app/good-deal-test/page.tsx @@ -0,0 +1,694 @@ +import type { Metadata } from "next"; + +export const metadata: Metadata = { + title: "The Good Deal Test", + description: + "A 100-point scorecard for judging the Canada–US tariff package: does it leave Canada more sovereign, more united, and more prosperous than the status quo?", + alternates: { + canonical: "/good-deal-test", + }, +}; + +/* ─── Status vocabulary ───────────────────────────────────────────────────── + Bands are the scoring rubric (win / pass / fail). Provisional reads are the + pre-release call on each criterion, drawn from leaks only. */ + +type BandTone = "win" | "pass" | "fail"; +type ReadTone = "win" | "mixed" | "risk" | "unknown"; + +const bandToneClass: Record = { + win: "bg-pine-100 text-pine-800", + pass: "bg-copper-100 text-copper-800", + fail: "bg-auburn-100 text-auburn-900", +}; + +const readToneClass: Record = { + win: "bg-pine-100 text-pine-800", + mixed: "bg-copper-100 text-copper-800", + risk: "bg-auburn-100 text-auburn-900", + unknown: "bg-charcoal-200 text-charcoal-900", +}; + +type Band = { tone: BandTone; label: string; body: string }; + +type Criterion = { + n: number; + title: string; + weight: string; + check: string; + bands: Band[]; + read: { tone: ReadTone; label: string; why: string }; +}; + +type Pillar = { name: string; points: string; criteria: Criterion[] }; + +const pillars: Pillar[] = [ + { + name: "Prosperity", + points: "55 points", + criteria: [ + { + n: 1, + title: "Effective tariff rate vs. status quo", + weight: "12 pts", + check: "Post-deal effective rate: tariff revenue ÷ total exports.", + bands: [ + { tone: "win", label: "Win", body: "Below the pre-deal ~3.1%." }, + { + tone: "pass", + label: "Pass", + body: "Roughly flat, offset by certainty gains.", + }, + { tone: "fail", label: "Fail", body: "Above the pre-deal rate." }, + ], + read: { + tone: "win", + label: "Leaning win", + why: "232 cuts lower the rate; reported concessions are non-tariff. Verify no new baseline layer on non-CUSMA goods.", + }, + }, + { + n: 2, + title: "CUSMA exemption in writing", + weight: "10 pts", + check: + "The 0% exemption for compliant goods has existed at presidential discretion since March 2025.", + bands: [ + { + tone: "win", + label: "Win", + body: "Written commitment: compliant goods stay at 0%, with a dated renewal path (Canada asked for 16 years).", + }, + { + tone: "pass", + label: "Pass", + body: "Exemption reaffirmed in text, no long-term lock.", + }, + { + tone: "fail", + label: "Fail", + body: "Silent, narrowed, quota-ized, or revocable at will.", + }, + ], + read: { + tone: "unknown", + label: "Unknown", + why: "Not addressed in any leak.", + }, + }, + { + n: 3, + title: "Section 232 relief — steel, aluminum, autos, lumber", + weight: "15 pts", + check: + "Carney's stated test: all four addressed. Score each against its industry's floor.", + bands: [ + { + tone: "win", + label: "Steel · 4", + body: "Win: 0%, or quota at/above recent volumes at ≤25%. Floor: reported 4Mt at 25% (CSPA accepts). Fail: quota below actual shipments.", + }, + { + tone: "win", + label: "Alum. · 4", + body: "Win: lower tariff, no volume quota (AAC red line). Fail: any cap, at any rate. Leaks conflict — check TRQ mechanics.", + }, + { + tone: "win", + label: "Autos · 4", + body: "Win: effective rate on a Canadian-built vehicle below ~6% (APMA margin test). Fail: 15% long-term with US-content-only carve-out.", + }, + { + tone: "win", + label: "Lumber · 3", + body: "Win: settlement ending AD/CVD plus 232 relief. Pass: cut with a dated track. Fail: excluded.", + }, + ], + read: { + tone: "mixed", + label: "Mixed", + why: "Steel acceptable; aluminum hinges on quota; autos leaning fail; lumber likely out (reports conflict).", + }, + }, + { + n: 4, + title: "Reciprocity ledger", + weight: "8 pts", + check: + "New Canadian concessions (alcohol, procurement, dairy TRQ allocation, remaining counter-tariffs, digital, minerals/defence) vs. US concessions.", + bands: [ + { + tone: "win", + label: "Win", + body: "US tariff removals of comparable value. Canada's gives limited to low-cost items (alcohol; dairy TRQ allocation already lost at the 2023 panel).", + }, + { + tone: "pass", + label: "Pass", + body: "Balanced only if the shelved Section 338 threat counts as a US concession.", + }, + { + tone: "fail", + label: "Fail", + body: "Canada gives durable policy; US keeps tariffs it imposed unilaterally.", + }, + ], + read: { + tone: "mixed", + label: "Contested", + why: "Depends on Q7–Q9.", + }, + }, + { + n: 5, + title: "Durability mechanics", + weight: "10 pts", + check: + "Precedent: USMCA (2018) and the EU deal (2025) were both reopened under tariff threat within two years. Score the mechanics, not the communiqué.", + bands: [ + { + tone: "win", + label: "Win", + body: "Signed text, defined term; Section 338 proclamations revoked; snap-back conditions written and narrow; dispute settlement intact; CUSMA annual-review path to renewal.", + }, + { + tone: "pass", + label: "Pass", + body: "Framework with dated milestones; 338 formally withdrawn.", + }, + { + tone: "fail", + label: "Fail", + body: "Handshake framework; tariffs returnable at presidential discretion; 338 held in reserve.", + }, + ], + read: { + tone: "unknown", + label: "Unknown", + why: "Check legal form: proclamation vs. executive agreement; revoked vs. paused.", + }, + }, + ], + }, + { + name: "Sovereignty", + points: "30 points", + criteria: [ + { + n: 6, + title: "Statutory red lines", + weight: "10 pts", + check: + "Supply management (Bill C-202): no new quota volume — allocation changes acceptable. Cultural exemption. French-language requirements.", + bands: [ + { tone: "win", label: "Win", body: "All held, explicitly, in text." }, + { tone: "pass", label: "Pass", body: "Held by omission." }, + { + tone: "fail", + label: "Fail", + body: 'Any breached — including quota-volume expansion labelled "administration."', + }, + ], + read: { + tone: "win", + label: "Leaning win", + why: 'LeBlanc: supply management "not subject to negotiation." Check dairy text against Trump\'s "non-existent agricultural tariffs" claim.', + }, + }, + { + n: 7, + title: "Policy autonomy", + weight: "10 pts", + check: + 'Scope of "digital trade alignment" and "economic security commitments": data localization, Online News / Online Streaming Acts, DST non-reintroduction, China-facing alignment, critical-minerals right of first refusal, F-35 / Golden Dome, energy export commitments.', + bands: [ + { + tone: "win", + label: "Win", + body: "Cooperation language only; no binding constraint on future legislation or resource decisions.", + }, + { + tone: "pass", + label: "Pass", + body: "Narrow, reciprocal, time-limited commitments with exit clauses.", + }, + { + tone: "fail", + label: "Fail", + body: "US first-refusal rights over minerals, constraints on digital law, or defence procurement written into trade text.", + }, + ], + read: { + tone: "unknown", + label: "Unknown", + why: "No text yet for either phrase.", + }, + }, + { + n: 8, + title: "Leverage retained", + weight: "10 pts", + check: + "Position going into the 2027 CUSMA annual review and the 2036 sunset.", + bands: [ + { + tone: "win", + label: "Win", + body: "No constraints on future counter-measures; no MFN obligations to the US; diversification unrestricted (China canola track, EU, Indo-Pacific).", + }, + { + tone: "pass", + label: "Pass", + body: "Consult-before-retaliating commitments; diversification untouched.", + }, + { + tone: "fail", + label: "Fail", + body: "No-retaliation clauses, or the US-content auto carve-out carried into the CUSMA rules-of-origin negotiation.", + }, + ], + read: { + tone: "risk", + label: "At risk", + why: "US CUSMA ask already includes an 82% content rule with a 50% US-specific carve-out.", + }, + }, + ], + }, + { + name: "Unity", + points: "15 points", + criteria: [ + { + n: 9, + title: "Regional balance", + weight: "10 pts", + check: + "Ontario: steel, autos. Quebec: aluminum, dairy. BC: lumber. Prairies: energy, potash, canola. Atlantic: fish, forestry.", + bands: [ + { tone: "win", label: "Win", body: "Every region gains." }, + { + tone: "pass", + label: "Pass", + body: "Broad relief; excluded sectors get a named, dated track.", + }, + { + tone: "fail", + label: "Fail", + body: "Lumber excluded with nothing while other sectors settle.", + }, + ], + read: { + tone: "risk", + label: "At risk", + why: 'Two reports say lumber excluded; one says "forest products" included. Eby conditioned cooperation on lumber.', + }, + }, + { + n: 10, + title: "Provincial consent", + weight: "5 pts", + check: + "Alcohol and procurement commitments require provincial implementation.", + bands: [ + { tone: "win", label: "Win", body: "All premiers endorse." }, + { tone: "pass", label: "Pass", body: "Majority on side." }, + { + tone: "fail", + label: "Fail", + body: "Provinces refuse to implement.", + }, + ], + read: { + tone: "mixed", + label: "Mostly on side", + why: "Premiers restocked shelves Aug 20. Kinew dissenting. Ford silent.", + }, + }, + ], + }, +]; + +const scoreBands: { + score: string; + verdict: string; + tone: "good" | "ok" | "weak" | "bad"; + position: string; +}[] = [ + { + score: "75–100", + verdict: "Good deal", + tone: "good", + position: "Support. Credit what was defended and won.", + }, + { + score: "60–74", + verdict: "Defensible deal", + tone: "ok", + position: "Support, with named fixes for the CUSMA review.", + }, + { + score: "45–59", + verdict: "Weak deal", + tone: "weak", + position: "Push for changes before implementation.", + }, + { + score: "< 45", + verdict: "Bad deal", + tone: "bad", + position: "Oppose. Status quo scored higher.", + }, +]; + +const verdictToneClass = { + good: "text-pine-700", + ok: "text-copper-700", + weak: "text-auburn-800", + bad: "text-auburn-800", +} as const; + +const firstChecks = [ + { + lead: "CUSMA exemption in writing?", + rest: "(Criterion 2)", + }, + { + lead: "Aluminum quota?", + rest: "Any volume cap fails criterion 3 regardless of rate.", + }, + { + lead: "Effective rate on a Canadian-built vehicle?", + rest: "Above ~6% fails the APMA test.", + }, + { + lead: "Section 338: revoked or suspended?", + rest: "(Criterion 5)", + }, + { + lead: "Lumber: in, out, or dated track?", + rest: "(Criteria 3 and 9)", + }, +]; + +const checklist = [ + { + label: "Q1 · Steel", + body: "Quota confirmed at 4Mt? Admin method (allocated vs. first-come)? Derivative products covered?", + }, + { + label: "Q2 · Aluminum", + body: "In-quota rate (25% or single-digit)? Any volume cap?", + }, + { + label: "Q3 · Autos", + body: "15% confirmed? Content formula changed? Parts treatment? Volume caps? Canada's counter-tariff to zero when?", + }, + { + label: "Q4 · Lumber", + body: "In or out? Interaction with the AR7 duty cut (to 24.83%) due within weeks?", + }, + { + label: "Q5 · CUSMA baseline", + body: "Compliant-goods exemption in writing? Any 10% baseline layer on non-CUSMA goods?", + }, + { + label: "Q6 · Section 338", + body: "Proclamations revoked, suspended, or held as snap-back?", + }, + { + label: "Q7 · Dairy", + body: "Exact TRQ language — allocation only, or volume expansion? Supply management protected in text?", + }, + { + label: "Q8 · Agriculture", + body: 'Text behind "non-existent tariffs for US farmers"?', + }, + { + label: "Q9 · Security", + body: "F-35 completion, Golden Dome, minerals right-of-first-refusal, oil commitments — in or out?", + }, + { + label: "Q10 · Digital", + body: "Binding DST non-return? Data flows and localization? Online News / Streaming Acts touched?", + }, + { + label: "Q11 · Duration", + body: "Term, review clauses, snap-back triggers, fit with CUSMA annual review (next: July 2027) and 2036 sunset.", + }, + { + label: "Q12 · Other 232s", + body: "Copper, pharma, furniture — any relief?", + }, + { + label: "Q13 · Legal form", + body: "Executive agreement or proclamations? Congress or Parliament required? Provincial enforceability?", + }, + { + label: "Q14 · Refunds", + body: "Settlement language on the ~$160B IEEPA refund litigation for Canadian-origin goods?", + }, +]; + +const benchmarks = [ + { + label: "Test:", + body: "Build Canada's published standard — more sovereign, more united, more prosperous than the status quo.", + }, + { + label: "Effective-rate math:", + body: "Tombe (The Hub): ~3.1% effective, lowest among major US partners. RBC: CUSMA exemption worth ~6 points.", + }, + { + label: "Government:", + body: 'Carney — "not a deal at any cost" (2025-07-22); "all 232s, all strategic sectors" (2026-08). LeBlanc red lines: supply management, cultural exemption. Canada\'s 16-year CUSMA renewal request (2026-06-02).', + }, + { + label: "Industry floors:", + body: "CSPA/Cobden (steel quota acceptance); AAC/Simard (no aluminum quotas); APMA/Volpe (~6% margin test); BCLTC/Niquidet (durable lumber settlement); BCC/Hyder (CUSMA exemption; rate below every other US partner).", + }, + { + label: "Comparators:", + body: "UK 10%, EU 15%, Japan 15%. Canada's pre-deal effective rate was below all three.", + }, + { + label: "Adjustments:", + body: "Section 338 threat treated as anchor, not baseline. Pre-deal concessions treated as sunk. Durability scored on mechanics only.", + }, +]; + +function SectionHead({ title, meta }: { title: string; meta?: string }) { + return ( +
+

{title}

+ {meta &&

{meta}

} +
+ ); +} + +export default function GoodDealTestPage() { + return ( +
+
+
+
+

+ The Good Deal Test +

+

+ Does this package leave Canada{" "} + + more sovereign, more united, and more prosperous than the status + quo + + ? +

+

+ Prepared 2026-08-21, before the details release. 100 points across + three pillars. Score from official text and fact sheets only. All + pre-release terms below are leaks until confirmed. +

+
+
+ +
+ {/* ─── Baseline ─── */} + + + {/* ─── Pillars ─── */} + {pillars.map((pillar) => ( +
+ + {pillar.criteria.map((c) => ( +
+
+

+ {c.n}. {c.title} +

+

+ {c.weight} +

+
+

+ {c.check} +

+ +
+ {c.bands.map((b) => ( +
+
+ {b.label} +
+
+ {b.body} +
+
+ ))} +
+ +
+ + {c.read.label} + + + {c.read.why} + +
+
+ ))} +
+ ))} + + {/* ─── Score bands ─── */} +
+ +
+ + + + {["Score", "Verdict", "Position"].map((h) => ( + + ))} + + + + {scoreBands.map((b) => ( + + + + + + ))} + +
+ {h} +
+ {b.score} + + {b.verdict} + + {b.position} +
+
+
+ + {/* ─── First checks ─── */} +
+ +
    + {firstChecks.map((c) => ( +
  1. + {c.lead} {c.rest} +
  2. + ))} +
+
+ + {/* ─── Details-release checklist ─── */} +
+ +
+ {checklist.map((q) => ( +
+

{q.label}

+

+ {q.body} +

+
+ ))} +
+
+ + {/* ─── Benchmarks ─── */} +
+ +
    + {benchmarks.map((b) => ( +
  • + {b.label}{" "} + {b.body} +
  • + ))} +
+
+ + +
+
+
+ ); +}