Profile Schema
Every profile returned by the WealthAtlas API contains rich biographical, financial, and philanthropic data assembled from multiple public sources. This page explains the key concepts you’ll encounter when working with person data.
How Profiles Are Built
WealthAtlas aggregates data from public records — nonprofit tax filings (IRS 990s), political donation records, corporate filings, news articles, and other web sources. Our identity resolution system matches records across these sources to build a unified profile for each individual.
Because these records come from independent sources that don’t share unique identifiers, WealthAtlas uses statistical matching to link them. This is why certain fields include a probability score.
Person Model Reference
The full profile (APIPerson) contains the following fields:
Identity & Demographics
Biographical
Financial
Affiliations
Probability Scores
Several fields on the profile include a probability value between 0 and 1. This represents WealthAtlas’s confidence that the record belongs to this specific person, not the probability that the event occurred.
For example, a board_affiliation with probability: 0.92 means WealthAtlas is 92% confident that this board membership record belongs to the person shown in the profile — and 8% that it belongs to a different person with a similar name. The record itself is from an authoritative source (typically an IRS 990 filing).
Fields with probability scores
How to use probability scores
- ≥ 0.90 — High confidence. Safe to present to end users without qualification.
- 0.70 – 0.89 — Moderate confidence. Consider noting that the association is likely but not certain.
- < 0.70 — Lower confidence. The record may belong to a different person with a similar name. Use with caution.
You can filter results by probability in your application to control data quality. For most use cases, a threshold of 0.70 or higher is recommended.
Data Sources
Many sub-models (Education, Work, BoardAffiliation, Donation, PrivateFoundation) include a source_urls array containing URLs where the information was found. These are the original public sources WealthAtlas used to build the record — typically nonprofit websites, government databases, news articles, or corporate filings.
The top-level source_urls field on the profile lists all source URLs aggregated across the entire profile.
Financial Fields
Net Worth
net_worth_min and net_worth_max are the estimated bounds of the person’s net worth in dollars. These are derived from real estate records, political giving patterns, nonprofit giving patterns, and other public financial indicators. They are estimates, not exact figures.
When the underlying model produces one, net_worth_estimate is a best-guess point within those bounds — useful when you need a single number rather than a range. It is null for persons where only the range is available.
Liquidity
liquidity_min and liquidity_max estimate the person’s liquid assets — wealth accessible within roughly twelve months, as opposed to wealth locked up in homes, private companies, or retirement accounts. liquidity_explanation, when present, is a short sentence describing how the band was derived. All three are null when no liquidity estimate exists.
Search can be slightly broader here than the profile: the search index always carries the best available liquidity estimate, so a person may occasionally match a liquidity search filter (and return a liquidity range in search results) while these profile fields are null.
The net worth estimate includes explanations of the contributing factors via nonprofit_stats.capacity.explanations. Each explanation has a title (e.g., “Real Estate Holdings”) and a reason describing how that factor contributes to the estimate.
Salary
salary summarizes the person’s estimated annual employment compensation:
min/max— the current (or most recent) estimated annual compensation range in dollars.by_year— the same range for each calendar year of the person’s priced career, keyed by year (e.g.{"2019": [90000, 130000], "2025": [180000, 260000]}). The series is designed to be graphed as an earnings trajectory. Years in which no salaried role was active — gaps between jobs — are omitted from the dictionary rather than reported as zero.
When the person holds several salaried roles at once (for example an executive role and a paid board seat), each year’s range sums the roles active that year. salary is null when no salary estimate exists.
These are model estimates derived from roles, employers, and public compensation disclosures — not payroll figures.
Income Sources
income_sources lists every income source identified for the person. Each entry has:
type— one ofsalary,profit_share,fund_salary,fund_carry,fund_mgmt_fee,performance_earnings,inheritance,realized_proceeds, orother.nameandrole— the entity the income comes from and the person’s role there, when applicable.frequency—annualfor an ongoing flow (amounts are a yearly rate) orone_timefor a single event (amounts are the total from the event).year_range— the[start, end]years the income covers; both ends equal the event year for one-time income.amount_min/amount_max— the estimated dollar range.description— a short natural-language summary, when available.
Salary income appears both here (as individual entries) and aggregated in the salary block, so income_sources alone is a complete census of known income.
Assets
assets lists the person’s identified non-cash holdings. Each entry has a type (public_equity, private_equity, real_estate, investment_vehicle, or other), a name for the company or holding (when available), a value_min / value_max estimated dollar range, and an optional description.
Wealth fields, together
How the pieces above look on one person — a fund manager with a researched profile:
Note the shapes worth writing client code against: by_year keys are strings (JSON object keys always are), one-time income repeats its event year at both ends of year_range, and name can be null on both income sources and assets.
Giving Capacity
political_stats.capacity is the predicted political giving capacity for the current 2-year cycle.
nonprofit_stats.capacity is a NonprofitGivingCapacity object containing:
predicted_annual_giving— the predicted annual nonprofit giving capacity in dollarsexplanations— a list of factors that contributed to the estimate, each with atitleandreason
Both are forward-looking predictions based on historical patterns, not historical totals.
Donation Amounts
donations[].amount_range is a [min, max] array representing the estimated total amount donated to a specific nonprofit. Because nonprofit donation records are most often reported in bands (e.g., “499”) rather than exact amounts, the API returns a range.
nonprofit_stats.total_amt_range follows the same pattern for the aggregate total across all nonprofits.
Top Issues
top_issues is a list of philanthropic interest areas (e.g., “education”, “environment”, “healthcare”) that WealthAtlas has inferred from the person’s giving history, board affiliations, and biographical information. Each issue includes a description explaining why it was assigned.
Deceased Status
is_deceased indicates whether WealthAtlas has found evidence that the person is deceased. A value of null means the status is unknown — it does not necessarily mean the person is alive.
Profile Freshness
date_last_updated indicates when WealthAtlas last refreshed the person’s profile. Profiles are updated periodically as new public records become available. You can use this field to assess data recency.

