Exemplo n.º 1
0
def main():
    for fy in FISCAL_YEARS:
        timely_programs = ProgramTimeliness.objects.filter(fiscal_year=fy, avg_lag_rows__lte='45')
        programs_available = ProgramTimeliness.objects.filter(fiscal_year=fy)
        pct = len(timely_programs) * 100 / len(programs_available)
        avg_avg_lag_rows = mean([t.avg_lag_rows for t in programs_available])
        print "%d: %d / %d (%.2f%%) programs with avg lag <=45 days, avg program lag: %.2f days" % (
            fy,
            len(timely_programs),
            len(programs_available),
            pct,
            avg_avg_lag_rows
        )

    for fy in FISCAL_YEARS:
        timely_agencies = AgencyTimeliness.objects.filter(fiscal_year=fy, avg_lag_rows__lte='45')
        agencies_available = AgencyTimeliness.objects.filter(fiscal_year=fy)
        pct = len(timely_agencies) * 100 / len(agencies_available)
        avg_avg_lag_rows = mean([t.avg_lag_rows for t in agencies_available])
        print "%d: %d / %d (%.2f%%) agencies with avg lag <=45 days, avg agency lag: %.2f days" % (
            fy,
            len(timely_agencies),
            len(agencies_available),
            pct,
            avg_avg_lag_rows)
    
    for fy in FISCAL_YEARS:
        all_agencies = AgencyTimeliness.objects.filter(fiscal_year=fy)
        timely_sum = sum([t.total_dollars - t.late_dollars for t in all_agencies])
        tardy_sum = sum([t.late_dollars for t in all_agencies])
        tardy_pct = tardy_sum * 100 / (timely_sum + tardy_sum)

        pie = Pie(170, 170, [[('Timely', float(timely_sum))],
                             [('Tardy', float(tardy_sum))]],
                  show_labels=False,
                  stylesheet=MEDIA_ROOT + '/styles/timeliness-charts.css',
                  x_padding=0, y_padding=0)
        pie.output(MEDIA_ROOT + '/images/charts/program-timeliness-%d.svg' % fy)


        print "%d: timely %s vs %s tardy, %.2f%% tardy" % (fy,
                                                           short_money(timely_sum),
                                                           short_money(tardy_sum),
                                                           tardy_pct)
Exemplo n.º 2
0
    def __unicode__(self):
        if self.completeness_total_dollars in (0, None):
            failed_pct = None
        else:
            failed_pct = "%2.2f%%" % (self.completeness_failed_dollars * 100 / self.completeness_total_dollars)

        return "%s %s (%d) / %s / $%.1fm" % (self.program.program_title, 
                                             self.program.program_number, 
                                             self.fiscal_year, 
                                             failed_pct, 
                                             short_money(self.completeness_failed_dollars))
Exemplo n.º 3
0
def main():
    for fy in FISCAL_YEARS:
        timely_programs = ProgramTimeliness.objects.filter(
            fiscal_year=fy, avg_lag_rows__lte='45')
        programs_available = ProgramTimeliness.objects.filter(fiscal_year=fy)
        pct = len(timely_programs) * 100 / len(programs_available)
        avg_avg_lag_rows = mean([t.avg_lag_rows for t in programs_available])
        print "%d: %d / %d (%.2f%%) programs with avg lag <=45 days, avg program lag: %.2f days" % (
            fy, len(timely_programs), len(programs_available), pct,
            avg_avg_lag_rows)

    for fy in FISCAL_YEARS:
        timely_agencies = AgencyTimeliness.objects.filter(
            fiscal_year=fy, avg_lag_rows__lte='45')
        agencies_available = AgencyTimeliness.objects.filter(fiscal_year=fy)
        pct = len(timely_agencies) * 100 / len(agencies_available)
        avg_avg_lag_rows = mean([t.avg_lag_rows for t in agencies_available])
        print "%d: %d / %d (%.2f%%) agencies with avg lag <=45 days, avg agency lag: %.2f days" % (
            fy, len(timely_agencies), len(agencies_available), pct,
            avg_avg_lag_rows)

    for fy in FISCAL_YEARS:
        all_agencies = AgencyTimeliness.objects.filter(fiscal_year=fy)
        timely_sum = sum(
            [t.total_dollars - t.late_dollars for t in all_agencies])
        tardy_sum = sum([t.late_dollars for t in all_agencies])
        tardy_pct = tardy_sum * 100 / (timely_sum + tardy_sum)

        pie = Pie(
            170,
            170,
            [[('Timely', float(timely_sum))], [('Tardy', float(tardy_sum))]],
            show_labels=False,
            stylesheet=MEDIA_ROOT + '/styles/timeliness-charts.css',
            x_padding=0,
            y_padding=0)
        pie.output(MEDIA_ROOT +
                   '/images/charts/program-timeliness-%d.svg' % fy)

        print "%d: timely %s vs %s tardy, %.2f%% tardy" % (
            fy, short_money(timely_sum), short_money(tardy_sum), tardy_pct)
Exemplo n.º 4
0
  
    consistent_allyears.append(consistency_set)

    consistent_programs = ProgramObligation.objects.filter(fiscal_year=fy, type=1, program__in=consistency_set)
    consistent_dollars = sum([o.obligation for o in consistent_programs])
    consistent_mean = mean([float(o.obligation) for o in consistent_programs])
    all_grant_dollars = sum([o.obligation for o in all_programs])
    all_grant_mean = mean([float(o.obligation) for o in all_programs])

    print "%d: %d consistent programs, %.2f%% of programs (%d acccurate, %d under, %d over) / %d programs, %.2f%% of grant spending (%s / %s), mean of obligations: %s consistent vs %s all grants" % (
        fy, 
        len(consistent_programs),
        len(consistent_programs) * 100 / len(all_programs),
        len(accurate_set),
        len(under_reporting_set),
        len(over_reporting_set),
        len(all_programs),
        consistent_dollars * 100 / all_grant_dollars,
        short_money(consistent_dollars),
        short_money(all_grant_dollars),
        short_money(consistent_mean),
        short_money(all_grant_mean))


progs = consistent_allyears[0] & consistent_allyears[1] & consistent_allyears[2]
for p in progs:
    program = Program.objects.get(id=p)
    writer.writerow((program.id, program.program_number, program.program_title))
print "%s programs report consistent for all three years" % len(progs)

Exemplo n.º 5
0
    get_program_id = attrgetter('program_id')
    accurate_set = set(map(get_program_id, null_reporting)) & set(
        map(get_program_id, programs_with_obligations))
    under_reporting_set = set(map(get_program_id, under_reporting))
    over_reporting_set = set(map(get_program_id, over_reporting))
    consistency_set = accurate_set | under_reporting_set | over_reporting_set

    consistent_allyears.append(consistency_set)

    consistent_programs = ProgramObligation.objects.filter(
        fiscal_year=fy, type=1, program__in=consistency_set)
    consistent_dollars = sum([o.obligation for o in consistent_programs])
    consistent_mean = mean([float(o.obligation) for o in consistent_programs])
    all_grant_dollars = sum([o.obligation for o in all_programs])
    all_grant_mean = mean([float(o.obligation) for o in all_programs])

    print "%d: %d consistent programs, %.2f%% of programs (%d acccurate, %d under, %d over) / %d programs, %.2f%% of grant spending (%s / %s), mean of obligations: %s consistent vs %s all grants" % (
        fy, len(consistent_programs),
        len(consistent_programs) * 100 / len(all_programs), len(accurate_set),
        len(under_reporting_set), len(over_reporting_set), len(all_programs),
        consistent_dollars * 100 / all_grant_dollars,
        short_money(consistent_dollars), short_money(all_grant_dollars),
        short_money(consistent_mean), short_money(all_grant_mean))

progs = consistent_allyears[0] & consistent_allyears[1] & consistent_allyears[2]
for p in progs:
    program = Program.objects.get(id=p)
    writer.writerow(
        (program.id, program.program_number, program.program_title))
print "%s programs report consistent for all three years" % len(progs)