{% extends "base.html" %} {% block title %}{{ member.display_name }} — Concord{% endblock %} {% block content %}

{{ member.display_name }}

{% if member.biography %}

Biography

{% if member.biography|length > 300 %}
{{ member.biography[:300] }}… (expand)

{{ member.biography }}

{% else %}

{{ member.biography }}

{% endif %}
{% endif %}

Term history

{% if terms %} {% for t in terms %} {% endfor %}
Congress Chamber State District Party Years
{{ t.congress }} {{ t.chamber|capitalize }} {{ t.state }} {% if t.district %}{{ "%02d"|format(t.district) }}{% else %}—{% endif %} {{ t.party or "—" }} {{ t.start_date[:4] if t.start_date else "?" }} – {{ t.end_date[:4] if t.end_date else "present" }}
{% else %}

No term history recorded.

{% endif %}

Sponsored bills

{% if sponsored_bills %} {% if sponsored_bills_total > sponsored_bills|length %}

View all {{ sponsored_bills_total }} →

{% endif %} {% else %}

No sponsored bills indexed for this Member.

{% endif %}

Cosponsored bills

{% if cosponsored_bills %} {% if cosponsored_bills_total > cosponsored_bills|length %}

Showing {{ cosponsored_bills|length }} of {{ cosponsored_bills_total }}.

{% endif %} {% else %}

No cosponsored bills indexed for this Member yet. Run concord scrape bills enrich --db data/proceedings.db --limit 100 to populate.

{% endif %}
{# -- Recent votes ------------------------------------------------- #}

Recent votes

{% if recent_votes %}
    {% for v in recent_votes %} {% with member_position=v.member_position, member_party=v.member_party %} {% include "_vote_row.html" %} {% endwith %} {% endfor %}
{% else %}

No vote positions recorded for this Member yet.

{% endif %}
{# -- Party-unity score (chamber-scoped) -------------------------- #}

Party Unity Score (?)

{% if modal_vote_party == 'I' %}

No party-unity score (Independent — no party majority to score against).

{% elif party_unity_rows %} {% set current_congress = party_unity_rows[0].congress %} {% set current_rows = party_unity_rows|selectattr("congress", "equalto", current_congress)|list %}
{% for current in current_rows %} {% set chamber_label = "Senate" if current.chamber == "senate" else "House" %} {% if current.party_unity_votes_cast < party_unity_min_votes %}

{{ chamber_label }}: Voted on {{ current.party_unity_votes_cast }} party-unity vote{{ "" if current.party_unity_votes_cast == 1 else "s" }} in the {{ current.congress }}th Congress — not enough for a stable score yet.

{% else %} {% set pct = (current.party_line_votes * 100 // current.party_unity_votes_cast) %} {% set party_label = "Republican" if current.party == "R" else "Democratic" %}

{{ chamber_label }}: Voted with {{ party_label }} majority on {{ pct }}% of party-unity votes ({{ current.party_line_votes }}/{{ current.party_unity_votes_cast }} in the {{ current.congress }}th Congress).

{% endif %} {% endfor %}
{% set older_rows = party_unity_rows|rejectattr("congress", "equalto", current_congress)|list %} {% if older_rows %}
{% for r in older_rows %} {% set chamber_short = "S" if r.chamber == "senate" else "H" %} {% if r.party_unity_votes_cast >= party_unity_min_votes %} {% set rp = (r.party_line_votes * 100 // r.party_unity_votes_cast) %} {{ r.congress }}th ({{ chamber_short }}): {{ rp }}% ({{ r.party_line_votes }}/{{ r.party_unity_votes_cast }}) {% else %} {{ r.congress }}th ({{ chamber_short }}): {{ r.party_unity_votes_cast }} votes {% endif %} {% endfor %}
{% endif %} {% elif recent_votes %}

Party-unity score not yet computed.

{% else %}

No vote positions recorded for this Member yet.

{% endif %}

Coming in later phases

Mentioned in proceedings (Phase 6)
Floor statements that name this Member will appear here.
{% endblock %}