Skip to content

Instantly share code, notes, and snippets.

@armollica
Last active August 7, 2016 22:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save armollica/f130a6e93e73d65252b3 to your computer and use it in GitHub Desktop.
Save armollica/f130a6e93e73d65252b3 to your computer and use it in GitHub Desktop.
Teacher Wages
height: 800

Annual wages for Elementary and High School teachers by U.S. state.

The box shows the range of the 25th to 75th percentile of wages. The median wage is the tick in the middle. The two ticks on either side of the box show the 10th and 90th percentile wages.

Data source: BLS

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Teacher Wages</title>
<style>
body {
font: 12px Helvetica, sans-serif;
}
.tooltip {
position: absolute;
background-color: rgba(255, 255, 255, 0.95);
padding: 5px 5px;
box-shadow: 2px 2px 1px #888888;
}
.hidden {
display: none;
}
.axis path,
.axis line {
fill: none;
stroke: #000;
}
.series-title {
text-anchor: middle;
font-size: 16px;
font-weight: bold;
}
.box {
fill: #fff;
stroke: #000;
stroke-width: .5px;
}
.box-tick {
stroke: #000;
stroke-width: 1px;
shape-rendering: crispEdges;
}
form {
position: absolute;
right: 10px;
bottom: 10px;
}
.hover-line {
opacity: 0;
stroke: tomato;
stroke-width: 1px;
stroke-dasharray: 5, 2;
pointer-events: none;
}
.hover-line.active {
opacity: 1;
}
.hover-rect {
opacity: 0;
}
.highlight {
fill: tomato;
}
</style>
</head>
<body>
<form>
Sort by
<label><input type="radio" name="sortBy" value="elementary" checked="true"> Elementary School Teacher Wage</label>
<label><input type="radio" name="sortBy" value="highSchool"> High School Teacher Wage</label>
<label><input type="radio" name="sortBy" value="alphabetical"> State Name (alphabetically)</label>
</form>
<script src="//d3js.org/d3.v3.min.js" charset="utf-8"></script>
<script>
var margin = { top: 20, left: 150, bottom: 60, right: 10 },
width = 960 - margin.right - margin.left,
height = 800 - margin.top - margin.bottom,
chartBuffer = 10;
var scale = {
x: d3.scale.linear().range([0, (width/2 - chartBuffer)]),
y: d3.scale.ordinal().rangeRoundBands([height, 0], 0.4)
};
var axis = {
x: d3.svg.axis().scale(scale.x).orient("bottom")
.tickFormat(d3.format("$,"))
.ticks(5),
y: d3.svg.axis().scale(scale.y).orient("left")
};
var tooltip = d3.select("body").append("div")
.attr("class", "tooltip")
.classed("hidden", true);
var svg = d3.select("body").append("svg")
.attr("width", width + margin.left + margin.right)
.attr("height", height + margin.top + margin.bottom)
.append("g")
.attr("transform", "translate(" + margin.left + "," + margin.top + ")");
var elementary = svg.append("g");
var highSchool = svg.append("g")
.attr("transform", "translate(" + (width/2 + chartBuffer) + ",0)");
elementary.append("text")
.attr("class", "series-title")
.attr("dy", -5)
.attr("dx", (width/2 - chartBuffer)/2)
.text("Elementary School Teachers");
elementary.append("rect")
.attr("class", "hover-rect")
.attr("width", width/2 - chartBuffer)
.attr("height", height)
.on("mousemove", mousemoveTooltip)
.on("mouseleave", mouseleaveTooltip);
highSchool.append("text")
.attr("class", "series-title")
.attr("dy", -5)
.attr("dx", (width/2 - chartBuffer)/2)
.text("High School Teachers");
highSchool.append("rect")
.attr("class", "hover-rect")
.attr("width", width/2 - chartBuffer)
.attr("height", height)
.on("mousemove", mousemoveTooltip)
.on("mouseleave", mouseleaveTooltip);
svg.append("g").attr("class", "x axis elementary")
.attr("transform", "translate(0," + height + ")");
svg.append("g").attr("class", "x axis highSchool")
.attr("transform", "translate(" + (width/2 + chartBuffer) + "," + height + ")");
svg.append("g").attr("class", "y axis");
svg.append("text").attr("")
d3.json("teacher-wages.json", function(error, data){
if (error) throw error;
scale.x.domain([0, d3.max(data, function(d) { return d.wages[4].wage; })]);
var elementaryData = data
.filter(function(d) { return d.occupation == "elementary"; })
.sort(function(a, b) { return a.wages[2].wage - b.wages[2].wage; });
var highSchoolData = data
.filter(function(d) { return d.occupation == "highSchool"; })
.sort(function(a, b) { return a.wages[2].wage - b.wages[2].wage; });
var yDomains = {
elementary: elementaryData.map(function(d) { return d.state }),
highSchool: highSchoolData.map(function(d) { return d.state }),
alphabetical: elementaryData.map(function(d) { return d.state }).sort(d3.descending)
};
scale.y.domain(yDomains["elementary"]);
svg.select(".x.axis.elementary").call(axis.x);
svg.select(".x.axis.highSchool").call(axis.x);
svg.select(".y.axis").call(axis.y);
elementary.call(render, elementaryData, 0)
.append("line")
.attr("class", "hover-line")
.attr("y1", 0)
.attr("y2", height);
highSchool.call(render, highSchoolData, 0)
.append("line")
.attr("class", "hover-line")
.attr("y1", 0)
.attr("y2", height);
d3.select("form").on("change", function() {
var transitionDuration = 500;
var sortBy = event.target.value;
scale.y.domain(yDomains[sortBy]);
svg.select(".y.axis")
.transition().duration(transitionDuration)
.call(axis.y);
elementary.call(render, elementaryData, transitionDuration);
highSchool.call(render, highSchoolData, transitionDuration);
});
});
function render(selection, data, duration) {
// Draw g for each state
var states = selection.selectAll(".state").data(data);
states.enter().append("g")
.attr("class", "state");
states
.transition().duration(duration)
.attr("transform", function(d) {
return "translate(0," + (scale.y(d.state)) + ")";
});
states.exit().remove();
// Draw IQR box
var boxes = states.selectAll(".box")
.data(function(d) {
return [{
x: scale.x(d.wages[1].wage),
dx: scale.x(d.wages[3].wage) - scale.x(d.wages[1].wage),
y: 0,
dy: scale.y.rangeBand()
}];
});
boxes.enter().append("rect")
.attr("class", "box")
.on("mouseenter", mouseenterBox)
.on("mousemove", mousemoveBox)
.on("mouseleave", mouseleaveBox);
boxes
.attr("x", function(d) { return d.x; })
.attr("y", function(d) { return d.y; })
.attr("width", function(d) { return d.dx; })
.attr("height", function(d) { return d.dy; });
boxes.exit().remove();
// Draw ticks for 10th, 25th, 50th, 75th and 90th percentiles
var boxTicks = states.selectAll(".box-tick")
.data(function(d) { return d.wages; });
boxTicks.enter().append("line")
.attr("class", "box-tick");
boxTicks
.attr("x1", function(d) { return scale.x(d.wage); })
.attr("x2", function(d) { return scale.x(d.wage); })
.attr("y1", 0)
.attr("y2", scale.y.rangeBand());
boxTicks.exit().remove();
}
function mouseenterBox() {
var hoverRect = d3.select(this.parentNode.parentNode)
.select(".hover-rect").node();
mousemoveTooltip.call(hoverRect);
var state = d3.select(this.parentNode).datum().state;
d3.select(".y.axis").selectAll(".tick text")
.classed("highlight", function(axisState) { return axisState === state; });
}
function mousemoveBox() {
var hoverRect = d3.select(this.parentNode.parentNode)
.select(".hover-rect").node();
mousemoveTooltip.call(hoverRect);
}
function mouseleaveBox() {
var hoverRect = d3.select(this.parentNode.parentNode)
.select(".hover-rect").node();
mousemoveTooltip.call(hoverRect);
d3.select(".y.axis").selectAll(".tick text")
.classed("highlight", false);
}
function mousemoveTooltip() {
var mouse = d3.mouse(d3.select("body").node()),
x = d3.mouse(this)[0];
var wage = scale.x.invert(x);
tooltip
.classed("hidden", false)
.style("left", mouse[0] + 25 + "px")
.style("top", mouse[1] - 10 + "px")
.html("Wage: <br>" + d3.format("$,.0f")(wage));
d3.select(this.parentNode).select(".hover-line")
.classed("active", true)
.attr("x1", x)
.attr("x2", x);
}
function mouseleaveTooltip() {
tooltip.classed("hidden", true);
d3.select(this.parentNode).select(".hover-line")
.classed("active", false);
}
</script>
</body>
</html>
[{"fip":"01","state":"Alabama","occupation":"elementary","wages":[{"percentile":"10","wage":38950},{"percentile":"25","wage":43460},{"percentile":"50","wage":50310},{"percentile":"75","wage":56640},{"percentile":"90","wage":60450}]},{"fip":"01","state":"Alabama","occupation":"highSchool","wages":[{"percentile":"10","wage":38720},{"percentile":"25","wage":43110},{"percentile":"50","wage":49780},{"percentile":"75","wage":57050},{"percentile":"90","wage":61550}]},{"fip":"02","state":"Alaska","occupation":"elementary","wages":[{"percentile":"10","wage":51130},{"percentile":"25","wage":57820},{"percentile":"50","wage":68410},{"percentile":"75","wage":79740},{"percentile":"90","wage":98290}]},{"fip":"02","state":"Alaska","occupation":"highSchool","wages":[{"percentile":"10","wage":52460},{"percentile":"25","wage":60260},{"percentile":"50","wage":70450},{"percentile":"75","wage":82010},{"percentile":"90","wage":96480}]},{"fip":"04","state":"Arizona","occupation":"elementary","wages":[{"percentile":"10","wage":31830},{"percentile":"25","wage":34920},{"percentile":"50","wage":40590},{"percentile":"75","wage":48590},{"percentile":"90","wage":59560}]},{"fip":"04","state":"Arizona","occupation":"highSchool","wages":[{"percentile":"10","wage":32750},{"percentile":"25","wage":37350},{"percentile":"50","wage":45100},{"percentile":"75","wage":55940},{"percentile":"90","wage":67290}]},{"fip":"05","state":"Arkansas","occupation":"elementary","wages":[{"percentile":"10","wage":33350},{"percentile":"25","wage":38260},{"percentile":"50","wage":44160},{"percentile":"75","wage":50260},{"percentile":"90","wage":58940}]},{"fip":"05","state":"Arkansas","occupation":"highSchool","wages":[{"percentile":"10","wage":34460},{"percentile":"25","wage":40410},{"percentile":"50","wage":46840},{"percentile":"75","wage":56190},{"percentile":"90","wage":64360}]},{"fip":"06","state":"California","occupation":"elementary","wages":[{"percentile":"10","wage":46040},{"percentile":"25","wage":58390},{"percentile":"50","wage":71020},{"percentile":"75","wage":83630},{"percentile":"90","wage":93780}]},{"fip":"06","state":"California","occupation":"highSchool","wages":[{"percentile":"10","wage":49760},{"percentile":"25","wage":59750},{"percentile":"50","wage":72730},{"percentile":"75","wage":87070},{"percentile":"90","wage":96790}]},{"fip":"08","state":"Colorado","occupation":"elementary","wages":[{"percentile":"10","wage":33530},{"percentile":"25","wage":39310},{"percentile":"50","wage":47920},{"percentile":"75","wage":59950},{"percentile":"90","wage":72330}]},{"fip":"08","state":"Colorado","occupation":"highSchool","wages":[{"percentile":"10","wage":34460},{"percentile":"25","wage":40750},{"percentile":"50","wage":49850},{"percentile":"75","wage":62180},{"percentile":"90","wage":73850}]},{"fip":"09","state":"Connecticut","occupation":"elementary","wages":[{"percentile":"10","wage":47010},{"percentile":"25","wage":56670},{"percentile":"50","wage":71590},{"percentile":"75","wage":86430},{"percentile":"90","wage":95330}]},{"fip":"09","state":"Connecticut","occupation":"highSchool","wages":[{"percentile":"10","wage":44780},{"percentile":"25","wage":55550},{"percentile":"50","wage":70980},{"percentile":"75","wage":86430},{"percentile":"90","wage":95870}]},{"fip":"10","state":"Delaware","occupation":"elementary","wages":[{"percentile":"10","wage":40420},{"percentile":"25","wage":46240},{"percentile":"50","wage":56810},{"percentile":"75","wage":70770},{"percentile":"90","wage":83190}]},{"fip":"10","state":"Delaware","occupation":"highSchool","wages":[{"percentile":"10","wage":41730},{"percentile":"25","wage":46870},{"percentile":"50","wage":58050},{"percentile":"75","wage":70600},{"percentile":"90","wage":78140}]},{"fip":"11","state":"District of Columbia","occupation":"elementary","wages":[{"percentile":"10","wage":34550},{"percentile":"25","wage":50990},{"percentile":"50","wage":61280},{"percentile":"75","wage":86850},{"percentile":"90","wage":108360}]},{"fip":"11","state":"District of Columbia","occupation":"highSchool","wages":[{"percentile":"10","wage":33840},{"percentile":"25","wage":38550},{"percentile":"50","wage":56510},{"percentile":"75","wage":72890},{"percentile":"90","wage":94880}]},{"fip":"12","state":"Florida","occupation":"elementary","wages":[{"percentile":"10","wage":34520},{"percentile":"25","wage":40320},{"percentile":"50","wage":45560},{"percentile":"75","wage":54190},{"percentile":"90","wage":66110}]},{"fip":"12","state":"Florida","occupation":"highSchool","wages":[{"percentile":"10","wage":35750},{"percentile":"25","wage":41490},{"percentile":"50","wage":47320},{"percentile":"75","wage":58300},{"percentile":"90","wage":71820}]},{"fip":"13","state":"Georgia","occupation":"elementary","wages":[{"percentile":"10","wage":39340},{"percentile":"25","wage":45100},{"percentile":"50","wage":53900},{"percentile":"75","wage":62150},{"percentile":"90","wage":72560}]},{"fip":"13","state":"Georgia","occupation":"highSchool","wages":[{"percentile":"10","wage":36620},{"percentile":"25","wage":44640},{"percentile":"50","wage":54420},{"percentile":"75","wage":64570},{"percentile":"90","wage":75460}]},{"fip":"15","state":"Hawaii","occupation":"elementary","wages":[{"percentile":"10","wage":40080},{"percentile":"25","wage":45100},{"percentile":"50","wage":54060},{"percentile":"75","wage":63430},{"percentile":"90","wage":74330}]},{"fip":"15","state":"Hawaii","occupation":"highSchool","wages":[{"percentile":"10","wage":40680},{"percentile":"25","wage":46290},{"percentile":"50","wage":54770},{"percentile":"75","wage":62810},{"percentile":"90","wage":74440}]},{"fip":"16","state":"Idaho","occupation":"elementary","wages":[{"percentile":"10","wage":32430},{"percentile":"25","wage":36540},{"percentile":"50","wage":44680},{"percentile":"75","wage":56090},{"percentile":"90","wage":67510}]},{"fip":"16","state":"Idaho","occupation":"highSchool","wages":[{"percentile":"10","wage":31440},{"percentile":"25","wage":35420},{"percentile":"50","wage":44480},{"percentile":"75","wage":56540},{"percentile":"90","wage":67760}]},{"fip":"17","state":"Illinois","occupation":"elementary","wages":[{"percentile":"10","wage":34250},{"percentile":"25","wage":43080},{"percentile":"50","wage":54630},{"percentile":"75","wage":70520},{"percentile":"90","wage":90280}]},{"fip":"17","state":"Illinois","occupation":"highSchool","wages":[{"percentile":"10","wage":40610},{"percentile":"25","wage":51890},{"percentile":"50","wage":67560},{"percentile":"75","wage":88390},{"percentile":"90","wage":107380}]},{"fip":"18","state":"Indiana","occupation":"elementary","wages":[{"percentile":"10","wage":33480},{"percentile":"25","wage":39430},{"percentile":"50","wage":49310},{"percentile":"75","wage":60670},{"percentile":"90","wage":71310}]},{"fip":"18","state":"Indiana","occupation":"highSchool","wages":[{"percentile":"10","wage":34190},{"percentile":"25","wage":40600},{"percentile":"50","wage":50190},{"percentile":"75","wage":61970},{"percentile":"90","wage":72400}]},{"fip":"19","state":"Iowa","occupation":"elementary","wages":[{"percentile":"10","wage":32760},{"percentile":"25","wage":40980},{"percentile":"50","wage":50410},{"percentile":"75","wage":59090},{"percentile":"90","wage":68550}]},{"fip":"19","state":"Iowa","occupation":"highSchool","wages":[{"percentile":"10","wage":32310},{"percentile":"25","wage":38920},{"percentile":"50","wage":48670},{"percentile":"75","wage":59050},{"percentile":"90","wage":69910}]},{"fip":"20","state":"Kansas","occupation":"elementary","wages":[{"percentile":"10","wage":32770},{"percentile":"25","wage":38750},{"percentile":"50","wage":44590},{"percentile":"75","wage":51350},{"percentile":"90","wage":59460}]},{"fip":"20","state":"Kansas","occupation":"highSchool","wages":[{"percentile":"10","wage":34230},{"percentile":"25","wage":40100},{"percentile":"50","wage":46010},{"percentile":"75","wage":54300},{"percentile":"90","wage":61440}]},{"fip":"21","state":"Kentucky","occupation":"elementary","wages":[{"percentile":"10","wage":37710},{"percentile":"25","wage":43430},{"percentile":"50","wage":51210},{"percentile":"75","wage":58450},{"percentile":"90","wage":65550}]},{"fip":"21","state":"Kentucky","occupation":"highSchool","wages":[{"percentile":"10","wage":36940},{"percentile":"25","wage":43560},{"percentile":"50","wage":52080},{"percentile":"75","wage":60150},{"percentile":"90","wage":71090}]},{"fip":"22","state":"Louisiana","occupation":"elementary","wages":[{"percentile":"10","wage":39440},{"percentile":"25","wage":42210},{"percentile":"50","wage":46810},{"percentile":"75","wage":53490},{"percentile":"90","wage":59280}]},{"fip":"22","state":"Louisiana","occupation":"highSchool","wages":[{"percentile":"10","wage":40080},{"percentile":"25","wage":43190},{"percentile":"50","wage":48370},{"percentile":"75","wage":56040},{"percentile":"90","wage":61170}]},{"fip":"23","state":"Maine","occupation":"elementary","wages":[{"percentile":"10","wage":33390},{"percentile":"25","wage":39570},{"percentile":"50","wage":49210},{"percentile":"75","wage":57840},{"percentile":"90","wage":64240}]},{"fip":"23","state":"Maine","occupation":"highSchool","wages":[{"percentile":"10","wage":33290},{"percentile":"25","wage":39420},{"percentile":"50","wage":49430},{"percentile":"75","wage":58450},{"percentile":"90","wage":66650}]},{"fip":"24","state":"Maryland","occupation":"elementary","wages":[{"percentile":"10","wage":40890},{"percentile":"25","wage":50130},{"percentile":"50","wage":61120},{"percentile":"75","wage":76360},{"percentile":"90","wage":91810}]},{"fip":"24","state":"Maryland","occupation":"highSchool","wages":[{"percentile":"10","wage":41800},{"percentile":"25","wage":49270},{"percentile":"50","wage":60520},{"percentile":"75","wage":76080},{"percentile":"90","wage":91760}]},{"fip":"25","state":"Massachusetts","occupation":"elementary","wages":[{"percentile":"10","wage":45130},{"percentile":"25","wage":56480},{"percentile":"50","wage":69810},{"percentile":"75","wage":83030},{"percentile":"90","wage":94490}]},{"fip":"25","state":"Massachusetts","occupation":"highSchool","wages":[{"percentile":"10","wage":47190},{"percentile":"25","wage":57430},{"percentile":"50","wage":70290},{"percentile":"75","wage":83550},{"percentile":"90","wage":95170}]},{"fip":"26","state":"Michigan","occupation":"elementary","wages":[{"percentile":"10","wage":36690},{"percentile":"25","wage":47280},{"percentile":"50","wage":64320},{"percentile":"75","wage":76870},{"percentile":"90","wage":92030}]},{"fip":"26","state":"Michigan","occupation":"highSchool","wages":[{"percentile":"10","wage":38250},{"percentile":"25","wage":48360},{"percentile":"50","wage":62490},{"percentile":"75","wage":76120},{"percentile":"90","wage":91210}]},{"fip":"27","state":"Minnesota","occupation":"elementary","wages":[{"percentile":"10","wage":35970},{"percentile":"25","wage":44290},{"percentile":"50","wage":57250},{"percentile":"75","wage":72160},{"percentile":"90","wage":92990}]},{"fip":"27","state":"Minnesota","occupation":"highSchool","wages":[{"percentile":"10","wage":37490},{"percentile":"25","wage":46000},{"percentile":"50","wage":57680},{"percentile":"75","wage":72450},{"percentile":"90","wage":91860}]},{"fip":"28","state":"Mississippi","occupation":"elementary","wages":[{"percentile":"10","wage":32050},{"percentile":"25","wage":34920},{"percentile":"50","wage":39880},{"percentile":"75","wage":46630},{"percentile":"90","wage":54060}]},{"fip":"28","state":"Mississippi","occupation":"highSchool","wages":[{"percentile":"10","wage":32290},{"percentile":"25","wage":35490},{"percentile":"50","wage":41240},{"percentile":"75","wage":47970},{"percentile":"90","wage":57290}]},{"fip":"29","state":"Missouri","occupation":"elementary","wages":[{"percentile":"10","wage":32190},{"percentile":"25","wage":37380},{"percentile":"50","wage":45980},{"percentile":"75","wage":60140},{"percentile":"90","wage":77650}]},{"fip":"29","state":"Missouri","occupation":"highSchool","wages":[{"percentile":"10","wage":31820},{"percentile":"25","wage":36410},{"percentile":"50","wage":44240},{"percentile":"75","wage":56740},{"percentile":"90","wage":72860}]},{"fip":"30","state":"Montana","occupation":"elementary","wages":[{"percentile":"10","wage":25970},{"percentile":"25","wage":34600},{"percentile":"50","wage":46280},{"percentile":"75","wage":58450},{"percentile":"90","wage":70140}]},{"fip":"30","state":"Montana","occupation":"highSchool","wages":[{"percentile":"10","wage":27800},{"percentile":"25","wage":36990},{"percentile":"50","wage":48040},{"percentile":"75","wage":60740},{"percentile":"90","wage":72550}]},{"fip":"31","state":"Nebraska","occupation":"elementary","wages":[{"percentile":"10","wage":35410},{"percentile":"25","wage":41670},{"percentile":"50","wage":49340},{"percentile":"75","wage":57550},{"percentile":"90","wage":64540}]},{"fip":"31","state":"Nebraska","occupation":"highSchool","wages":[{"percentile":"10","wage":36160},{"percentile":"25","wage":42490},{"percentile":"50","wage":50640},{"percentile":"75","wage":58920},{"percentile":"90","wage":68290}]},{"fip":"32","state":"Nevada","occupation":"elementary","wages":[{"percentile":"10","wage":38000},{"percentile":"25","wage":43570},{"percentile":"50","wage":51890},{"percentile":"75","wage":62240},{"percentile":"90","wage":72410}]},{"fip":"32","state":"Nevada","occupation":"highSchool","wages":[{"percentile":"10","wage":37740},{"percentile":"25","wage":43710},{"percentile":"50","wage":52540},{"percentile":"75","wage":62800},{"percentile":"90","wage":72870}]},{"fip":"33","state":"New Hampshire","occupation":"elementary","wages":[{"percentile":"10","wage":37530},{"percentile":"25","wage":44640},{"percentile":"50","wage":55030},{"percentile":"75","wage":65520},{"percentile":"90","wage":73580}]},{"fip":"33","state":"New Hampshire","occupation":"highSchool","wages":[{"percentile":"10","wage":37980},{"percentile":"25","wage":45720},{"percentile":"50","wage":56620},{"percentile":"75","wage":68410},{"percentile":"90","wage":76770}]},{"fip":"34","state":"New Jersey","occupation":"elementary","wages":[{"percentile":"10","wage":48820},{"percentile":"25","wage":54250},{"percentile":"50","wage":62950},{"percentile":"75","wage":80540},{"percentile":"90","wage":94550}]},{"fip":"34","state":"New Jersey","occupation":"highSchool","wages":[{"percentile":"10","wage":51360},{"percentile":"25","wage":57290},{"percentile":"50","wage":70200},{"percentile":"75","wage":88090},{"percentile":"90","wage":101130}]},{"fip":"35","state":"New Mexico","occupation":"elementary","wages":[{"percentile":"10","wage":33030},{"percentile":"25","wage":41150},{"percentile":"50","wage":48930},{"percentile":"75","wage":60290},{"percentile":"90","wage":73990}]},{"fip":"35","state":"New Mexico","occupation":"highSchool","wages":[{"percentile":"10","wage":34830},{"percentile":"25","wage":41770},{"percentile":"50","wage":49310},{"percentile":"75","wage":58410},{"percentile":"90","wage":69280}]},{"fip":"36","state":"New York","occupation":"elementary","wages":[{"percentile":"10","wage":44190},{"percentile":"25","wage":56100},{"percentile":"50","wage":73380},{"percentile":"75","wage":92890},{"percentile":"90","wage":112940}]},{"fip":"36","state":"New York","occupation":"highSchool","wages":[{"percentile":"10","wage":46620},{"percentile":"25","wage":57330},{"percentile":"50","wage":74300},{"percentile":"75","wage":94230},{"percentile":"90","wage":115520}]},{"fip":"37","state":"North Carolina","occupation":"elementary","wages":[{"percentile":"10","wage":32520},{"percentile":"25","wage":35670},{"percentile":"50","wage":41340},{"percentile":"75","wage":47840},{"percentile":"90","wage":56430}]},{"fip":"37","state":"North Carolina","occupation":"highSchool","wages":[{"percentile":"10","wage":32540},{"percentile":"25","wage":35840},{"percentile":"50","wage":42010},{"percentile":"75","wage":49450},{"percentile":"90","wage":58690}]},{"fip":"38","state":"North Dakota","occupation":"elementary","wages":[{"percentile":"10","wage":33740},{"percentile":"25","wage":38840},{"percentile":"50","wage":46580},{"percentile":"75","wage":56290},{"percentile":"90","wage":64900}]},{"fip":"38","state":"North Dakota","occupation":"highSchool","wages":[{"percentile":"10","wage":34310},{"percentile":"25","wage":39710},{"percentile":"50","wage":46890},{"percentile":"75","wage":56460},{"percentile":"90","wage":65100}]},{"fip":"39","state":"Ohio","occupation":"elementary","wages":[{"percentile":"10","wage":35770},{"percentile":"25","wage":46320},{"percentile":"50","wage":59580},{"percentile":"75","wage":71380},{"percentile":"90","wage":79900}]},{"fip":"39","state":"Ohio","occupation":"highSchool","wages":[{"percentile":"10","wage":37690},{"percentile":"25","wage":46760},{"percentile":"50","wage":59230},{"percentile":"75","wage":72380},{"percentile":"90","wage":84550}]},{"fip":"40","state":"Oklahoma","occupation":"elementary","wages":[{"percentile":"10","wage":32090},{"percentile":"25","wage":35110},{"percentile":"50","wage":40440},{"percentile":"75","wage":46900},{"percentile":"90","wage":55870}]},{"fip":"40","state":"Oklahoma","occupation":"highSchool","wages":[{"percentile":"10","wage":32640},{"percentile":"25","wage":36270},{"percentile":"50","wage":42490},{"percentile":"75","wage":48920},{"percentile":"90","wage":58690}]},{"fip":"41","state":"Oregon","occupation":"elementary","wages":[{"percentile":"10","wage":37300},{"percentile":"25","wage":46000},{"percentile":"50","wage":57020},{"percentile":"75","wage":68690},{"percentile":"90","wage":76420}]},{"fip":"41","state":"Oregon","occupation":"highSchool","wages":[{"percentile":"10","wage":37780},{"percentile":"25","wage":46860},{"percentile":"50","wage":57610},{"percentile":"75","wage":68810},{"percentile":"90","wage":76350}]},{"fip":"42","state":"Pennsylvania","occupation":"elementary","wages":[{"percentile":"10","wage":39690},{"percentile":"25","wage":47360},{"percentile":"50","wage":59050},{"percentile":"75","wage":73110},{"percentile":"90","wage":88370}]},{"fip":"42","state":"Pennsylvania","occupation":"highSchool","wages":[{"percentile":"10","wage":41640},{"percentile":"25","wage":49240},{"percentile":"50","wage":60290},{"percentile":"75","wage":74530},{"percentile":"90","wage":89090}]},{"fip":"44","state":"Rhode Island","occupation":"elementary","wages":[{"percentile":"10","wage":45390},{"percentile":"25","wage":62580},{"percentile":"50","wage":71800},{"percentile":"75","wage":82360},{"percentile":"90","wage":91610}]},{"fip":"44","state":"Rhode Island","occupation":"highSchool","wages":[{"percentile":"10","wage":45040},{"percentile":"25","wage":57480},{"percentile":"50","wage":68790},{"percentile":"75","wage":77640},{"percentile":"90","wage":89820}]},{"fip":"45","state":"South Carolina","occupation":"elementary","wages":[{"percentile":"10","wage":33430},{"percentile":"25","wage":39660},{"percentile":"50","wage":47710},{"percentile":"75","wage":57160},{"percentile":"90","wage":65860}]},{"fip":"45","state":"South Carolina","occupation":"highSchool","wages":[{"percentile":"10","wage":34510},{"percentile":"25","wage":41260},{"percentile":"50","wage":49970},{"percentile":"75","wage":59530},{"percentile":"90","wage":70930}]},{"fip":"46","state":"South Dakota","occupation":"elementary","wages":[{"percentile":"10","wage":30820},{"percentile":"25","wage":34170},{"percentile":"50","wage":39530},{"percentile":"75","wage":47300},{"percentile":"90","wage":57150}]},{"fip":"46","state":"South Dakota","occupation":"highSchool","wages":[{"percentile":"10","wage":31060},{"percentile":"25","wage":34420},{"percentile":"50","wage":40150},{"percentile":"75","wage":48390},{"percentile":"90","wage":59580}]},{"fip":"47","state":"Tennessee","occupation":"elementary","wages":[{"percentile":"10","wage":34870},{"percentile":"25","wage":40760},{"percentile":"50","wage":47390},{"percentile":"75","wage":56870},{"percentile":"90","wage":65330}]},{"fip":"47","state":"Tennessee","occupation":"highSchool","wages":[{"percentile":"10","wage":35330},{"percentile":"25","wage":41400},{"percentile":"50","wage":48430},{"percentile":"75","wage":57910},{"percentile":"90","wage":67120}]},{"fip":"48","state":"Texas","occupation":"elementary","wages":[{"percentile":"10","wage":40270},{"percentile":"25","wage":44090},{"percentile":"50","wage":50530},{"percentile":"75","wage":57870},{"percentile":"90","wage":63050}]},{"fip":"48","state":"Texas","occupation":"highSchool","wages":[{"percentile":"10","wage":40220},{"percentile":"25","wage":44690},{"percentile":"50","wage":52000},{"percentile":"75","wage":59390},{"percentile":"90","wage":68760}]},{"fip":"49","state":"Utah","occupation":"elementary","wages":[{"percentile":"10","wage":32120},{"percentile":"25","wage":39450},{"percentile":"50","wage":51770},{"percentile":"75","wage":66040},{"percentile":"90","wage":83490}]},{"fip":"49","state":"Utah","occupation":"highSchool","wages":[{"percentile":"10","wage":34120},{"percentile":"25","wage":42700},{"percentile":"50","wage":54560},{"percentile":"75","wage":66680},{"percentile":"90","wage":82470}]},{"fip":"50","state":"Vermont","occupation":"elementary","wages":[{"percentile":"10","wage":35510},{"percentile":"25","wage":42460},{"percentile":"50","wage":52480},{"percentile":"75","wage":64220},{"percentile":"90","wage":75720}]},{"fip":"50","state":"Vermont","occupation":"highSchool","wages":[{"percentile":"10","wage":35050},{"percentile":"25","wage":43300},{"percentile":"50","wage":53770},{"percentile":"75","wage":64190},{"percentile":"90","wage":75060}]},{"fip":"51","state":"Virginia","occupation":"elementary","wages":[{"percentile":"10","wage":39360},{"percentile":"25","wage":45130},{"percentile":"50","wage":56690},{"percentile":"75","wage":72860},{"percentile":"90","wage":91850}]},{"fip":"51","state":"Virginia","occupation":"highSchool","wages":[{"percentile":"10","wage":39890},{"percentile":"25","wage":46350},{"percentile":"50","wage":57780},{"percentile":"75","wage":73980},{"percentile":"90","wage":94910}]},{"fip":"53","state":"Washington","occupation":"elementary","wages":[{"percentile":"10","wage":42890},{"percentile":"25","wage":51460},{"percentile":"50","wage":62190},{"percentile":"75","wage":70730},{"percentile":"90","wage":75820}]},{"fip":"53","state":"Washington","occupation":"highSchool","wages":[{"percentile":"10","wage":44160},{"percentile":"25","wage":53120},{"percentile":"50","wage":64060},{"percentile":"75","wage":72610},{"percentile":"90","wage":78050}]},{"fip":"54","state":"West Virginia","occupation":"elementary","wages":[{"percentile":"10","wage":33220},{"percentile":"25","wage":38540},{"percentile":"50","wage":45640},{"percentile":"75","wage":53730},{"percentile":"90","wage":59400}]},{"fip":"54","state":"West Virginia","occupation":"highSchool","wages":[{"percentile":"10","wage":32810},{"percentile":"25","wage":36870},{"percentile":"50","wage":43990},{"percentile":"75","wage":52300},{"percentile":"90","wage":58930}]},{"fip":"55","state":"Wisconsin","occupation":"elementary","wages":[{"percentile":"10","wage":34760},{"percentile":"25","wage":42720},{"percentile":"50","wage":53600},{"percentile":"75","wage":64750},{"percentile":"90","wage":76310}]},{"fip":"55","state":"Wisconsin","occupation":"highSchool","wages":[{"percentile":"10","wage":35010},{"percentile":"25","wage":43120},{"percentile":"50","wage":53740},{"percentile":"75","wage":65260},{"percentile":"90","wage":76240}]},{"fip":"56","state":"Wyoming","occupation":"elementary","wages":[{"percentile":"10","wage":42560},{"percentile":"25","wage":49580},{"percentile":"50","wage":57220},{"percentile":"75","wage":67100},{"percentile":"90","wage":75200}]},{"fip":"56","state":"Wyoming","occupation":"highSchool","wages":[{"percentile":"10","wage":43180},{"percentile":"25","wage":50430},{"percentile":"50","wage":58530},{"percentile":"75","wage":68570},{"percentile":"90","wage":75670}]},{"fip":"66","state":"Guam","occupation":"elementary","wages":[{"percentile":"10","wage":26030},{"percentile":"25","wage":33400},{"percentile":"50","wage":43780},{"percentile":"75","wage":53970},{"percentile":"90","wage":60240}]},{"fip":"66","state":"Guam","occupation":"highSchool","wages":[{"percentile":"10","wage":27400},{"percentile":"25","wage":32360},{"percentile":"50","wage":39880},{"percentile":"75","wage":51110},{"percentile":"90","wage":59370}]},{"fip":"72","state":"Puerto Rico","occupation":"elementary","wages":[{"percentile":"10","wage":19400},{"percentile":"25","wage":27860},{"percentile":"50","wage":34880},{"percentile":"75","wage":40600},{"percentile":"90","wage":46140}]},{"fip":"72","state":"Puerto Rico","occupation":"highSchool","wages":[{"percentile":"10","wage":22030},{"percentile":"25","wage":27580},{"percentile":"50","wage":34150},{"percentile":"75","wage":40300},{"percentile":"90","wage":46080}]},{"fip":"78","state":"Virgin Islands","occupation":"elementary","wages":[{"percentile":"10","wage":26270},{"percentile":"25","wage":33350},{"percentile":"50","wage":41510},{"percentile":"75","wage":50550},{"percentile":"90","wage":60680}]},{"fip":"78","state":"Virgin Islands","occupation":"highSchool","wages":[{"percentile":"10","wage":26650},{"percentile":"25","wage":34110},{"percentile":"50","wage":43180},{"percentile":"75","wage":51260},{"percentile":"90","wage":62180}]}]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment