Knowledge > Products > PewSearch Directory > Denomination Taxonomy
Denomination Taxonomy
What It Is
The denomination taxonomy is the classification system that organizes 218K+ churches by their theological tradition, denominational affiliation, and doctrinal family. It consists of three layers:
- Denominations -- specific affiliations (e.g., "Southern Baptist Convention", "Presbyterian Church (USA)")
- Families -- broad groupings (e.g., "liturgical", "community", "protestant")
- Theological Lenses -- doctrinal traditions (e.g., "Reformed", "Pentecostal/Charismatic", "Catholic")
These three layers serve different purposes: denominations are for precise filtering, families are for UI theming and grouping, and theological lenses are for cross-denominational discovery (e.g., "show me all Reformed churches regardless of denomination").
Denominations Table
The denominations table stores the canonical list of denominations recognized by PewSearch:
| Column | Type | Purpose |
|---|---|---|
id | UUID | Primary key |
name | TEXT | Display name (e.g., "Southern Baptist Convention") |
slug | TEXT | URL-safe identifier |
family | TEXT | Grouping family (liturgical, community, protestant) |
about_text | TEXT | Rich description for denomination detail page |
church_count | INT | Number of visible churches with this denomination |
display_order | INT | Sort position within family |
parent_denomination_id | UUID | Hierarchical parent (e.g., SBC → Baptist) |
aliases | TEXT[] | Alternative names and abbreviations |
Denomination Detail Pages
Route: /denominations/[slug]
File: pewsearch/web/src/app/denominations/[slug]/page.tsx
Each denomination has a detail page showing:
- About text (history, beliefs, distinctives)
- Church count in this denomination
- Browse churches filtered to this denomination
- Related denominations in the same family
- State-by-state breakdown
Denomination Index Page
Route: /denominations
File: pewsearch/web/src/app/denominations/page.tsx
Lists all denominations grouped by family, with church counts and links to detail pages.
Family Classification
The family field groups denominations into three broad categories used for UI theming, search grouping, and template selection. The classification logic lives in denomination-labels.ts:
Family: liturgical
Churches with formal, structured worship traditions:
| Denominations | Pattern Match |
|---|---|
| Orthodox (all variants) | Contains "Orthodox" |
| Roman Catholic | Contains "Catholic" |
| Episcopal | Contains "Episcopal" |
| Anglican | Contains "Anglican" |
| Lutheran (all synods) | Contains "Lutheran" |
Characteristics: Liturgical calendar, sacramental theology, vestments, formal order of worship, historical creeds prominent.
Family: community
Non-denominational and independent churches:
| Denominations | Pattern Match |
|---|---|
| Non-denominational | Contains "Non-denominational" or "Nondenominational" |
| Bible Church | Contains "Bible Church" |
| Vineyard | Contains "Vineyard" |
| Calvary Chapel | Contains "Calvary Chapel" |
| Independent | Contains "Independent" (not "Independent Baptist") |
| Interdenominational | Contains "Interdenominational" |
| Community Church | Contains "Community Church" as a standalone string (i.e., not preceded by a specific denominational prefix — avoids false matches on "Baptist Community Church" which should stay in the protestant family) |
Characteristics: Contemporary worship, less formal, pastor-led governance, autonomous local church, often avoids denominational labels.
Family: protestant (default)
Everything that does not match liturgical or community:
| Denominations | Examples |
|---|---|
| Baptist (all varieties) | SBC, ABC, Independent Baptist, Missionary Baptist |
| Methodist | UMC, AME, Free Methodist, Wesleyan |
| Presbyterian | PCA, PCUSA, OPC, EPC |
| Pentecostal | Assemblies of God, Church of God, Foursquare |
| Evangelical | Evangelical Free, Evangelical Covenant |
| Church of Christ | Churches of Christ, Disciples of Christ |
| Adventist | Seventh-day Adventist |
| Holiness | Church of the Nazarene, Salvation Army |
| Everything else | Default fallback |
Family Detection Pseudocode
pseudocode: getDenominationFamily(denomination)
INPUT: raw denomination string from churches table
OUTPUT: "liturgical" | "community" | "protestant"
normalized = denomination.toLowerCase().trim()
// Check liturgical first (most specific)
LITURGICAL_PATTERNS = [
"orthodox", "catholic", "episcopal",
"anglican", "lutheran"
]
if any pattern in LITURGICAL_PATTERNS matches normalized:
return "liturgical"
// Check community
COMMUNITY_PATTERNS = [
"non-denominational", "nondenominational",
"bible church", "vineyard", "calvary chapel",
"independent" (not "independent baptist"),
"interdenominational"
]
if any pattern in COMMUNITY_PATTERNS matches normalized:
return "community"
// Default to protestant
return "protestant"
Theological Lenses
The sai_theological_lenses table defines 18 cross-cutting theological traditions that span denominations. A single church can belong to multiple lenses (e.g., a PCA church is both "Reformed" and "Evangelical").
All 18 Lenses
| ID | Lens Name | Description | Example Denominations |
|---|---|---|---|
| 1 | Evangelical | Bible-centered, conversion-focused, Great Commission emphasis | SBC, Evangelical Free, many non-denoms |
| 2 | Reformed | Calvinist soteriology, covenant theology, confessional | PCA, OPC, Reformed Baptist, Dutch Reformed |
| 3 | Pentecostal/Charismatic | Spiritual gifts active today, tongues, prophecy, healing | Assemblies of God, Foursquare, Vineyard |
| 4 | Anabaptist | Pacifism, adult baptism, separation of church and state | Mennonite, Amish, Church of the Brethren |
| 5 | Liturgical | Formal worship, liturgical calendar, sacramental | Catholic, Orthodox, Anglican, Lutheran |
| 6 | Methodist | Wesleyan theology, sanctification, social holiness | UMC, AME, Free Methodist, Nazarene |
| 7 | Orthodox | Eastern Orthodox tradition, church fathers, theosis | Greek Orthodox, Russian Orthodox, OCA |
| 8 | Restoration | Restore NT church patterns, no creed but Christ | Churches of Christ, Disciples of Christ |
| 9 | Holiness | Entire sanctification, clean living, Wesley-influenced | Church of the Nazarene, Salvation Army, CMA |
| 10 | Baptist | Believers baptism, congregational polity, soul competency | SBC, ABC, Independent Baptist |
| 11 | Progressive | Social justice emphasis, inclusive theology, LGBTQ+ affirming | UCC, Unitarian Universalist, progressive mainline |
| 12 | Catholic | Roman Catholic communion, papal authority, seven sacraments | Roman Catholic, Eastern Catholic |
| 13 | Anglican | Via media (Catholic + Reformed), Book of Common Prayer | Episcopal (USA), Anglican Church |
| 14 | Adventist | Sabbatarian, second coming emphasis, health message | Seventh-day Adventist |
| 15 | Latter-day Saint | Book of Mormon, modern prophets, temple worship | LDS Church, Community of Christ |
| 16 | Jehovah's Witness | Nontrinitarian, Kingdom Hall, door-to-door witness | Jehovah's Witnesses |
| 17 | Unitarian | Religious pluralism, no creed, individual spiritual path | Unitarian Universalist Association |
| 18 | Universal | Cross-tradition, applies to all churches | Used as default/catch-all |
Junction Table: church_theological_lenses
The many-to-many relationship between churches and lenses:
| Column | Type | Purpose |
|---|---|---|
church_id | UUID | FK to churches |
lens_id | INT | FK to sai_theological_lenses |
confidence | FLOAT | How confident the assignment is (0-1) |
source | TEXT | How assigned: "auto" (ML), "manual", "denomination_map" |
Lens Filtering via RPC
Because the junction table can have hundreds of thousands of rows, filtering by lens uses a server-side RPC function instead of a client-side .in() query (which would exceed URL length limits):
pseudocode: search_churches_by_lens(p_lens_id, p_query, p_state, p_denomination, p_limit, p_offset)
-- Server-side RPC function
SELECT c.*
FROM churches c
INNER JOIN church_theological_lenses ctl ON c.id = ctl.church_id
WHERE ctl.lens_id = p_lens_id
AND c.directory_visible = true
AND c.business_status = 'OPERATIONAL'
AND (p_query IS NULL OR c.fts @@ websearch_to_tsquery(p_query))
AND (p_state IS NULL OR c.state_code = p_state)
AND (p_denomination IS NULL OR c.denomination ILIKE '%' || p_denomination || '%')
ORDER BY c.reviews_count DESC NULLS LAST
LIMIT p_limit
OFFSET p_offset
Denomination Alias Expansion
Many denominations have multiple spellings, abbreviations, and variant names in the raw data:
| Canonical Name | Aliases |
|---|---|
| Southern Baptist Convention | SBC, Southern Baptist, So. Baptist |
| Presbyterian Church in America | PCA, Presbyterian (PCA) |
| Assemblies of God | AG, Assembly of God |
| United Methodist Church | UMC, United Methodist |
| Church of Jesus Christ of Latter-day Saints | LDS, Mormon, LDS Church |
| Evangelical Lutheran Church in America | ELCA, Evangelical Lutheran |
| African Methodist Episcopal | AME, A.M.E. |
The get_denomination_values() RPC function returns all aliases for a given denomination name, enabling the search system to match any variant:
pseudocode: get_denomination_values(p_denomination)
-- Returns all denomination names that are aliases of the input
SELECT DISTINCT d2.name
FROM denominations d1
JOIN denominations d2 ON d1.id = d2.parent_denomination_id
OR d2.id = d1.parent_denomination_id
OR d1.id = d2.id
WHERE d1.name ILIKE '%' || p_denomination || '%'
OR p_denomination = ANY(d1.aliases)
Cross-Product Usage
The denomination taxonomy is not PewSearch-specific. It is shared across all properties:
| Product | How It Uses Denominations |
|---|---|
| PewSearch | Search filtering, detail page badges, denomination landing pages |
| ChurchWiseAI Voice Agent | Per-church theological tradition in system prompt (prompts.py) |
| ChurchWiseAI Chatbot | Theological lens for doctrinal responses |
| Pro Website | Template style selection (liturgical → formal, community → modern) |
| IllustrateTheWord | Illustration filtering by theological tradition |
Theological Lens in Voice Agent Prompts
When a church has a theological lens assigned, the voice agent's system prompt includes it:
"[Church Name] is in the {denomination} tradition, with a {lens_name} theological orientation.
When answering questions about beliefs, worship style, or doctrinal positions,
speak from within this tradition, not about it."
This ensures a Reformed Baptist church's voice agent gives Reformed answers, not generic Christian answers.
State + Denomination Combination Pages
PewSearch generates SEO landing pages for every state + denomination combination with significant church counts:
Route: /directory?state={state}&denomination={denomination}
These pages rank for searches like "Baptist churches in Texas" or "Catholic churches in California". The URL parameters make these pages indexable by search engines while sharing the same directory page component.
Top Denomination by State Query
pseudocode: getTopDenominationsForState(state, limit=10)
SELECT denomination, COUNT(*) as count
FROM churches
WHERE directory_visible = true
AND business_status = 'OPERATIONAL'
AND state_code = state
AND denomination IS NOT NULL
AND denomination != ''
GROUP BY denomination
ORDER BY count DESC
LIMIT limit
Data Quality Notes
- ~15% missing denominations: Many churches (especially non-denominational) have NULL denomination
- Inconsistent naming: Same denomination appears as "SBC", "Southern Baptist", "Southern Baptist Convention" -- alias expansion mitigates this
- Lens assignment gaps: Not all churches have lens assignments; auto-assignment uses denomination-to-lens mapping
- Deprecated denominations: Some denomination records have zero churches after data cleanup -- they remain in the table for historical reference but are hidden from UI when
church_count = 0
See Also
- PewSearch Directory Overview -- parent document
- Search System -- how denomination filters work in search
- Data Quality -- denomination data quality issues
- Voice Agent Prompts -- how lenses shape voice agent personality