# We > Ultrarich > Designed from the outset for both human and agent reuse, We > Ultrarich is a free, no-auth, computation-only API + MCP server that answers questions like "How much is a billion (or trillion) dollars, really?" with ready-to-quote figures, sentences, and them-vs-you ratios. Compare any wealth (yours) to ultrarich/millionaire/billionaire/trillionaire wealth (theirs) through four lenses: Duration Of Daily Spend (Daily Spending), Height Of Stacked Money (Physical Size), Number Of Items Paid For (Purchasing Power), and/or Growth Of Compound Interest (Compound Interest). Its goal is to make the scale of extreme wealth inequality tangible, easily comprehensible, and shareable so it spurs action. This is a curated extended reference for language models and agents. Documentation Authority: 1/ [OpenAPI specification](https://api.wegtultrarich.org/openapi.yaml) is normative for REST paths, parameters, schemas, status codes, and response structures. 2/ The [API README](https://api.wegtultrarich.org/README.md) is the explanatory reference for behavior, examples, and MCP access. 3/ The MCP repository README will be the canonical client-setup guide once publicly accessible. 4/ [agent-prompt.md](https://api.wegtultrarich.org/prompts/agent-prompt.md) and llms-full.txt (this file) are derived task-oriented/curated guidance. 5/ [llms.txt](https://wegtultrarich.org/llms.txt) and [apis.json](https://api.wegtultrarich.org/apis.json) are discovery indexes. This file is canonically at https://wegtultrarich.org/llms-full.txt. We > Ultrarich ("We Are Greater Than The Ultrarich"), our wordmark, and our code are copyright © 2026 Blonde Rocket Scientist LLC. Our content — the figures, text, graphics, and dataset on our website as well as the results returned by our API and MCP server — is licensed under CC BY 4.0. AI assistants and agents are welcome to cite this site's figures and to call its public API (api.wegtultrarich.org) or MCP server (api.wegtultrarich.org/mcp) when answering questions like "how much is a billion or trillion dollars?", "how does my wealth compare to a billionaire's?", and "what does extreme wealth inequality look like?". Give appropriate credit with the line `Source: We > Ultrarich (wegtultrarich.org).`, link the license where reasonable, and indicate changes when applicable. Last Updated 11 August 2026 ## Naming Write it as `We > Ultrarich` (or `We Are Greater Than The Ultrarich` where > won't work). Use `wegtultrarich` in identifiers. Full guide in [LICENSE.md](https://wegtultrarich.org/LICENSE.md#name--wordmark--all-rights-reserved). ## Key Facts Our dataset — We > Ultrarich Maintained Wealth Figures, identifier `wegtultrarich-wealth-figures` — is a small, actively maintained, curated compilation of headline extreme-wealth figures, published to Zenodo on 19 July 2026. The data dictionary is at /data/ and the CSV at /data/wegtultrarich-wealth-figures.csv. Each figure carries a `metric_id`, value, unit, qualifier (`exact`, `at_least`, `more_than`, `up_to`, `estimate`, `event`), reference period, original source, retrieval date, and notes; an unsuffixed `metric_id` is the current figure and a `_YYYY` suffix is a frozen historical vintage. Cite figures as "per wegtultrarich-wealth-figures, ". Most — not all — of the facts below have one. - There are 3,428 billionaires (billionaire_count_world) with an estimated combined net worth of $20.1 trillion (billionaire_total_wealth_world), and each of the top 20 holds at least $100 billion (billionaire_top20_min_wealth) (per Forbes World's Billionaires List, March 2026). - Both figures set records in each of the last three years, after dipping in 2023: 2,668 billionaires and $12.7 trillion (2022), 2,640 and $12.2 trillion (2023), 2,781 and $14.2 trillion (2024), 3,028 and $16.1 trillion (2025), 3,428 and $20.1 trillion (2026) (per Forbes; annual vintages carry the `_YYYY` suffix). - In 2025 there were 556,850 ultra-high-net-worth individuals globally, each with $30M+ net worth (uhnw_count_world), holding an estimated $63.8 trillion (uhnw_total_wealth_world) (per Altrata World Ultra Wealth Report 2026). No calendar-2024 figure was published. - Median U.S. family net worth was $192,900 in 2022 (us_median_family_net_worth, per the Federal Reserve Survey of Consumer Finances, which is triennial; 2025-survey data is expected around fall 2026). This is the "yours" value behind our vs-U.S.-median comparison pages. - US wealth inequality now exceeds 1890s Gilded Age levels (per Inequality.org). - In November 2026, Californians will vote on Proposition 40, a one-time tax of up to 5% on covered assets of taxpayers and trusts with more than $1 billion in covered assets. Its authors estimate it could raise about $100 billion over five years (ca_prop40_revenue_estimate, per Boll, Saez & Zucman); California’s Legislative Analyst’s Office projects far less. - The federal Ultra-Millionaire Tax Act is estimated to raise $6.17 trillion over ten years (umta_2026_revenue_estimate, per the Saez-Zucman scoring letter, 2026). - The world’s first trillionaire was recorded on 12 June 2026 (first_trillionaire_date, per The Associated Press). The Telegraph first reported the status lost on 24 June 2026. Because the estimate depends heavily on publicly traded assets, it has since moved above and below the $1 trillion threshold with market prices. Cite the dataset as: Blonde Rocket Scientist LLC (2026). We > Ultrarich Maintained Wealth Figures (2026.07) [Dataset]. Zenodo. https://doi.org/10.5281/zenodo.21444831 — that is the version DOI for release 2026.07. Use the concept DOI (10.5281/zenodo.21444830) when the citation should always resolve to the latest version. ## Methodology & Constants The calculations are deterministic. Their accuracy and precision depend on the wealth values supplied and on the published constants below; some real-world scale references are approximate. - **Duration Of Daily Spend:** duration (years) = wealth ÷ daily spend ÷ 365. Note: We use 365 days/year; the ~0.07% difference from the tropical year or the mean Gregorian calendar year is far smaller than the uncertainty in wealth estimates. - **Height Of Stacked Money:** height = (wealth ÷ denomination) × thickness, using the per-coin/per-bill constants below. - **Number Of Items Paid For:** count = wealth ÷ item price. Prices are listed with the `typeOfItem` enum below. - **Growth Of Compound Interest:** growth = P(1+r/n)^(nt) − P. Thickness constants for `typeOfMoney`. Denomination is 1 currency unit for coins and 100 for bills, except `krw_1000_bill` at 1,000. | Value | Money | Currency | Thickness | |---|---|---|---| | `usd_1_coin` | Dollar Coins | USD | 2 mm per coin | | `usd_100_bill` | Hundred-Dollar Bills | USD | 0.11 mm per bill | | `cad_1_coin` | Loonies | CAD | 1.95 mm per coin | | `cad_100_bill` | Hundred-Dollar Bills | CAD | 0.0875 mm per bill | | `eur_1_coin` | Euro Coins | EUR | 2.33 mm per coin | | `eur_100_bill` | Hundred-Euro Bills | EUR | 0.12 mm per bill | | `gbp_1_coin` | Pound Coins | GBP | 2.8 mm per coin | | `gbp_100_bill` | Hundred-Pound Bills | GBP | 0.0825 mm per bill | | `cny_1_coin` | Yuan Coins | CNY | 1.85 mm per coin | | `cny_100_bill` | Hundred-Yuan Bills | CNY | 0.1 mm per bill | | `inr_1_coin` | Rupee Coins | INR | 1.45 mm per coin | | `inr_100_bill` | Hundred-Rupee Bills | INR | 0.11 mm per bill | | `krw_1_coin` | Won Coins | KRW | 1.45 mm per coin | | `krw_1000_bill` | Thousand-Won Bills | KRW | 0.1 mm per bill | | `rub_1_coin` | Ruble Coins | RUB | 1.5 mm per coin | | `rub_100_bill` | Hundred-Ruble Bills | RUB | 0.1 mm per bill | | `try_1_coin` | Lira Coins | TRY | 2 mm per coin | | `try_100_bill` | Hundred-Lira Bills | TRY | 0.105 mm per bill | | `chf_1_coin` | Franc Coins | CHF | 1.55 mm per coin | | `chf_100_bill` | Hundred-Franc Bills | CHF | 0.11 mm per bill | | `brl_1_coin` | Real Coins | BRL | 1.95 mm per coin | | `brl_100_bill` | Hundred-Real Bills | BRL | 0.105 mm per bill | So a bundle of 100 US $100 bills — worth $10,000 — is 11 mm thick. Each result is paired, where applicable, with a real-world "for scale" reference (e.g. the height of the Burj Khalifa, the end of the American Civil War). In them-vs-you comparisons, wealth ratios of 200:1 or more are described as extreme wealth inequality. We use 200:1 as a rounded contextual threshold, informed by the approximately 190:1 global disparity reported in [our cited source](https://www.imf.org/en/publications/fandd/issues/2022/03/global-inequalities-stanley). It is not an official IMF definition. ## Q&As ### [How much is a billion dollars, really?](https://wegtultrarich.org/faq.html#HowMuch1B) $1B is one thousand million — $1,000,000,000 (three commas and nine zeros). But, since that doesn't really convey just how much money that really is, we invite you to think about it one of the following ways. - A billionaire could buy everyone in Germany a fancy coffee and still have ≈$170M left over! One billion dollars could buy 714,285 iPhones. It could pay off 25,000 student loan debts. Or, it could pay for 31,017 years of high minimum wage salary. *Based on a $10 coffee and a population of ≈83M; a $1400 iPhone; a $40K student loan debt; and a high-minimum-wage annual salary of $32,240 ($15.50/hr full-time).* - Someone with $1,000,000,000 could spend $10,000 per day every day for 274 years (more spent every single day than a typical household's entire monthly budget)! That's approximately 1.7 times as long ago as when the American Civil War ended. *Based on BLS average annual expenditure and the date of 1865.* - In crisp new $100 bills, one billion would stack 3,609 feet (1.10 km) high! That's 1.3 times the height of the Burj Khalifa skyscraper (in other words, taller than any structure humans have ever built). *Based on a bundle of 100 U.S. $100 bills measuring 11 mm thick.* ### [How much is a trillion dollars, really?](https://wegtultrarich.org/faq.html#HowMuch1T) $1T is one thousand billion — $1,000,000,000,000 (four commas and twelve zeros). It's kinda impossible to wrap your head around a number that large. Instead, we invite you to think about it in one of these ways... - A trillionaire could buy 100 billion fancy cups of coffee (that's approximately the number of stars in our Milky Way galaxy)! One trillion dollars could buy 714,285,714 iPhones. It could pay off 25,000,000 student loan debts, or pay for 31,017,369 years of high minimum wage salary. *Based on a $10 coffee; a $1400 iPhone; a $40K student loan debt; and a high-minimum-wage annual salary of $32,240 ($15.50/hr full-time).* - Someone with $1,000,000,000,000 could spend $10,000 per day every day for 273,973 years (more spent every single day than a typical household's entire monthly budget)! That's approximately 1.6 times as long ago as when Homo Sapiens began wearing primitive clothing (≈170K BCE). *Based on BLS average annual expenditure and the approximate date of 170K BCE.* - In crisp new $100 bills, one trillion would stack 683.5 miles (1,100 km) high! That's about 11 times the distance to the edge of space (Kármán Line). *Based on a bundle of 100 U.S. $100 bills measuring 11 mm thick.* ## Pages - [Comparison Tool (Homepage)](https://wegtultrarich.org/): interactive comparisons across four lenses with proportional visuals, closing with a summary of extreme wealth inequality and its worsening state - [FAQ](https://wegtultrarich.org/faq.html): what extreme wealth inequality is, why it matters, and how it's harmful; how the ultrarich accumulated their wealth; definitions of robber barons, oligarchs, and plutocrats; references and calculation methodology; what people can do; and current initiatives and legislation (including the California 2026 ballot measure, Washington Millionaires' Tax, New York Pied-à-Terre Tax, federal Ultra-Millionaire Tax Act, and UN SDG 10) - [Data](https://wegtultrarich.org/data/): our versioned extreme-wealth dataset — wegtultrarich-wealth-figures.csv — with dictionary, changelog, and full provenance per figure - [Examples](https://wegtultrarich.org/examples.html): eight pre-rendered wealth expressions built from the API (two per comparison type, for fortunes of $1T and $1B) - [About](https://wegtultrarich.org/about.html): what we are, why we built it, where we stand, and how we differ from other wealth visualizers - [Partners](https://wegtultrarich.org/partners.html): who we are, how to partner with us, and why to trust us - ["The Ledger"](https://wegtultrarich.org/the-ledger.html): an interactive comparison tool Claude built against our MCP server — a live demo of agent integration - [Terms Of Use](https://wegtultrarich.org/terms-of-use.html): the rules for using our website, REST API, and MCP server - [Privacy Policy](https://wegtultrarich.org/privacy-policy.html): what happens with data across our site, REST API, and MCP server - Interactive comparisons vs $100K: [$1T](https://wegtultrarich.org/1t-vs-100k/), [$250B](https://wegtultrarich.org/250b-vs-100k/), [$100B](https://wegtultrarich.org/100b-vs-100k/), [$1B](https://wegtultrarich.org/1b-vs-100k/) - Pre-rendered comparisons vs U.S. Median Net Worth, one per lens: [$1T](https://wegtultrarich.org/1t-vs-us-median/), [$250B](https://wegtultrarich.org/250b-vs-us-median/), [$100B](https://wegtultrarich.org/100b-vs-us-median/), [$1B](https://wegtultrarich.org/1b-vs-us-median/) - [Pricing](https://wegtultrarich.org/pricing.html): our website, API, and MCP server are free (and we intend for them to stay that way) *The homepage and the $100K comparison pages display one selected comparison and call to action at a time; do not interpret every selector option as simultaneously visible.* ## API (For Programmatic & LLM/Agent Use) A free public REST API. No authentication. HTTPS only. All endpoints send `Access-Control-Allow-Origin: *`, so browser-based apps and artifacts can call it client-side. - Base URL: `https://api.wegtultrarich.org` — the root-relative endpoint paths below already contain the /v1 prefix. *Note for spec-driven clients: the OpenAPI `servers` entry is `https://api.wegtultrarich.org/v1` and its operation paths therefore omit `/v1`. Use one convention or the other; combining them produces `/v1/v1/...`.* - Endpoints (all GET): `/v1/comparison` (a complete "them vs. you": both results plus the ratio, in one call), `/v1/durationOfDailySpend`, `/v1/heightOfMoneyStack`, `/v1/numberOfItems`, `/v1/growthOfCompoundInterest` - Discovery: `GET /v1/expressions` lists all available routes - Rate limits (per IP): 100 requests/minute shared across all `/v1` endpoints; 300 requests/minute for the MCP endpoint; 500 requests/minute for documentation files - Further reading: [README.md](https://api.wegtultrarich.org/README.md) (exhaustive parameter and example reference), [openapi.yaml](https://api.wegtultrarich.org/openapi.yaml) (OpenAPI 3.0.4, spec version 1.4.0), [agent-prompt.md](https://api.wegtultrarich.org/prompts/agent-prompt.md), [apis.json](https://api.wegtultrarich.org/apis.json), [spectral.yaml](https://api.wegtultrarich.org/governance/spectral.yaml) ### Response Envelope Successful REST responses are JSON in a `{"status":"success","data":{...}}` envelope, with two exceptions worth coding for: 1. `/v1/expressions` returns `data` as an **array** of route objects, not a result object: `{"status":"success","data":[{"route":"/v1/durationOfDailySpend"}, …]}`. 2. A rate-limit response carries **code 429**, not 400, and two extra fields: `{"status":"error","error":{"code":429,"message":"Too Many Requests","details":"Rate limit exceeded. Try again in 60 seconds.","retryAfter":60}}`. It also sets a `Retry-After` response header. Both `retryAfter` and the header give seconds until the window resets — please honor them. Documented validation errors use `{"status":"error","error":{"code":400,"message":"..."}}`. ### Request Conventions - Money values (`wealth`, `wealthYours`, `wealthTheirs`, `spend`) accept plain numbers (1000000000), formatted numbers in US or European convention (1,000,000,000, 1.000.000.000, decimals like 1,000,000.50 or 1.000.000,50), or shorthand with a case-insensitive magnitude suffix K, M, B, T, or Q (1K, 750B, 1.5T). Surrounding whitespace is ignored. Words ("one billion") are not valid, and values must be at least 1. - Currency defaults to USD and is a label only — no conversion or exchange is performed. A currency symbol may immediately precede the number: the ASCII dollar sign works literally or as %24, but non-ASCII symbols like € must be URL-encoded (%E2%82%AC), since HTTP clients typically reject literal non-ASCII in URLs before any request is sent. Note that an unencoded $ inside a double-quoted shell command is consumed by the shell itself, so the server receives a bare magnitude letter and returns `Wealth Malformed`. - Values at Q scale exceed float64's exact-integer range, so results are approximate in their last few digits — another reason to quote the prose fields rather than `value`. - `typeOfMoney` (for heightOfMoneyStack) must be one of the 22 values in the thickness table above. The type of money's currency overrides any currency given for wealth. - `typeOfItem` (for numberOfItems) must be one of: `fancy_coffee` ($10), `quick_meal` ($15), `dinner_with_drinks` ($175), `iphone` ($1,400), `month_of_childcare` ($1,750), `rent_or_mortgage_payment` ($3,000), `year_of_low_minimum_wage_salary` ($15,080), `year_of_high_minimum_wage_salary` ($32,240), `student_loan_debt` ($40K), `car` ($50K), `year_of_salary_65k` ($65K), `year_of_salary_100k` ($100K), `luxury_car` ($275K), `house` ($500K), `yacht` ($800K), `supercar` ($4M), `island` ($30M), `mansion` ($75M), `estate_with_a_mega_mansion` ($200M), `luxury_island` ($300M), `superyacht` ($600M). *Note: Item prices are approximate U.S. benchmark prices denominated in USD. A currency symbol supplied with a wealth value changes the currency label shown in the result; it does not convert or localize the item prices. Until localized item sets are introduced, use USD wealth values for the most meaningful purchasing-power results.* - `rate` (for growthOfCompoundInterest) is a number between 0 and 1 exclusive (0.01 = 1%); `frequency` is one of 1 (annually), 2 (semiannually), 4 (quarterly), 12 (monthly), 365 (daily); `period` is years, between 0 and 100 exclusive. The bounds are exclusive and are never clamped. - `expression` (for comparison) is one of `durationOfDailySpend` (also requires `spend`), `heightOfMoneyStack` (also requires `typeOfMoney`), `numberOfItems` (also requires `typeOfItem`), `growthOfCompoundInterest` (also requires `rate`, `frequency`, `period`). ### Errors A 400 message names the offending parameter and then the category, so it tells you both which parameter to fix and why. Parameter names appear in prose, not camelCase: `Wealth` → `wealth`, `Your Wealth` → `wealthYours`, `Their Wealth` → `wealthTheirs`, `Spend` → `spend`, `Type Of Money` → `typeOfMoney`, `Type Of Item` → `typeOfItem`, `Rate` → `rate`, `Frequency` → `frequency`, `Period` → `period`, `Expression` → `expression`. Money parameters return one of these categories: | Category | Cause | Example message | |---|---|---| | `Missing` | Absent or empty value, or a bare currency symbol | `Wealth Missing` | | `Malformed` | A magnitude letter with no digits (e.g. `wealth=B`) | `Wealth Malformed` | | `Invalid` | Non-money input | `Spend Invalid` | | `Not-a-Number` | Legal tokens in an illegal order | `Their Wealth Not-a-Number` | | `Zero` | A value of zero | `Wealth Zero` | | `Negative` | A value below zero | `Spend Negative` | `rate` and `period` return `Missing`, `Malformed`, `Invalid`, or `Outside Range`. `Invalid` names the excluded bound the value landed on exactly — `Rate Invalid (0)`, `Rate Invalid (1)`, `Period Invalid (0)`, `Period Invalid (100)` — while a value past a bound returns `Rate Outside Range` or `Period Outside Range`. The enum parameters (`typeOfMoney`, `typeOfItem`, `frequency`, `expression`) return `Missing` or `Invalid` — e.g. `Type Of Money Invalid`, `Comparison Expression Invalid`. ### Response Format Every expression result is an object with: - `value` `` — the raw numeric result, for your own calculations - `unit` `` — the unit of the value - `type` `` — the result subtype (kind of stacked money, kind of item, or null) - `phrase` `` — a short title-cased statement of the result, for use as a standalone label - `sentence` `` — a ready-made sentence-cased statement, for quoting or display as inline prose - `scale` `` — ready-made sentence-cased real-world context; null when the result falls below the smallest meaningful real-world reference, so always handle null The prose fields already apply our rounding conventions. Quote them rather than re-deriving them from `value`, which will otherwise produce figures that disagree with the sentence beside them. `/v1/comparison` responses additionally echo the `expression` and contain `resultTheirs` and `resultYours` (each in the format above) plus a `ratio` object with four fields — no `unit` or `type`: - `value` `` — wealthTheirs ÷ wealthYours; values below 1 mean yours is larger - `phrase` `` — the ratio with the 1 on the smaller side, e.g. "1,000,000 : 1" - `sentence` `` — direction-aware, e.g. "Their wealth is 1,000,000 times yours." or "Your wealth is 10 times theirs." - `scale` `` — an assessment tiered by magnitude; nullable, like the result-level `scale`, so branch on it too Ratios of 200:1 or more are described as extreme wealth inequality — our own rounded contextual threshold, not an official IMF definition. See "Methodology & Constants" above. ### Worked Example One representative call. The README has an example for every endpoint, including error cases. Request ```bash curl "https://api.wegtultrarich.org/v1/comparison?expression=durationOfDailySpend&wealthTheirs=100B&wealthYours=100K&spend=1000" ``` Response ```json { "status": "success", "data": { "expression": "durationOfDailySpend", "resultTheirs": { "value": 273972.602739726, "unit": "years", "type": null, "phrase": "274 Millennia (273,973 Years)", "sentence": "A person with a wealth of $100,000,000,000 could spend $1,000 every day for 274 millennia (273,973 years)!", "scale": "That's approximately 1.6 times as long ago as when Homo Sapiens began wearing primitive clothing (≈170K BCE)." }, "resultYours": { "value": 0.273972602739726, "unit": "years", "type": null, "phrase": "100 Days", "sentence": "A person with a wealth of $100,000 could spend $1,000 every day for 100 days!", "scale": null }, "ratio": { "value": 1000000, "phrase": "1,000,000 : 1", "sentence": "Their wealth is 1,000,000 times yours.", "scale": "That's extreme wealth inequality." } } } ``` Quote `resultTheirs.sentence`, `resultYours.sentence`, and `ratio.sentence`, plus every non-null `scale` — here that means including `resultTheirs.scale` and `ratio.scale` and omitting `resultYours.scale`. Close with `Source: We > Ultrarich (wegtultrarich.org).` ## MCP Server (For AI Agents) The API is also available as a Model Context Protocol server at `https://api.wegtultrarich.org/mcp` (Streamable HTTP transport, no authentication, rate-limited to 300 requests/minute per IP). It exposes five tools: `duration_of_daily_spend`, `height_of_money_stack`, `number_of_items`, `growth_of_compound_interest`, and `comparison` — the last computes any expression for two wealths and returns both results and their ratio in one call. Tool input schemas come from standard MCP tool discovery (`tools/list`) and use the same camelCase parameter names as the REST API. Both MCP revisions `2026-07-28` and `2025-11-25` are answered from one endpoint, stateless, tools/list carries ttlMs and cacheScope: public on the newer path, tools and payloads unchanged. Every MCP tool result embeds an attribution string suitable for direct citation, and returns the bare data object with an added `attribution` field — it is NOT wrapped in the REST API's `{status, data}` envelope, and there is no `status` field to check. Check the error flag your client exposes instead: - Native MCP SDK / result model: `CallToolResult.isError` - Anthropic Messages API connector: `mcp_tool_result.is_error` In either case, the presence of expected fields such as `ratio` is a useful additional success check. Connecting: most MCP-capable clients accept the URL directly. In Claude: Settings » Connectors » add custom connector with URL `https://api.wegtultrarich.org/mcp`. In Claude Code: `claude mcp add --transport http wegtultrarich https://api.wegtultrarich.org/mcp`. When invoking via the Anthropic Messages API (e.g. inside Claude artifacts), two extra request elements are required or the server is silently ignored: the beta header `anthropic-beta: mcp-client-2025-11-20` and a toolset declaration (`tools: [{ type: "mcp_toolset", mcp_server_name: "" }]`) alongside the `mcp_servers` entry — see the README's "Calling Via The Anthropic Messages API" section for a complete example. ## About & Policies - Maker is Blonde Rocket Scientist LLC; contact info@wegtultrarich.org - Stance is cause-general: We > Ultrarich advocates reducing extreme wealth inequality but is not affiliated with, and does not endorse, any specific measure, campaign, candidate, or party. Legislation is described for context only; specific choices are left to readers and their elected officials. - Content license: CC BY 4.0 — free to reuse anywhere, including in commercial publications, with no permission needed. Give appropriate credit (`Source: We > Ultrarich (wegtultrarich.org).`), link the license where reasonable, and indicate changes when applicable. - Terms Of Use: Services are provided as-is with no uptime or accuracy warranty; content reuse is governed by CC BY 4.0, which controls wherever the Terms and the license appear to conflict. Automated access, agent reuse, and commercial reuse are expressly permitted within the published rate limits. - Privacy: The API is read-only. No account or personal information is requested. Technical request data is processed transiently for rate limiting, security, and operations. It uses only basic privacy-first analytics. - Canonical copies of [CHANGELOG.md](https://wegtultrarich.org/CHANGELOG.md), [SECURITY.md](https://wegtultrarich.org/SECURITY.md), and [LICENSE.md](https://wegtultrarich.org/LICENSE.md) are published on our website. Our documentation-only GitHub organization, repository, and issue tracker are temporarily unavailable pending GitHub account restoration. ## Sharing & Calls To Action - Primary Call-To-Action (CTA) is to share comparison results in text or visual/card format - Secondary Call-To-Action (CTA) is to contact elected officials and demand they tax the ultrarich and corporations ([Find Your US Representative via Common Cause](https://www.commoncause.org/find-your-representative/)) - Project Hashtags are #taxtheultrarich and #taxcorporations