Israeli tax transparency tool — see where every shekel of your taxes goes, why the system is broken, and what you can do about it.
Open Shekel is a web application that calculates your Israeli tax burden, shows exactly where your money flows through the government budget, grades each ministry on efficiency, compares Israel to OECD nations, and provides actionable steps for civic change.
Israel is a first-world economy with third-world efficiency. The average Israeli pays ~45% of their income in direct and indirect taxes, yet:
- 93% of land is controlled by one government body
- Building permits take an average of 13 years
- Food costs 19% more than the EU average
- Housing is 10.6x median income (OECD average: 6.4x)
- Government efficiency scores 79/100 vs OECD average of 88/100
This tool makes the invisible visible. Every shekel. Every ministry. Every inefficiency.
- Tax Calculator — Income tax, national insurance, health tax, VAT, employer costs, and tax credits for 2025
- Interactive Dashboard — Sankey flow diagram, donut chart, treemap, daily tax receipt, OECD comparisons
- Efficiency Scorecard — A-F grades for each budget category with overhead analysis
- Why So Expensive? — Deep dives into housing, cost of living, healthcare, education, immigration, and more
- Take Action — 5-level civic action plan from mindset shift to voting
- Bilingual — Full English and Hebrew with RTL support
| Category | Technology |
|---|---|
| Framework | Next.js 15 (App Router, Turbopack) |
| Language | TypeScript (strict) |
| UI | React 19, Tailwind CSS 4, shadcn/ui, Radix UI |
| Visualization | Recharts, D3-Sankey |
| State | Zustand (with localStorage persistence) |
| Forms | React Hook Form + Zod validation |
| Animation | Framer Motion |
| i18n | next-intl (EN + HE, RTL support) |
| Testing | Vitest + Testing Library (unit), Playwright (E2E) |
- Node.js 20+
- pnpm
# Clone
git clone https://github.com/naorbrown/openshekel.git
cd openshekel
# Install dependencies
pnpm install
# Development server
pnpm dev
# Open http://localhost:3000pnpm dev # Start dev server with Turbopack
pnpm build # Production build
pnpm start # Start production server
pnpm lint # Run ESLint
pnpm test # Run unit/integration tests
pnpm test:watch # Run tests in watch mode
pnpm test:e2e # Run Playwright E2E tests
pnpm type-check # TypeScript type checkingsrc/
├── app/[locale]/ # Localized page routes
│ ├── page.tsx # Calculator (home)
│ ├── dashboard/ # Visualizations
│ ├── insights/ # Efficiency analysis
│ ├── why/ # Educational content
│ └── action/ # Civic action guide
├── components/
│ ├── calculator/ # Tax form, results, breakdown
│ ├── dashboard/ # Charts (sankey, donut, treemap, OECD)
│ ├── insights/ # Cost analysis cards
│ ├── why/ # Topic accordion sections
│ ├── action/ # Action level timeline
│ ├── layout/ # Header, Footer
│ └── ui/ # shadcn/ui primitives
├── lib/
│ ├── tax-engine/ # Pure calculation functions
│ │ ├── income-tax.ts # Progressive bracket calculation
│ │ ├── national-insurance.ts
│ │ ├── health-tax.ts
│ │ ├── tax-credits.ts # Credit points system
│ │ ├── vat.ts
│ │ ├── employer-costs.ts
│ │ └── total.ts # Orchestrator
│ ├── data/ # JSON rate files (2025)
│ ├── i18n/ # Locale routing & config
│ └── store/ # Zustand calculator state
├── messages/
│ ├── en.json # English translations
│ └── he.json # Hebrew translations
└── middleware.ts # i18n routing middleware
Profile (income, type, gender, children)
→ Tax Credits (resident + child credits)
→ Income Tax (7 brackets + surtax - credits)
→ National Insurance (reduced/full rate tiers)
→ Health Tax (reduced/full rate tiers)
→ VAT (estimated from net spending)
→ Employer Costs (NI + pension)
→ Budget Allocation (proportional to tax paid)
All tax rates and comparative data are sourced from official government and international institutions:
| Source | What | Link |
|---|---|---|
| Israeli Tax Authority | Income tax brackets, surtax | gov.il |
| National Insurance Institute | NI rates, thresholds | btl.gov.il |
| Ministry of Finance | Budget allocations | mof.gov.il |
| OECD | Tax burden, housing, healthcare, education | data.oecd.org |
| Central Bureau of Statistics | Prices, wages, demographics | cbs.gov.il |
| Bank of Israel | Economic data, housing reports | boi.org.il |
| State Comptroller | Government efficiency reports | mevaker.gov.il |
| Taub Center | Social policy research | taubcenter.org.il |
| Transparency International | Corruption perception index | transparency.org |
| World Bank | Governance indicators | worldbank.org |
76 tests covering the tax engine, data integrity, and efficiency analyzer:
pnpm testFull user journey tests across calculator, dashboard, navigation, content pages, and i18n:
pnpm test:e2e- Locales: English (
en), Hebrew (he) - RTL: Automatically applied for Hebrew
- Prefix: All routes include locale prefix (
/en/...,/he/...) - Translations:
src/messages/en.jsonandsrc/messages/he.json
To add a new language:
- Add locale to
src/lib/i18n/routing.ts - Create
src/messages/<locale>.json - Update middleware matcher in
src/middleware.ts
- Fork the repository
- Create a feature branch (
git checkout -b feat/your-feature) - Make changes and add tests
- Ensure
pnpm test,pnpm lint, andpnpm buildpass - Commit with a descriptive message
- Open a pull request
Tax data for each year lives in src/lib/data/. To update for a new tax year:
- Create new rate files (e.g.,
tax-rates-2026.json) - Update imports in
src/lib/tax-engine/modules - Update tests to reflect new rates
MIT