A congressional-disclosure sleeve has the same construction defect as a badly built equity backtest, and it arrives through the same door. You define your universe by who is in it today, then you compute history for that universe, and the result is conditioned on survival in a way that nothing in the output labels.
In equities the delisted-name problem has been understood for decades and the vendors sell you point-in-time constituent files to fix it. In political disclosure nobody sells you the equivalent, the exits are frequent, and the mechanism that removes a filer from the current roster is a political event rather than a corporate one. That last part is what makes the bias worth an afternoon of attention rather than a footnote.
The default is honest and the filter you reach for is not
Start with what the Leaderboard actually gives you, because the control that matters is already there and the risk is in how you use it.
The filter bar runs: a search box, a chamber filter with All, House and Senate, a status filter with All, In Office and Former, then a sort dropdown reading Total Trades, then the population count, 7083 politicians. Both the chamber filter and the status filter default to All.
That default is the survivorship-safe one. The moment somebody on the desk clicks In Office because they want a list of people who currently matter, the universe becomes a survivor set, and any historical statistic computed on it inherits the selection. That is not a criticism of the control. It is a correctly specified control being used for a purpose it was not built for, which is the most common way a research process acquires a bias.

Exit is non-random, which is the whole problem
Survivorship bias only matters when the exit mechanism correlates with the thing you are measuring. If members left office by coin flip, restricting to survivors would cost you sample size and nothing else.
They do not leave by coin flip. The exit channels are retirement, primary defeat, general election defeat, resignation and death, and every one of those except the last is a selected event. Retirements cluster among members in difficult seats and among the long-serving. Primary defeats concentrate in particular cycles and particular ideological positions. Resignations cluster around adverse events. None of that is a claim about any individual, and none of it needs to be. It is a statement about the shape of the exit process, and the shape is enough to break the estimator.
The channel that connects exit to disclosure behaviour is tenure and committee position. Seniority determines committee assignments and gavels, committee position is one of the documented inputs to the module's per-trade signal score, and exit probability is a function of tenure. So the variable that drives who leaves is correlated with the variable your signal is built on. That is exactly the configuration where a survivor-only estimate goes wrong.
What I will not do is tell you the sign. The intuitive story is that survivors look better and the cohort statistic is overstated. It is a plausible story and it is not something I can assert from the leaderboard. The defensible position is narrower and stronger: your estimate is conditioned on survival, the conditioning is non-random, and the magnitude and direction are empirical questions you can answer in a week by computing the same statistic on both sets.
Point-in-time membership, and the snapshot you should start keeping today
The correct construction is the same one you already use for equity universes. A cohort is defined as of its formation date and never re-derived from present-day membership.
Concretely: to evaluate a strategy that would have followed House members over the last three years, you need the House roster as it stood at each rebalance date over those three years, not the roster as it stands now. Members who entered during the period join the cohort at entry. Members who left remain in the cohort until they leave, and their trades up to that point remain in the sample with their forward returns computed normally, because the price series does not stop when the filer does.
The Former filter gives you the delisted archive, which is the harder half of that problem solved. What it does not give you, at least not from anything visible on the Leaderboard, is an entry date and an exit date per filer as a queryable field. Until you have confirmed that such a field exists in whatever interface you are pulling through, assume you have to supply it, and supply it two ways.
The first way is external and authoritative: legislative membership by session is published, and building a roster table keyed by filer, chamber, session start and session end is a bounded piece of work that you do once and maintain per election cycle. The second way is a monthly snapshot of the module's own population. The count sits on the page, 7083 politicians today, and capturing the full list monthly costs you almost nothing and gives you a vendor-consistent membership series that will match your return data exactly. Do both. The external roster is the truth, the snapshot series is what reconciles to your numbers.
What to run once the archive is wired in
The diagnostic is a two-line table and it settles the argument for your particular sleeve rather than in general.
Take a horizon the module already computes. Performance analytics run at 30, 60, 90 and 180 days by politician, party and chamber, so pick one and hold it fixed. Compute your cohort statistic twice: once on the present-day In Office set with full history, which is the biased construction, and once on the point-in-time union of In Office and Former, which is the correct one. The difference between the two, in basis points at your chosen horizon, is your survivorship adjustment.
Then decompose it. Split the departed filers by exit channel, at minimum retirement versus defeat, and check whether the gap is coming from one channel. If it is concentrated in a single channel you have learned something structural about the sleeve. If it is spread evenly you have learned that the bias is a level effect you can carry as a haircut.
Run the same comparison on the terminal window as well, meaning the last two quarters of filings before each exit. Departing filers have a specific reason to be liquidating, and a sample that includes their final months without flagging them is mixing forced portfolio wind-down into a signal about views. Whether that matters is measurable, and it is measurable on the same data you already pulled.
The version of this that shows up in a review
The reason to do this before you need it is that the question arrives at the worst moment. A political sleeve underperforms for two quarters, and somebody asks how the backtest looked so much better than the live book.
There are two answers you can give. The weak one is that the strategy is out of favour. The strong one is that you measured the survivorship adjustment at construction, you carry it as a documented haircut of a stated size at a stated horizon, and the live shortfall is inside or outside that band. The second answer is available to you for the cost of one filter click, one roster table and one repeated calculation, and it converts an unanswerable question into an arithmetic one.
Write the construction down in the sleeve documentation while you are building it. Which status filter the universe uses, where the roster table comes from, how entry and exit dates are assigned, and what happens to a filer's open positions on the day they leave office. That last item has no obviously correct answer, which is precisely why the decision should be made once, in writing, rather than implicitly by whoever runs the query next.