FOIA_Doc_Search / ingest /scorecard.py
GodsDevProject's picture
Create ingest/scorecard.py
146e93e verified
def compute_transparency_scorecard(results):
agencies = {}
for r in results:
a = r["source"]
agencies.setdefault(a, {
"documents": 0,
"exemptions": 0,
"latest_date": None,
})
agencies[a]["documents"] += 1
agencies[a]["exemptions"] += len(r.get("exemptions", []))
if r.get("date"):
agencies[a]["latest_date"] = max(
agencies[a]["latest_date"] or r["date"],
r["date"],
)
scorecard = []
for agency, m in agencies.items():
scorecard.append({
"agency": agency,
"doc_count": m["documents"],
"exemptions_per_doc": round(m["exemptions"] / max(m["documents"], 1), 2),
"last_release": m["latest_date"],
"transparency_score": min(
100,
m["documents"] * 2 - m["exemptions"]
),
})
return scorecard