age_bins_maintainers = {
const rolled = d3
.flatRollup(
survey_data.filter(
(d) =>
d.AGE !== "NA" &&
d["CONTRIBUTOR.TYPE.PROJECT.MAINTENANCE"] === "Frequently" &&
(d["OSS.IDENTIFICATION"] == "Strongly agree" ||
d["OSS.IDENTIFICATION"] == "Somewhat agree")
),
(v) => v.length,
(d) => d.AGE
)
.map(([age, count]) => ({
...to_age_range(age),
count,
type: "maintainers"
}));
rolled.sort((a, b) => a.age_start - b.age_start);
return rolled.map((d) => ({
...d,
density: d.count / d3.sum(rolled.map((d) => d.count))
}));
}