Is there any software or web service for club-level Elo ratings? Is there any software (or web-based service) that allows you to keep track of local, club-level Elo ratings? 

These ratings would not have any connection with official Elo ratings, it would be just an Elo rating within the universe of players in a club (i.e. games in various social tournaments would compute for the rating).
Even if it is not available, something like this is not too hard to implement yourself. Here is an example with extremely silly and simple rating system that is just meant to give you an idea. But I don't think that using actual Elo formula that much harder.

EDIT: I edit my implementation to use Elo formula (not including floors) given by the formula here

def get_exp_score_a(rating_a, rating_b):
    return 1.0 /(1 + 10**((rating_b - rating_a)/400.0))

def rating_adj(rating, exp_score, score, k=32):
    return rating + k * (score - exp_score)

class ChessPlayer(object):
    def __init__(self, name, rating):
        self.rating = rating
        self.name = name
    def match(self, other, result):

        exp_score_a = get_exp_score_a(self.rating, other.rating)

        if result == self.name:
            self.rating = rating_adj(self.rating, exp_score_a, 1)
            other.rating = rating_adj(other.rating, 1 - exp_score_a, 0)
        elif result == other.name:
            self.rating = rating_adj(self.rating, exp_score_a, 0)
            other.rating = rating_adj(other.rating, 1 - exp_score_a, 1)
        elif result == 'Draw':
            self.rating = rating_adj(self.rating, exp_score_a, 0.5)
            other.rating = rating_adj(other.rating, 1 - exp_score_a, 0.5)


This works as follows:

&gt;&gt;&gt; bob = ChessPlayer('Bob', 1600)
&gt;&gt;&gt; john = ChessPlayer('John', 1900)
&gt;&gt;&gt; bob.rating
1600
&gt;&gt;&gt; john.rating
1900
&gt;&gt;&gt; bob.match(john, 'Bob')
&gt;&gt;&gt; bob.rating
1627.1686541692377
&gt;&gt;&gt; john.rating
1872.8313458307623
&gt;&gt;&gt; mark = ChessPlayer('Mark', 2100)
&gt;&gt;&gt; mark.match(bob, 'Draw')
&gt;&gt;&gt; mark.rating
2085.974306956907
&gt;&gt;&gt; bob.rating
1641.1943472123305


Here is my original python implementation:

class ChessPlayer(object):
    def __init__(self, name, rating):
        self.rating = rating
        self.name = name
    def match(self, other, result):
        if result == self.name:
            self.rating += 10
            other.rating -= 10
        elif result == other.name:
            self.rating += 10
            other.rating -= 10
        elif result == 'Draw':
            pass


This works as follows:

&gt;&gt;&gt; bob = ChessPlayer('Bob', 1600)
&gt;&gt;&gt; john = ChessPlayer('John', 1900)
&gt;&gt;&gt; bob.match(john, 'Bob')
&gt;&gt;&gt; bob.rating
1610
&gt;&gt;&gt; john.rating
1890
&gt;&gt;&gt; mark = ChessPlayer('Mark', 2100)
&gt;&gt;&gt; mark.match(bob, 'Mark')
&gt;&gt;&gt; mark.rating
2110
&gt;&gt;&gt; bob.rating
1600
&gt;&gt;&gt; mark.match(john, 'Draw')
&gt;&gt;&gt; mark.rating
2110
&gt;&gt;&gt; john.rating
1890