Skip to main content

About Evergreen Ledger

What is Evergreen Ledger?

Evergreen Ledger helps you browse, search, and understand legislation. Each bill includes AI-generated summaries, balanced pro/con analysis, and stakeholder impact assessments so you can quickly understand what a bill does and who it affects.

Data Sources

All legislative data comes from the Washington Legislature Web Services (opens in new tab), a free and public API maintained by the Washington State Legislature. Bill text, status, sponsors, committee actions, and roll call votes are synchronized regularly to keep information up to date.

Campaign finance data comes from the Washington Public Disclosure Commission (PDC) (opens in new tab), which publishes all reported campaign contributions through a public API. Contribution summaries, donor breakdowns, and top donors are aggregated per election cycle for each legislator.

How Data Stays Current

Legislative data is kept current through a tiered sync schedule. Core data — bill status, votes, actions, and hearings — syncs automatically every 4 hours. Reference data like legislators, committees, and campaign finance refreshes once daily. The sync also runs on startup if data has gone stale, so there's no gap after a restart.

The sync uses a smart, incremental approach — it discovers all bills in bulk, then fetches full details only for new or recently changed bills based on status changes in the past week. Downstream steps like votes, actions, and hearings only run for bills that have changed, keeping each sync fast and efficient.

What Gets Synced

  • Legislators and sponsors
  • Committees and committee members
  • Bill text, status, and document URLs
  • Roll call votes and individual member votes
  • Full action history for each bill
  • Hearing schedules
  • Amendments
  • RCW citations affected
  • Committee meeting schedules
  • Campaign finance data (via WA Public Disclosure Commission)

After new or updated bills are synced, they are automatically queued for AI-generated summaries and balanced pro/con analysis. Bills that have text but are missing analysis are also backfilled during each sync cycle.

AI Methodology

All AI analysis is performed using self-hosted language models — no data is sent to third-party cloud APIs. Every analysis is generated from the actual bill text as published by the Washington State Legislature.

Impartial Impact Assessment

This tool provides an impartial impact assessment of proposed legislation — it does not advocate for or against any bill. The AI identifies both potential benefits and potential concerns from multiple stakeholder viewpoints without editorializing or taking sides. When a bill genuinely leans one direction, the analysis reflects that honestly rather than forcing artificial balance — you may see more or stronger points on one side than the other. The goal is to help you understand what a bill would do, not to tell you what to think about it.

What the AI Generates

  • Plain-language summaries — what the bill proposes, in accessible terms
  • Pro/con analysis — arguments from different perspectives, categorized by topic area, each rated by strength (1–5) and beneficiary direction (-1.0 to +1.0) to reflect significance and who the effect serves
  • Stakeholder impact — who would be affected and how, presented neutrally
  • Beneficiary assessment — which groups the bill primarily aims to serve

Each analysis includes the model name and generation timestamp for transparency. All outputs should be treated as informational starting points, not definitive conclusions.

Translations

Evergreen Ledger is available in English, Spanish, Chinese, and Korean. Translations are generated using the same self-hosted language models that power the AI analysis — no data is sent to third-party translation services.

What Gets Translated

  • Bill summaries
  • Pro/con analysis points and stakeholder impacts
  • Bill titles, descriptions, and status text
  • All navigation, labels, and interface text

When a new bill is analyzed, translations are automatically queued for all supported languages. The AI translates the structured content (summaries, pros, cons, stakeholder impacts) while preserving the original meaning, formatting, and data values. Interface text is pre-translated and bundled with the app.

Machine-generated translations may not be perfect. If you notice an issue, you can provide feedback using the thumbs up/down buttons that appear on translated content. Your feedback helps us identify and improve translations over time.

How Scoring Works

Beneficiary Score

Each bill's beneficiary score (from -1.0 to +1.0) is computed from the individual pro/con points, not generated as a standalone AI judgment.

Every pro/con point carries two ratings: a strength (1–5, how significant the point is) and a beneficiary direction (-1.0 to +1.0, who the specific effect serves):

  • -1.0 — This effect primarily benefits everyday people and communities
  • 0.0 — Balanced, affects everyone roughly equally
  • +1.0 — This effect primarily benefits corporations, wealthy individuals, or special interests

The overall beneficiary score is the strength-weighted average of all point directions: score = sum(strength × direction) / sum(strength). Points with higher strength pull the score more. For example, a strong pro for everyday people (strength 5, direction -0.8) has more influence than a weak con favoring industry (strength 2, direction +0.4).

Session Gauge

The session gauge aggregates individual bill scores into an overall snapshot of the legislative session. Bills are weighted by how far they've progressed through the legislative process — a signed law carries far more weight than a newly introduced bill:

StatusWeight
Introduced1.0x
In committee1.5x
Passed origin chamber2.5x
Passed opposite chamber3.5x
Sent to governor4.0x
Signed into law5.0x
Vetoed0.5x
Dead0.25x

The weighted score is the sum of each bill's beneficiary score multiplied by its phase weight, divided by the total weight. Bills are also categorized into five segments: strong worker (< -0.5), lean worker (-0.5 to -0.1), balanced (-0.1 to 0.1), lean business (0.1 to 0.5), and strong business (> 0.5).

Semantic Search

When you search with a text query, the system converts your query into a vector embedding and finds bills with semantically similar content using cosine similarity. Search results are ranked purely by relevance to your query — there is no editorial ranking bias.

Data Collection & Privacy

Evergreen Ledger collects minimal, anonymous analytics solely to understand how the site is used and to improve the experience. We do not use cookies, tracking pixels, or third-party analytics services.

What We Collect

  • Page views — which API routes are visited (e.g. bill pages, search queries)
  • Anonymous visitor hash — a one-way SHA-256 hash of your IP address, browser user agent, and a daily-rotating salt. This lets us count unique visitors per day without ever storing your actual IP address. The hash changes every day, so visits cannot be linked across days.
  • Referrer — if you arrived here from another website (e.g. a search engine or social media link), we record that site's address
  • User agent — your browser name and version
  • Approximate location — country, state/region, and city derived from your IP via a local GeoIP database (no data is sent to any external geolocation service)
  • Feedback email (optional) — if you submit feedback and choose to include your email address, we store it solely to respond to your feedback. It is never used for marketing or shared with third parties.

What We Don't Collect

  • No IP addresses are stored — only the irreversible daily hash
  • No cookies or local storage for tracking
  • No accounts or personal information required to use the site
  • No third-party trackers, ads, or data sharing

How We Use It

This data is used exclusively for website analytics — understanding traffic patterns, popular pages, and where visitors come from. Raw page view records are automatically purged after a short retention period and rolled into aggregate daily statistics (total views and unique visitor counts). The data is never sold, shared, or used for any purpose other than improving this site.

Disclaimer

AI-generated summaries and analyses may contain errors or misinterpretations. This tool is not a substitute for legal advice. Always refer to the official bill text (opens in new tab) and legislative records for authoritative information.

Attribution

Built with Rust ( Axum ), React, TanStack Query & Router, Tailwind CSS, Vite, Recharts, and self-hosted LLMs. Legislative data provided by the Washington State Legislature. Campaign finance data provided by the Washington Public Disclosure Commission.

About the Author

This project was built by a software engineer based in Washington State. By day, software engineering is the job — by night (and weekends), it's the hobby. Evergreen Ledger is a passion project born from a love of coding and an interest in making state legislation more accessible.

This project runs on late nights and mass quantities of coffee. If you find it useful and want to keep the developer caffeinated, feel free to buy me a coffee (opens in new tab) — every cup funds another commit.