diff --git a/lib/slideshows.ts b/lib/slideshows.ts index 9c1873a..67254ee 100644 --- a/lib/slideshows.ts +++ b/lib/slideshows.ts @@ -28,8 +28,10 @@ import { overhang2026BackupConfig } from "@/slideshows/overhang-2026-backup/conf import { overhang2026LightningConfig } from "@/slideshows/overhang-2026-lightning/config"; import { blsTaxsim2026Config } from "@/slideshows/bls-taxsim-2026/config"; import { scottishGovernment2026Config } from "@/slideshows/scottish-government-2026/config"; +import { israelMof2026Config } from "@/slideshows/israel-mof-2026/config"; export const slideshows: SlideshowConfig[] = [ + israelMof2026Config, scottishGovernment2026Config, blsTaxsim2026Config, overhang2026Config, diff --git a/slideshows/israel-mof-2026/config.ts b/slideshows/israel-mof-2026/config.ts new file mode 100644 index 0000000..f33df9f --- /dev/null +++ b/slideshows/israel-mof-2026/config.ts @@ -0,0 +1,45 @@ +import { SlideshowConfig } from '@/lib/types'; +import { speakers } from '@/lib/speakers'; +import { iariw2026Config } from '@/slideshows/iariw-2026/config'; +import IariwTitleSlide from '@/slideshows/iariw-2026/slides/TitleSlide'; +import CertificationLadderSlide from '@/slideshows/iariw-2026/slides/CertificationLadderSlide'; +import TitleSlide from './slides/TitleSlide'; +import { + IsraelDividerSlide, + IsraelEncodedSlide, + IsraelExampleSlide, + IsraelNextSlide, +} from './slides/IsraelSlides'; + +// The IARIW 2026 deck, re-titled for the Israel Ministry of Finance call, +// with an Israel section after the Axiom section. +const base = iariw2026Config.slides; +const titleIndex = base.indexOf(IariwTitleSlide); +const axiomEnd = base.indexOf(CertificationLadderSlide); +if (titleIndex !== 0 || axiomEnd < 0) { + throw new Error('israel-mof-2026: IARIW slide order changed; update config'); +} + +const slides = [ + TitleSlide, + ...base.slice(1, axiomEnd + 1), + IsraelDividerSlide, + IsraelEncodedSlide, + IsraelExampleSlide, + IsraelNextSlide, + ...base.slice(axiomEnd + 1), +]; + +export const israelMof2026Config: SlideshowConfig = { + id: 'israel-mof-2026', + title: 'From open models to executable law: Israel', + description: + 'PolicyEngine and Axiom, with Israeli income tax and National Insurance law encoded as executable code', + date: '2026-10-14', + location: "Chief Economist's Department, Israel Ministry of Finance (video call)", + footerText: 'PolicyEngine · Israel Ministry of Finance · October 2026', + partnerLogo: iariw2026Config.partnerLogo, + speakers: [speakers['max-ghenis']], + private: false, + slides, +}; diff --git a/slideshows/israel-mof-2026/slides/IsraelSlides.tsx b/slideshows/israel-mof-2026/slides/IsraelSlides.tsx new file mode 100644 index 0000000..1bc7d3a --- /dev/null +++ b/slideshows/israel-mof-2026/slides/IsraelSlides.tsx @@ -0,0 +1,210 @@ +import Slide from '@/components/core/Slide'; +import SlideHeader from '@/components/layout/SlideHeader'; +import SlideTitle from '@/components/layout/SlideTitle'; +import SectionDivider from '@/slideshows/iariw-2026/slides/SectionDivider'; + +// Every figure here comes from TheAxiomFoundation/rulespec-il main at +// 171f0373 (2026-10-14): the module list under il/statutes/, and the first +// case of il/statutes/composed/worker-with-children-monthly-net-pipeline.test.yaml. + +const he = (text: string) => ( + + {text} + +); + +export const IsraelDividerSlide = () => ( + +); + +export function IsraelEncodedSlide() { + return ( + + + Israeli tax and benefit law as executable code + + +
+
+
Encoded so far: 18 provisions
+
    +
  • + Income Tax Ordinance: rate brackets (§121), additional tax + on high incomes ({he('§121ב')}), credit points ( + {he('§§33א, 34, 36, 36א')}), child credit points (§66),{' '} + {he('§120ב')} +
  • +
  • + National Insurance Law: child allowance (§§1, 66–68); + employee contributions (§§334, 337, 342, 348 and the rate + schedules {he('לוח י׳')}, {he('לוח י״א')}) +
  • +
  • + One composed pipeline: monthly net income for an employed parent +
  • +
+
+ +
+
+ How each provision is built +
+
    +
  • Encoded from the Hebrew text; each rule cites its provision
  • +
  • + Every number is checked against the source text, and every + module has test cases +
  • +
  • + Corpus: the Income Tax Ordinance, the National Insurance Law, the + 2026 budget act and the National Health Insurance Law (1,633 + provisions) +
  • +
+
+
+ +

+ Open source · browse at{' '} + axiom.org/il +

+
+ ); +} + +const rows: { label: string; value: string; total?: boolean }[] = [ + { label: 'Income tax before credits (§121), per year', value: '₪25,392' }, + { + label: 'Credit points: resident 2, woman 0.5, travel 0.25, children 4.5 + 2', + value: '9.25', + }, + { label: 'Credit value: 9.25 × ₪2,904', value: '₪26,862' }, + { label: 'Income tax after credits', value: '₪0' }, + { label: 'Child allowance, per month (₪173 + ₪219)', value: '₪392' }, + { + label: 'Monthly income after income tax and child allowance', + value: '₪15,392', + total: true, + }, +]; + +export function IsraelExampleSlide() { + return ( + + + + A mother earning ₪15,000 a month, with children aged 2 and 8 (2026) + + + +
+
+ + + {rows.map((r) => ( + + + + + ))} + +
{r.label} + {r.value} +
+
+ +
+
+ What the example shows +
+
    +
  • + Each line is computed by an encoded provision, and the case is a + test in the repository +
  • +
  • + The pipeline has 15 such cases: fathers, minimum wage, high + earners, a child in its birth year or turning 18, a child living + abroad +
  • +
  • + Current-year amounts (the credit-point value and the + child-allowance basic amounts) are inputs for now, and employee + National Insurance and health contributions are not yet + subtracted +
  • +
+
+
+
+ ); +} + +export function IsraelNextSlide() { + return ( + + + What a PolicyEngine model of Israel would need + + +
+
+
Have
+
    +
  • + Rules as code for income tax, credit points and child allowance, + with citations and tests +
  • +
  • + Employee National Insurance contribution rules encoded; health + insurance ({he('§14')}) in progress +
  • +
  • + The PolicyEngine method from the US and UK models: household + calculator, reform analysis, budget and distributional impacts +
  • +
+
+ +
+
+ Need +
+
    +
  • + Household microdata: Central Bureau of Statistics household + surveys +
  • +
  • + Calibration to National Insurance Institute and Tax + Authority totals +
  • +
  • + More rules: the remaining benefits and contributions, and + current-year amounts from official publications +
  • +
  • + Validation against the ministry's own estimates +
  • +
+
+
+
+ ); +} diff --git a/slideshows/israel-mof-2026/slides/TitleSlide.tsx b/slideshows/israel-mof-2026/slides/TitleSlide.tsx new file mode 100644 index 0000000..e0fd9cb --- /dev/null +++ b/slideshows/israel-mof-2026/slides/TitleSlide.tsx @@ -0,0 +1,92 @@ +'use client'; + +import Image from '@/components/core/BasePathImage'; +import Slide from '@/components/core/Slide'; +import { speakers } from '@/lib/speakers'; +import { formatDate } from '@/lib/types'; + +const speaker = { + ...speakers['max-ghenis'], + title: 'Co-founder & CEO, PolicyEngine\nFounder & CEO, Axiom Foundation', +}; + +/** + * The IARIW 2026 hybrid cover, re-labelled for the Israel Ministry of + * Finance call: same seam title, Israel-specific subtitle and venue line. + */ +export default function TitleSlide() { + return ( + +
+ {/* PolicyEngine half */} +
+
+ PolicyEngine +
+ +
+

+ From open models +

+
+ +
+
+ {speaker.name} +
+
+

+ {speaker.name} +

+

+ {speaker.title} +

+
+
+
+ + {/* Axiom half */} +
+
+ The Axiom Foundation +
+ +
+

+ to executable law +

+
+ +
+

+ PolicyEngine, Axiom, and Israeli tax and benefit law +

+

+ Chief Economist's Department, Israel Ministry of Finance + · {formatDate('2026-10-14')} +

+
+
+
+
+ ); +}