This is pretty awesome, and if it were in git/hg would have the ability to write a 'blame' tool to figure out who voted on the part of the law that is pissing you off :-)
Actually, you wouldn't.
This is the US code, not the legislative info :)
I actually tried to create this once (with a team behind me, in fact) with what's available or possible with the legislative info.
THOMAS theoretically published in XML, but it's missing a lot of info.
Not only is this info not published, it's not even stored.
They still are literally passing bills around to each other in some cases. You'd have to sit in on committee markup hearings, etc.
Even the small amount that is published from markups or whatever doesn't tell you who did it, only that it was done.
Some committees were willing to give more info. None were willing to essentially publish the in-flight staff attorney or other versions that would tell you for real who changed something.
Remember also that hg/git diff does not display what really happened.
It is displaying "how can i produce version B from version A using some minimal or near-minimal set of changes", converted to a line (or sub-line) based set of changes.
This does not tell you history, only one possible set of changes.
THOMAS does publish some in-flight versions of bills, but again, it's not really enough to do what you really want to do. I can tell you a bill changed between introduction and markup, and was different again when it got back to the floor. I can even, in some cases, tell you what was amended/deleted.
I can't tell you who did it.
(Well, i can tell you with some percentage accuracy, because we built a machine learning model, but ..)
The US system of legislative development is quite flawed. There are a lot of places where changes can be made without attribution, emerging from committees without saying who added what.
In most Parliamentary democracies you can only propose amendments from one of the two chambers, so any amendment can always be traced to the Parliamentarian who moved it.
I'd support having a nice and loud discussion on doing this. Being able to trace the authorship of line items doesn't seem to have stopped pork in other countries, but it might mitigate it. And we'd be able to yell at people better.
There are other amendments that cut back on some of the worst pork.
The Australian Constitution in section 55 forbids tax and spending legislation to deal with any other subject. If an Act includes other material, it's void, it has no effect.
This prevents the American situation of omnibus bills, rider amendments and the like.
We still get pork barrelling here; but between S 55, fused executive and legislative and strict party discipline, the political incentives are differently structured for individual politicians. It creates a stronger check on profligacy.
You can already do this - Congressional voting records are publicly available. However, even if you correlated these records with specific legislation, you would be making a dangerous mistake by missing the big picture.
Many laws are passed jn bundles and require compromise. Just because your Senator voted to support farm subsidies, doesn't mean he likes them - it just means he wanted a minimum wage increase to pass more.
I actually tried to create this once (with a team behind me, in fact) with what's available or possible with the legislative info.
THOMAS theoretically published in XML, but it's missing a lot of info.
Not only is this info not published, it's not even stored. They still are literally passing bills around to each other in some cases. You'd have to sit in on committee markup hearings, etc.
Even the small amount that is published from markups or whatever doesn't tell you who did it, only that it was done.
Some committees were willing to give more info. None were willing to essentially publish the in-flight staff attorney or other versions that would tell you for real who changed something.
Remember also that hg/git diff does not display what really happened.
It is displaying "how can i produce version B from version A using some minimal or near-minimal set of changes", converted to a line (or sub-line) based set of changes.
This does not tell you history, only one possible set of changes.
THOMAS does publish some in-flight versions of bills, but again, it's not really enough to do what you really want to do. I can tell you a bill changed between introduction and markup, and was different again when it got back to the floor. I can even, in some cases, tell you what was amended/deleted. I can't tell you who did it.
(Well, i can tell you with some percentage accuracy, because we built a machine learning model, but ..)