Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Específicamente se pretende:
Contexto
El impuesto sobre la renta grava todos los ingresos que obtenga un contribuyente (persona natural o jurídica) en
el año, que sean susceptibles de producir un incremento neto del patrimonio en el momento de su percepción,
siempre que no hayan sido expresamente exceptuados, y considerando los costos y gastos en que se incurre
para producirlos1; es decir, es el impuesto que se concibe cuando el patrimonio de una persona tiene un
incremento a lo largo de un año.
El Impuesto de Renta y Complementarios es de orden nacional porque sus tarifas son aplicables a todos los
ingresos que se generan dentro del territorio nacional; el recaudo está a cargo del Estado, que lo realiza mediante
entidades financieras para facilitar el pago a las contribuyentes; la administración de este impuesto la ejerce
directamente el Estado mediante la Unidad Administrativa Especial – Dirección de Impuestos y Aduanas
Nacionales – DIAN2.
Este impuesto es periódico porque para la aplicación de él se tienen en cuenta las ganancias generadas por el
sujeto en un periodo determinado (año gravable); en Colombia, se gravan los ingresos generados entre los meses
de enero y diciembre de cada año. La declaración y pago del impuesto, se hará en el periodo siguiente en el cual
se dio origen a las rentas sobre las cuales se va a liquidar el impuesto.
En Colombia todas aquellas personas naturales o jurídicas con un patrimonio sujeto a presentar incrementos y
que cumplen con las condiciones determinadas por la Ley de financiamiento están obligadas a declarar y pagar
el impuesto a la renta. En el caso de las personas jurídicas, todas las personas jurídicas deben declarar y pagar el
impuesto a la renta; no obstante, a partir del artículo 83 de la Ley 2010 de 2019 se establecen algunas
excepciones para la presentación del impuesto.
El impuesto de renta se divide en dos categorías: el impuesto a las personas naturales y el impuesto a las personas
jurídicas. De acuerdo con el Centro de Estudios del Trabajo (Cedetrabajo), en 2020 las personas naturales
aportaron solo el 18% del recaudo del impuesto de renta, mientras que las personas jurídicas —micro, pequeñas,
medianas y grandes empresas— aportaron el 78% (el 4% restante no es clasificable)3.
En Colombia las empresas están divididas en cuatro categorías: micro, pequeñas, medianas y grandes empresas.
Según el Ministerio de Comercio, Industria y Turismo, la clasificación está determinada por el número de
trabajadores, el valor de las ventas brutas anuales y el valor de los activos totales.
Desde el 2022, todas las empresas, sin importar si son micro, pequeñas, medianas o grandes, deben pagar un
impuesto de renta del 35% sobre sus utilidades. Si bien a las empresas más grandes y con más utilidades les
corresponde pagar una suma mayor, no se logra la progresividad, pues la tasa a la cual tributan las empresas no
varía.
Con esto en mente se identificaron varios requerimientos que cumplen con el objetivo de caracterizar las
actividades, subsectores y sectores económicos tomando como base la información estadística de los tributos
recolectados por la DIAN de los últimos 10 años del impuesto de renta y complementarios de las personas
jurídicas.
Carga de Datos
Los datos de este reto fueron tomados de los datos de estadísticas de los tributos administrados por la DIAN,
específicamente los datos agregados de los últimos 10 años del impuesto de renta de las personas jurídicas4.
Explícitamente utilizaremos los datos contenidos en los archivos
Salida_agregados_renta_juridicos_AG_<<XXX>>>.csv, los cuales están preparados y disponibles para los
estudiantes en el aula unificada en Bloque Neón (BrightSpace).
Las cifras reflejadas en los archivos se encuentran en millones de pesos corrientes y están agregadas teniendo
en cuenta los principios de Reserva Tributaria definidos en el artículo 583 del Estatuto Tributario.
Tabla 1. Resumen de propiedades y descripción de los datos.
Para evitar problemas de buffer en la lectura de los archivos se recomienda aumentar el tamaño de los campos
de lectura de la librería Python CSV al máximo posible para el sistema con el siguiente comando en la librería
CSV en el controller.py del Reto.
import csv
...
csv.field_size_limit(2147483647)
En algunos casos experimentales puede que Python y el IDE declaren que se alcanzó el límite de recursión con
un mensaje “RecursionError: maximum recursion depth exceeded in comparison”, en este caso se recomienda
actualizar en el view.py este límite con las siguientes líneas de código:
import sys
default_limit = 1000
sys.setrecursionlimit(default_limit*10)
Trabajo Propuesto
Parte 1: Configuración Repositorio
Complete los siguientes pasos para configurar su repositorio de trabajo:
p.1. Cree en GitHub un repositorio basado en la plantilla propuesta para el reto, el cuan se encuentra en el
URL: https://github.com/ISIS1225DEVS/Reto1-Template
p.2. Renombre el repositorio de su reto con el formato Reto1-G<<Número del grupo>> ej.: Reto1-G01 para
el grupo 1 de la sección.
p.3. Edite el README del repositorio e incluya los nombres completos, correo Uniandes y códigos de los
miembros del equipo de trabajo.
p.4. Realice el procedimiento según lo aprendido en clase para clonar el repositorio en su máquina local y
sincronizarlo con su repositorio en GitHub.
p.5. Descargue los datos desde la sección unificada del curso y cópielos en la carpeta data del repositorio
local.
Para responder a los requerimientos presentados deberán cargar la información de los archivos entregados;
recuerde que solo se permite leer una vez la información de cada archivo y que las pruebas finales sobre sus
algoritmos serán sobre los archivos -large.csv.
Recomendaciones:
• El contenido cargado debe ordenarse por el criterio compuesto Año y Código actividad económica. En el
ejemplo se muestra la información de las actividades económicas del 2012. Sin embargo, se debe
imprimir la información de las actividades económicas para cada uno de los años disponibles.
• Se recomienda utilizar librerías por extensión de Python como tabulate5 para imprimir adecuadamente
los resultados como se muestran en los ejemplos.
5
Python tabulate, PyPi URL: https://pypi.org/project/tabulate/
Departamento de Ingeniería de Sistemas y Computación
Estructuras de Datos y Algoritmos
ISIS-1225 2023-10
NOTA: En caso de que el equipo este conformado solamente por dos (2) integrantes deberán resolver solamente
cinco (5) requerimientos obligatorios: uno de los requerimientos básicos, dos de los requerimientos
intermedios, y los dos requerimientos avanzados.
Requerimiento No. 1 (Grupal): Listar la actividad económica con mayor total saldo a
pagar para todos los años disponibles.
Como analista económico necesito identificar la actividad económica que tuvo el mayor saldo total de impuestos
a pagar (Total saldo a pagar) para cada año disponible en la carga de datos.
• Año.
• Código actividad económica.
• Nombre actividad económica.
• Código sector económico.
• Nombre sector económico.
• Código subsector económico.
• Nombre subsector económico.
• El total ingresos netos.
• El total costos y gastos.
• El total saldo para pagar.
• El total saldo a favor.
Recomendaciones:
• Para facilitar las consultas de la lista debe presentarse ordenada de menor a mayor por año.
Departamento de Ingeniería de Sistemas y Computación
Estructuras de Datos y Algoritmos
ISIS-1225 2023-10
EJEMPLO: deseo listar las actividades económicas con mayor saldo total a pagar.
Departamento de Ingeniería de Sistemas y Computación
Estructuras de Datos y Algoritmos
ISIS-1225 2023-10
Requerimiento No. 2 (Grupal): Listar la actividad económica con mayor total saldo a
favor para todos los años disponibles.
Como analista económico necesito listar la actividad económica que tuvo el mayor saldo total de impuestos a
favor (Total saldo a favor) para cada año disponible en la carga de datos. Para facilitar las consultas de la
lista debe presentarse ordenada de menor a mayor por año.
• Año.
• Código actividad económica.
• Nombre actividad económica.
• Código sector económico.
• Nombre sector económico.
• Código subsector económico.
• Nombre subsector económico.
• El total ingresos netos.
• El total costos y gastos.
• El total saldo para pagar.
• El total saldo a favor.
Recomendaciones:
• Para facilitar las consultas de la lista debe presentarse ordenada de menor a mayor por año.
Departamento de Ingeniería de Sistemas y Computación
Estructuras de Datos y Algoritmos
ISIS-1225 2023-10
EJEMPLO: deseo listar las actividades económicas con mayor total saldo a favor.
Departamento de Ingeniería de Sistemas y Computación
Estructuras de Datos y Algoritmos
ISIS-1225 2023-10
• Año.
• Código sector económico.
• Nombre sector económico.
• Código subsector económico.
• Nombre subsector económico.
• El total de retenciones del subsector económico.
• El total ingresos netos del subsector económico.
• El total costos y gastos del subsector económico.
• El total saldo por pagar del subsector económico.
• El total saldo a favor del subsector económico.
• Las tres actividades económicas que menos aportaron y las tres actividades económicas que más
aportaron al valor total de retenciones en cada año, en donde cada elemento contendrá la siguiente
información:
o Código actividad económica.
o Nombre actividad económica.
o El total retenciones.
o El total ingresos netos.
o El total costos y gastos.
o El total saldo por pagar.
o El total saldo a favor.
Recomendaciones:
• Si existen menos de 6 actividades económicas en el subsector, liste todas ordenadas de menor a mayor
por el valor total de retenciones. En el ejemplo se muestra la información de las actividades económicas
del 2019 y 2020. Sin embargo, se debe imprimir la información de las actividades económicas para cada
uno de los años disponibles.
• Es importante resaltar que para obtener el total de retenciones de un subsector debe sumarse el total
de retenciones de todas las actividades económicas que hagan parte de este.
• Para facilitar las consultas de la lista debe presentarse ordenada de menor a mayor por año.
• Para facilitar la lectura de la información económica disponible por cada año ordene la respuesta de
menor a mayor por el total de retenciones.
Departamento de Ingeniería de Sistemas y Computación
Estructuras de Datos y Algoritmos
ISIS-1225 2023-10
EJEMPLO: deseo listar los subsectores económicos con las menores retenciones
Departamento de Ingeniería de Sistemas y Computación
Estructuras de Datos y Algoritmos
ISIS-1225 2023-10
• Año.
• Código sector económico.
• Nombre sector económico.
• Código subsector económico.
• Nombre subsector económico.
• El total de costos y gastos nómina del subsector económico.
• El total ingresos netos del subsector económico.
• El total costos y gastos del subsector económico.
• El total saldo por pagar del subsector económico.
• El total saldo a favor del subsector económico.
• Las tres actividades económicas que menos aportaron y las tres actividades económicas que más
aportaron al valor total de costos y gastos de nómina en cada año, en donde cada elemento contendrá
la siguiente información:
o Código actividad económica.
o Nombre actividad económica.
o El total costos y gastos nómina.
o El total ingresos netos.
o El total costos y gastos.
o El total saldo por pagar.
o El Total saldo a favor.
Recomendaciones:
EJEMPLO: deseo listar los subsectores económicos con los mayores costos y gastos de nómina disponibles.
Departamento de Ingeniería de Sistemas y Computación
Estructuras de Datos y Algoritmos
ISIS-1225 2023-10
• Año.
• Código sector económico.
• Nombre sector económico.
• Código subsector económico.
• Nombre subsector económico.
• El total de descuentos tributarios del subsector económico.
• El total ingresos netos del subsector económico.
• El total costos y gastos del subsector económico.
• El total saldo por pagar del subsector económico.
• El total saldo a favor del subsector económico.
• Las tres actividades económicas que menos aportaron y las tres actividades económicas que más
aportaron al descuento tributario en cada año, en donde cada elemento contendrá la siguiente
información:
o Código actividad económica.
o Nombre actividad económica.
o El total descuentos tributarios.
o El total ingresos netos.
o El total costos y gastos.
o El total saldo por pagar.
o El total saldo a favor.
Recomendaciones:
EJEMPLO: deseo listar los subsectores económicos con los mayores descuentos tributarios disponibles.
Departamento de Ingeniería de Sistemas y Computación
Estructuras de Datos y Algoritmos
ISIS-1225 2023-10
• Año.
Recomendaciones
• Para facilitar las consultas de la lista debe presentarse ordenada de menor a mayor por el código del
sector económico.
Departamento de Ingeniería de Sistemas y Computación
Estructuras de Datos y Algoritmos
ISIS-1225 2023-10
EJEMPLO: Deseo conocer la actividad económica de cada uno de los sectores económicos que tuvieron los mayores ingresos netos en el año 2021.
Departamento de Ingeniería de Sistemas y Computación
Estructuras de Datos y Algoritmos
ISIS-1225 2023-10
Requerimiento No. 7 (Grupal): Listar el TOP (N) de las actividades económicas con el
menor total de costos y gastos para un periodo de tiempo
Como analista económico necesito listar las actividades económicas que tuvieron los menores valores totales de
costos y gastos (Total costos y gastos), para un periodo de tiempo específico.
La respuesta esperada debe contener para cada una de las N actividades económicas:
• Año.
• Código actividad económica.
• Nombre actividad económica.
• Código sector económico.
• Nombre sector económico.
• Código subsector económico.
• Nombre subsector económico.
• El total ingresos netos consolidados para el periodo.
• El total costos y gastos consolidados para el periodo.
• El total saldo por pagar consolidados para el periodo.
• El total saldo a favor consolidados para el periodo.
Recomendaciones:
• Para facilitar las consultas de la lista debe presentarse ordenada de mayor a menor por el año.
Departamento de Ingeniería de Sistemas y Computación
Estructuras de Datos y Algoritmos
ISIS-1225 2023-10
EJEMPLO: deseo conocer las 5 actividades económicas con menores costos y gastos totales para el periodo comprendido entre 2020 y 2021.
Departamento de Ingeniería de Sistemas y Computación
Estructuras de Datos y Algoritmos
ISIS-1225 2023-10
Recomendaciones:
• Para facilitar las consultas de la lista debe presentarse ordenada alfabéticamente por el nombre del
subsector y por el total de impuestos a cargo de cada actividad económica.
Departamento de Ingeniería de Sistemas y Computación
Estructuras de Datos y Algoritmos
ISIS-1225 2023-10
EJEMPLO: Deseo conocer las 3 actividades económicas que aportaron el mayor impuesto a cargo, de cada subsector, para el periodo
comprendido entre 2020 y 2021. En el ejemplo se muestra la información de las actividades económicas del subsector 7 y 3. Sin embargo, se
debe imprimir la información de las actividades económicas de todos los subsectores.
Departamento de Ingeniería de Sistemas y Computación
Estructuras de Datos y Algoritmos
ISIS-1225 2023-10
Recomendaciones:
• Tomen como guía las herramientas, metodología y análisis realizados en los laboratorios; en especial los
laboratorios 4 y 5.
• Ejecute las pruebas de los requerimientos siempre con los mismos parámetros de entrada y con los
archivos más grande que pueda procesar su computador.
• Ejecute las pruebas de los requerimientos con la configuración optima del catálogo (LINKED_LIST,
ARRAY_LIST) y los algoritmos de ordenamiento (Shell, Insertion, Merge, etc.).
Entrega
Para realizar la entrega del reto deben:
1) Agregar los usuarios de los monitores y profesores del curso a su organización de GitHub para hacer la
entrega adecuada de la actividad,
2) Dar permisos adecuados repositorio a los monitores y al profesor, de lo contrario el taller NO podrá ser
calificado,
3) Asegurarse que la visibilidad del repositorio entregado sea privada y que solo pueda accederse con los
permisos configurados para los integrantes del grupo,
4) Enviar el enlace de GitHub en la actividad correspondiente dentro de Bloque Neón Uniandes
(BrightSpace).
5) Incluir en el repositorio GIT todo el material, código y documentos solicitados durante la actividad.
IMPORTANTE: Recuerde que solo se calificará el material hasta el último COMMIT realizado previo a la fecha
límite (7 de marzo, 11:59 p.m).