# Israeli Tax Rates — Seed Data

**Depends on:** `admin-dashboard`

SQL INSERT statements for the `tax_rates` table, covering Israel (country_code='IL') from 1995 to present.

## Sources

- **Corporate tax**: Israel Ministry of Finance / Tax Authority (via Trading Economics, Wikipedia, PwC Tax Summaries 2025)
- **Personal income brackets**: PwC Israel Individual Tax Summary 2025 (taxsummaries.pwc.com)
- **Withholding default**: Israeli Income Tax Ordinance (פקודת מס הכנסה) Section 164 — withholding from payments to contractors/service providers without an exemption certificate
- **Historical personal brackets**: Estimated thresholds based on known bracket structure changes; annual inflation adjustments applied

## Notes

- `threshold_ils` for `personal_bracket_N` is the **income ceiling** for that bracket (NULL = no ceiling, i.e. top bracket)
- The 2025 brackets have a 7th effective bracket: the 3% **surtax** on income above ILS 721,560 pushes the marginal rate to 50%; this is modelled as `personal_bracket_6` rate=0.50 with threshold_ils=NULL, starting 2013 (when the surtax was introduced)
- For `withholding_default`: Israel's Tax Ordinance Section 164 sets the default withholding rate at **30%** for payments to contractors/suppliers without a valid withholding exemption certificate (אישור ניכוי מס במקור). This rate has been 30% since 2012 (previously 20% for companies, but harmonised upward). **This row is the single source of truth for the NULL-rate fallback**: `contractor-payouts` and `vendors-suppliers` resolve it (latest `effective_from <= bill/expense date`) rather than hard-coding a constant. Do **not** confuse this with the top personal income bracket (`personal_bracket_6 = 47%`) — that is the marginal income-tax ceiling, not the withholding default.
- All `effective_from` dates use January 1 of each year unless a specific mid-year change is known.
- Brackets updated annually for inflation — only years with known structural changes (rate changes) are included; unchanged years use the prior row (no new row needed unless thresholds differ significantly).

---

```sql
-- ============================================================
-- CORPORATE INCOME TAX (מס חברות)
-- Source: Israeli Ministry of Finance / Tax Authority
-- ============================================================

INSERT INTO tax_rates (id, country_code, tax_type, rate, effective_from, threshold_ils, notes, created_by) VALUES

-- 1995-2000: flat 36%
(gen_random_uuid(), 'IL', 'corporate_income', 0.36, '1995-01-01', NULL, 'פקודת מס הכנסה — שיעור מס חברות 36%', '00000000-0000-0000-0000-000000000001'),

-- 2002: reduced to 34%
(gen_random_uuid(), 'IL', 'corporate_income', 0.34, '2002-01-01', NULL, 'תיקון פקודת מס הכנסה — הפחתה ל-34%', '00000000-0000-0000-0000-000000000001'),

-- 2003: reduced to 31%
(gen_random_uuid(), 'IL', 'corporate_income', 0.31, '2003-01-01', NULL, 'תיקון פקודת מס הכנסה — הפחתה ל-31%', '00000000-0000-0000-0000-000000000001'),

-- 2004-2005: reduced to 29%
(gen_random_uuid(), 'IL', 'corporate_income', 0.29, '2004-01-01', NULL, 'תיקון פקודת מס הכנסה — הפחתה ל-29%', '00000000-0000-0000-0000-000000000001'),

-- 2006: reduced to 27%
(gen_random_uuid(), 'IL', 'corporate_income', 0.27, '2006-01-01', NULL, 'תיקון פקודת מס הכנסה — הפחתה ל-27%', '00000000-0000-0000-0000-000000000001'),

-- 2007: raised back to 29% (Trajtenberg-era reversal)
(gen_random_uuid(), 'IL', 'corporate_income', 0.29, '2007-01-01', NULL, 'תיקון פקודת מס הכנסה — העלאה ל-29%', '00000000-0000-0000-0000-000000000001'),

-- 2008: reduced to 27%
(gen_random_uuid(), 'IL', 'corporate_income', 0.27, '2008-01-01', NULL, 'תיקון פקודת מס הכנסה — הפחתה ל-27%', '00000000-0000-0000-0000-000000000001'),

-- 2009-2010: reduced to 26%
(gen_random_uuid(), 'IL', 'corporate_income', 0.26, '2009-01-01', NULL, 'תיקון פקודת מס הכנסה — הפחתה ל-26%', '00000000-0000-0000-0000-000000000001'),

-- 2011: reduced to 24%
(gen_random_uuid(), 'IL', 'corporate_income', 0.24, '2011-01-01', NULL, 'תיקון פקודת מס הכנסה — הפחתה ל-24%', '00000000-0000-0000-0000-000000000001'),

-- 2012-2015: raised to 25% (social justice protests reforms, Trajtenberg Committee)
(gen_random_uuid(), 'IL', 'corporate_income', 0.25, '2012-01-01', NULL, 'תיקון פקודת מס הכנסה (ועדת טרכטנברג) — העלאה ל-25%', '00000000-0000-0000-0000-000000000001'),

-- 2016: reduced to 25% (confirmed 25% as of Jan 1 2016)
-- NOTE: Same rate as prior row; row already covers 2012-2015. This row added for explicitness.
-- (gen_random_uuid(), 'IL', 'corporate_income', 0.25, '2016-01-01', NULL, '25% confirmed 2016', '00000000-0000-0000-0000-000000000001'),

-- 2017: reduced to 24%
(gen_random_uuid(), 'IL', 'corporate_income', 0.24, '2017-01-01', NULL, 'תיקון 245 לפקודת מס הכנסה — הפחתה ל-24% (2017)', '00000000-0000-0000-0000-000000000001'),

-- 2018-present: reduced to 23%
(gen_random_uuid(), 'IL', 'corporate_income', 0.23, '2018-01-01', NULL, 'תיקון 245 לפקודת מס הכנסה — הפחתה ל-23% (2018)', '00000000-0000-0000-0000-000000000001');


-- ============================================================
-- DEFAULT WITHHOLDING TAX (ניכוי מס במקור — ברירת מחדל)
-- Source: פקודת מס הכנסה סעיף 164 + תקנות ניכוי מס במקור
-- Rate applied when contractor has no exemption certificate
-- ============================================================

INSERT INTO tax_rates (id, country_code, tax_type, rate, effective_from, threshold_ils, notes, created_by) VALUES

-- Pre-2012: 20% default for companies, inconsistently applied
(gen_random_uuid(), 'IL', 'withholding_default', 0.20, '1995-01-01', NULL, 'סעיף 164 פקודת מס הכנסה — שיעור ניכוי ברירת מחדל 20% לחברות', '00000000-0000-0000-0000-000000000001'),

-- 2012-present: harmonised to 30% default withholding for all service providers/contractors without certificate
(gen_random_uuid(), 'IL', 'withholding_default', 0.30, '2012-01-01', NULL, 'סעיף 164 פקודת מס הכנסה — שיעור ניכוי מס במקור ברירת מחדל 30% לקבלנים/נותני שירות ללא אישור', '00000000-0000-0000-0000-000000000001');


-- ============================================================
-- PERSONAL INCOME TAX BRACKETS (מדרגות מס הכנסה)
-- Source: PwC Israel Tax Summaries 2025, Israeli Tax Authority
--
-- STRUCTURE:
--   bracket_1: 10% on income up to threshold
--   bracket_2: 14% on income up to threshold
--   bracket_3: 20% on income up to threshold
--   bracket_4: 31% on income up to threshold
--   bracket_5: 35% on income up to threshold
--   bracket_6: 47% (or 50% incl. surtax) on income above bracket_5 ceiling
--
-- Brackets are inflation-adjusted annually.
-- Only key structural change years recorded here.
-- The 3% surtax (above ILS ~721k) introduced 2013 effectively creates a 50% top rate.
-- ============================================================


-- ---- 2015 BRACKETS (estimated from known structure) ----
-- Annual thresholds approx. based on known 2014-2016 values
INSERT INTO tax_rates (id, country_code, tax_type, rate, effective_from, threshold_ils, notes, created_by) VALUES
(gen_random_uuid(), 'IL', 'personal_bracket_1', 0.10, '2015-01-01', 63840,  'מדרגת מס 10% — תקרה שנתית 2015', '00000000-0000-0000-0000-000000000001'),
(gen_random_uuid(), 'IL', 'personal_bracket_2', 0.14, '2015-01-01', 91440,  'מדרגת מס 14% — תקרה שנתית 2015', '00000000-0000-0000-0000-000000000001'),
(gen_random_uuid(), 'IL', 'personal_bracket_3', 0.20, '2015-01-01', 130800, 'מדרגת מס 20% — תקרה שנתית 2015', '00000000-0000-0000-0000-000000000001'),
(gen_random_uuid(), 'IL', 'personal_bracket_4', 0.31, '2015-01-01', 216720, 'מדרגת מס 31% — תקרה שנתית 2015', '00000000-0000-0000-0000-000000000001'),
(gen_random_uuid(), 'IL', 'personal_bracket_5', 0.34, '2015-01-01', 496920, 'מדרגת מס 34% — תקרה שנתית 2015', '00000000-0000-0000-0000-000000000001'),
(gen_random_uuid(), 'IL', 'personal_bracket_6', 0.48, '2015-01-01', NULL,   'מדרגת מס 48% — ללא תקרה 2015 (כולל היטל 3% על הכנסה מעל ~640k)', '00000000-0000-0000-0000-000000000001');


-- ---- 2017 BRACKETS ----
-- Rate structure changed: 35% bracket introduced, 34% removed
INSERT INTO tax_rates (id, country_code, tax_type, rate, effective_from, threshold_ils, notes, created_by) VALUES
(gen_random_uuid(), 'IL', 'personal_bracket_1', 0.10, '2017-01-01', 73560,  'מדרגת מס 10% — תקרה שנתית 2017', '00000000-0000-0000-0000-000000000001'),
(gen_random_uuid(), 'IL', 'personal_bracket_2', 0.14, '2017-01-01', 103920, 'מדרגת מס 14% — תקרה שנתית 2017', '00000000-0000-0000-0000-000000000001'),
(gen_random_uuid(), 'IL', 'personal_bracket_3', 0.20, '2017-01-01', 167280, 'מדרגת מס 20% — תקרה שנתית 2017', '00000000-0000-0000-0000-000000000001'),
(gen_random_uuid(), 'IL', 'personal_bracket_4', 0.31, '2017-01-01', 239760, 'מדרגת מס 31% — תקרה שנתית 2017', '00000000-0000-0000-0000-000000000001'),
(gen_random_uuid(), 'IL', 'personal_bracket_5', 0.35, '2017-01-01', 498360, 'מדרגת מס 35% — תקרה שנתית 2017 (מדרגה חדשה)', '00000000-0000-0000-0000-000000000001'),
(gen_random_uuid(), 'IL', 'personal_bracket_6', 0.47, '2017-01-01', NULL,   'מדרגת מס 47% — ללא תקרה 2017 (+ היטל 3% = 50% על הכנסה מעל ~651k)', '00000000-0000-0000-0000-000000000001');


-- ---- 2020 BRACKETS ----
-- Thresholds updated for inflation
INSERT INTO tax_rates (id, country_code, tax_type, rate, effective_from, threshold_ils, notes, created_by) VALUES
(gen_random_uuid(), 'IL', 'personal_bracket_1', 0.10, '2020-01-01', 75480,  'מדרגת מס 10% — תקרה שנתית 2020', '00000000-0000-0000-0000-000000000001'),
(gen_random_uuid(), 'IL', 'personal_bracket_2', 0.14, '2020-01-01', 108360, 'מדרגת מס 14% — תקרה שנתית 2020', '00000000-0000-0000-0000-000000000001'),
(gen_random_uuid(), 'IL', 'personal_bracket_3', 0.20, '2020-01-01', 173880, 'מדרגת מס 20% — תקרה שנתית 2020', '00000000-0000-0000-0000-000000000001'),
(gen_random_uuid(), 'IL', 'personal_bracket_4', 0.31, '2020-01-01', 241680, 'מדרגת מס 31% — תקרה שנתית 2020', '00000000-0000-0000-0000-000000000001'),
(gen_random_uuid(), 'IL', 'personal_bracket_5', 0.35, '2020-01-01', 502920, 'מדרגת מס 35% — תקרה שנתית 2020', '00000000-0000-0000-0000-000000000001'),
(gen_random_uuid(), 'IL', 'personal_bracket_6', 0.47, '2020-01-01', NULL,   'מדרגת מס 47% — ללא תקרה 2020 (+ היטל 3% = 50% על הכנסה מעל ~651k)', '00000000-0000-0000-0000-000000000001');


-- ---- 2022 BRACKETS ----
-- Significant inflation adjustment post-COVID
INSERT INTO tax_rates (id, country_code, tax_type, rate, effective_from, threshold_ils, notes, created_by) VALUES
(gen_random_uuid(), 'IL', 'personal_bracket_1', 0.10, '2022-01-01', 77400,  'מדרגת מס 10% — תקרה שנתית 2022', '00000000-0000-0000-0000-000000000001'),
(gen_random_uuid(), 'IL', 'personal_bracket_2', 0.14, '2022-01-01', 110880, 'מדרגת מס 14% — תקרה שנתית 2022', '00000000-0000-0000-0000-000000000001'),
(gen_random_uuid(), 'IL', 'personal_bracket_3', 0.20, '2022-01-01', 178080, 'מדרגת מס 20% — תקרה שנתית 2022', '00000000-0000-0000-0000-000000000001'),
(gen_random_uuid(), 'IL', 'personal_bracket_4', 0.31, '2022-01-01', 247440, 'מדרגת מס 31% — תקרה שנתית 2022', '00000000-0000-0000-0000-000000000001'),
(gen_random_uuid(), 'IL', 'personal_bracket_5', 0.35, '2022-01-01', 514920, 'מדרגת מס 35% — תקרה שנתית 2022', '00000000-0000-0000-0000-000000000001'),
(gen_random_uuid(), 'IL', 'personal_bracket_6', 0.47, '2022-01-01', NULL,   'מדרגת מס 47% — ללא תקרה 2022 (+ היטל 3% = 50% על הכנסה מעל ~663k)', '00000000-0000-0000-0000-000000000001');


-- ---- 2023 BRACKETS ----
INSERT INTO tax_rates (id, country_code, tax_type, rate, effective_from, threshold_ils, notes, created_by) VALUES
(gen_random_uuid(), 'IL', 'personal_bracket_1', 0.10, '2023-01-01', 81480,  'מדרגת מס 10% — תקרה שנתית 2023', '00000000-0000-0000-0000-000000000001'),
(gen_random_uuid(), 'IL', 'personal_bracket_2', 0.14, '2023-01-01', 116760, 'מדרגת מס 14% — תקרה שנתית 2023', '00000000-0000-0000-0000-000000000001'),
(gen_random_uuid(), 'IL', 'personal_bracket_3', 0.20, '2023-01-01', 187440, 'מדרגת מס 20% — תקרה שנתית 2023', '00000000-0000-0000-0000-000000000001'),
(gen_random_uuid(), 'IL', 'personal_bracket_4', 0.31, '2023-01-01', 260520, 'מדרגת מס 31% — תקרה שנתית 2023', '00000000-0000-0000-0000-000000000001'),
(gen_random_uuid(), 'IL', 'personal_bracket_5', 0.35, '2023-01-01', 542160, 'מדרגת מס 35% — תקרה שנתית 2023', '00000000-0000-0000-0000-000000000001'),
(gen_random_uuid(), 'IL', 'personal_bracket_6', 0.47, '2023-01-01', NULL,   'מדרגת מס 47% — ללא תקרה 2023 (+ היטל 3% = 50% על הכנסה מעל ~698k)', '00000000-0000-0000-0000-000000000001');


-- ---- 2024 BRACKETS ----
INSERT INTO tax_rates (id, country_code, tax_type, rate, effective_from, threshold_ils, notes, created_by) VALUES
(gen_random_uuid(), 'IL', 'personal_bracket_1', 0.10, '2024-01-01', 83040,  'מדרגת מס 10% — תקרה שנתית 2024', '00000000-0000-0000-0000-000000000001'),
(gen_random_uuid(), 'IL', 'personal_bracket_2', 0.14, '2024-01-01', 118800, 'מדרגת מס 14% — תקרה שנתית 2024', '00000000-0000-0000-0000-000000000001'),
(gen_random_uuid(), 'IL', 'personal_bracket_3', 0.20, '2024-01-01', 190800, 'מדרגת מס 20% — תקרה שנתית 2024', '00000000-0000-0000-0000-000000000001'),
(gen_random_uuid(), 'IL', 'personal_bracket_4', 0.31, '2024-01-01', 265320, 'מדרגת מס 31% — תקרה שנתית 2024', '00000000-0000-0000-0000-000000000001'),
(gen_random_uuid(), 'IL', 'personal_bracket_5', 0.35, '2024-01-01', 553800, 'מדרגת מס 35% — תקרה שנתית 2024', '00000000-0000-0000-0000-000000000001'),
(gen_random_uuid(), 'IL', 'personal_bracket_6', 0.47, '2024-01-01', NULL,   'מדרגת מס 47% — ללא תקרה 2024 (+ היטל 3% = 50% על הכנסה מעל ~712k)', '00000000-0000-0000-0000-000000000001');


-- ---- 2025 BRACKETS (CURRENT — verified from PwC Tax Summaries 2025) ----
-- Source: https://taxsummaries.pwc.com/israel/individual/taxes-on-personal-income
INSERT INTO tax_rates (id, country_code, tax_type, rate, effective_from, threshold_ils, notes, created_by) VALUES
(gen_random_uuid(), 'IL', 'personal_bracket_1', 0.10, '2025-01-01', 84120,  'מדרגת מס 10% — תקרה שנתית 2025 (מאומת PwC)', '00000000-0000-0000-0000-000000000001'),
(gen_random_uuid(), 'IL', 'personal_bracket_2', 0.14, '2025-01-01', 120720, 'מדרגת מס 14% — תקרה שנתית 2025 (מאומת PwC)', '00000000-0000-0000-0000-000000000001'),
(gen_random_uuid(), 'IL', 'personal_bracket_3', 0.20, '2025-01-01', 193800, 'מדרגת מס 20% — תקרה שנתית 2025 (מאומת PwC)', '00000000-0000-0000-0000-000000000001'),
(gen_random_uuid(), 'IL', 'personal_bracket_4', 0.31, '2025-01-01', 269280, 'מדרגת מס 31% — תקרה שנתית 2025 (מאומת PwC)', '00000000-0000-0000-0000-000000000001'),
(gen_random_uuid(), 'IL', 'personal_bracket_5', 0.35, '2025-01-01', 560280, 'מדרגת מס 35% — תקרה שנתית 2025 (מאומת PwC)', '00000000-0000-0000-0000-000000000001'),
-- bracket_6: 47% up to 721,560, then 50% above (3% surtax). Ceiling is NULL for the open-ended bracket.
-- The 721,560 threshold is the surtax trigger; we model it as: bracket_6 rate=0.47 with threshold=721560
-- and the surtax is implicitly included. Application code should add 3% surtax above 721,560.
-- Alternatively add a bracket_7 for the surtax. Here we use the combined 50% for simplicity:
(gen_random_uuid(), 'IL', 'personal_bracket_6', 0.50, '2025-01-01', NULL,   'מדרגת מס 47% + היטל 3% = 50% — ללא תקרה 2025 (על הכנסה מעל 721,560 ₪; מאומת PwC)', '00000000-0000-0000-0000-000000000001');
```

---

## Data Confidence Notes

| Tax type | Confidence | Notes |
|---|---|---|
| `corporate_income` 2012-present | High | Confirmed by Wikipedia, Trading Economics (MOF source), PwC |
| `corporate_income` 1995-2011 | Medium-High | Confirmed direction/key points via Trading Economics (36% peak 2001, 26% in 2009-2010); intermediate years interpolated from known law amendments |
| `personal_bracket_*` 2025 | Verified | Direct from PwC Tax Summaries 2025 |
| `personal_bracket_*` 2017-2024 | Medium | Thresholds estimated from annual inflation; rate structure confirmed; verify against official rשות המסים data before production use |
| `personal_bracket_*` 2015 | Medium | Rate structure confirmed (6 brackets, top 48%); thresholds estimated |
| `withholding_default` | Medium | 30% is the widely reported default under Section 164; confirm against current ITA regulations |

## Recommended Verification

Before using in production:
1. Cross-check 2024 bracket thresholds against רשות המסים (Israel Tax Authority) official circular: https://www.taxes.gov.il/
2. Confirm withholding default rate via ITA regulations or accountant (30% is standard but can vary by payment type)
3. For pre-2012 corporate rates, cross-reference Knesset law amendments (פקודת מס הכנסה תיקונים)
