def _generate_status_indicators(catalog, validator=None):
    """Genera indicadores básicos sobre el estado de un catálogo

    Args:
        catalog (dict): diccionario de un data.json parseado

    Returns:
        dict: indicadores básicos sobre el catálogo, tal como la cantidad
        de datasets, distribuciones y número de errores
    """
    result = {
        'datasets_cant': None,
        'distribuciones_cant': None,
        'datasets_meta_ok_cant': None,
        'datasets_meta_error_cant': None,
        'datasets_meta_ok_pct': None,
        'datasets_con_datos_cant': None,
        'datasets_sin_datos_cant': None,
        'datasets_con_datos_pct': None
    }
    try:
        summary = generate_datasets_summary(catalog, validator=validator)
    except Exception as e:
        msg = u'Error generando resumen del catálogo {}: {}'.format(
            catalog['title'], str(e))
        logger.error(msg)
        return result

    cant_ok = 0
    cant_error = 0
    cant_data = 0
    cant_without_data = 0
    cant_distribuciones = 0
    datasets_total = len(summary)
    for dataset in summary:
        cant_distribuciones += dataset['cant_distribuciones']

        # chequea si el dataset tiene datos
        if dataset['tiene_datos'] == "SI":
            cant_data += 1
        else:  # == "ERROR"
            cant_without_data += 1

        # chequea estado de los metadatos
        if dataset['estado_metadatos'] == "OK":
            cant_ok += 1
        else:  # == "ERROR"
            cant_error += 1

    datasets_ok_pct = 0
    datasets_with_data_pct = 0
    if datasets_total:
        datasets_ok_pct = round(float(cant_ok) / datasets_total, 4)
        datasets_with_data_pct = round(float(cant_data) / datasets_total, 4)

    result.update({
        'datasets_cant': datasets_total,
        'distribuciones_cant': cant_distribuciones,
        'datasets_meta_ok_cant': cant_ok,
        'datasets_meta_error_cant': cant_error,
        'datasets_meta_ok_pct': datasets_ok_pct,
        'datasets_con_datos_cant': cant_data,
        'datasets_sin_datos_cant': cant_without_data,
        'datasets_con_datos_pct': datasets_with_data_pct

    })
    return result