The idea is that a voter could choose between picking a Party List or voting within their single-winner district; for each quota’s worth of voters (this could be a Droop Quota of all voters voting in the entire state/country, or it could be the average number of voters voting in each district, the average number of registered voters in each district, etc.) a Party List gets, it gets one top-up seat added in addition to whatever seats it won in the districts. One advantage of this is that candidates within each district don’t have to explicitly be partisanly associated to win. A further refinement might be to bar the winner of a district from being elected where the majority of its voters picked a Party List, as it’d be dangerous to have someone receiving 6% of their districts’ votes winning and having the same amount of power as someone winning from their district with 60% of its votes.
As an example:
votes: 120 D, 180 R
seats: 2 D, 1 R
But if 100 Republicans vote for their Party List, 20 from the 1st district and 40 from the other two, then the Republicans have enough votes to constitute their own “district” i.e. a quota, so they receive a top-up seat, and now the seats balance would be 2 D, 2 R.
It might be possible to go even closer to proportionality with further tweaking, but in some places, semi-proportional may actually sell better than proportional, since some voters are strongly attached to local districts and oppose too much party control of the candidates. Basically, a semi-proportional method might be an easy way to convince fans of single-winner districts to take a step towards PR.
For local, nonpartisan elections, I’d suggest allowing one or two candidates to “team up” and to allow voters to pick both of them as a “party”; that way, you still get increased proportionality without much concern of partisanship.
A further refinement might be to let people pick both the Party List and the district candidates, and if the district winner was disqualified because a majority of the district voted for a Party List, then the voters who picked both district candidates and a Party List would have their vote go to that Party List.