Dr. Cost Enterprise Metodología de Costeo Industrial & Pseudocódigo Formal · Dr. Estuardo Ramos
5 Flujogramas Inmutables Certificados
ESTÁNDAR ORTOGONAL INMUTABLE (Graphviz rankdir=TB · splines=ortho)

Índice Maestro de Flujogramas & Pseudocódigo del Motor

Formalización matemática de la lógica de absorción de los 3 elementos del costo (Materia Prima + Mano de Obra + CIF) e integración con el Plan Contable General Empresarial (PCGE).

Diagramas
5 Visores
Modelo BD
67 Tablas
Módulos
01 al 07
Balance PCGE
100% Cuadre
#05 · ALGORITMO 5 Pasos de Motor

Pseudocódigo del Motor de Cálculo

Lógica algorítmica de 5 fases: Precondiciones, Explosión BOM con mermas, Liquidación MOD HH, Absorción CIF por drivers, Divisor unitario $CU$ y Asientos PCGE.

1: BOM Merma: $Q_{bruta} = Q_{neta} \cdot (1 + M)$
2: MOD: $Tarifa_{HH} = Planilla / HH$
3: CIF: $Tasa = Pool / Capacidad$
4: Costo Unitario: $CU = CTF / Q$
5: Asientos Diarios (Cta 21 / 71)
#01 · FULL STACK 4 Niveles

Macro-Arquitectura Cloud & .NET

Mapeo de binarios legacy CIL (.NET WinForms) hacia 67 tablas en Supabase y el frontend modular React 19 APEFAC.

L1: Legacy Core (.NET Binaries & SQL)
L2: Supabase Data Engine (67 Tablas)
L3: TypeScript Service Layer
L4: Frontend Modular React 19
#02 · FÓRMULAS Cálculo CU

Motor Matemático de Costeo

Formulación de los 3 vectores ($MP + MOD + CIF$), matriz de absorción, evaluación de mermas y divisor unitario por lote.

L1: Vectores MD, MOD, CIF
L2: Convergencia en OP ($CTF$)
L3: Auditoría de Variaciones
L4: Costo Unitario Final ($S/ / UND$)
#03 · CICLO PLANTA Mod 01 al 07

Gobernanza Operativa & Ciclo de Vida

Secuencia obligatoria de planta: Parámetros Drivers (02) y BOM (06) ➔ Liquidación OP (05) ➔ Cierre Contable (07).

F1: Parámetros (Mod 02 + Mod 06)
F2: Operación (Mod 03 + Mod 04)
F3: Liquidación OP (Mod 05)
F4: Cierre & Dashboard (07 ➔ 01)
#04 · PARTIDA DOBLE Asientos PCGE

Cierre Contable & Asientos PCGE

Generación automática de asientos de diario, enlace con cuentas 21, 71, 69 y 79, cuadre 100% y bloqueo inmutable de Kardex.

L1: Disparadores de Cierre OP
L2: Asientos Cuentas 21/71 y 69/79
L3: Regla de Cuadre & Bloqueo
L4: Comprobante de Diario Final
Metodología & Formulación Formal

Análisis Técnico del Motor de Costos Industriales (Algoritmo Ramos)

Documentación exhaustiva de los fundamentos matemáticos, fórmulas de absorción, reglas contables y flujo de ejecución en Supabase.

Abrir Diagrama Vectorial #05
1

Materia Prima (MP) & Mermas Técnicas

La cantidad de materia prima requerida no es lineal. Cada insumo en la estructura BOM tiene un factor de merma técnica inherente al proceso físico o químico de transformación:

Q_bruta = Q_neta · (1 + %Merma / 100)
Costo_MP_OP = Σ [ Q_bruta · CU_Kardex · Cantidad_Programada ]

La valorización se conecta en tiempo real al costo estándar/promedio del Kardex valorizado registrado en public.articulo_costo_estandar.

2

Mano de Obra Directa (MOD) & Tarifa HH Real

Se calcula la tarifa horaria ponderada por Centro de Costo, consolidando la planilla obrera bruta más las cargas sociales de ley peruana (EsSalud 9%, Gratificaciones, CTS, Vacaciones, SCTR):

Tarifa_HH(CC) = Total_Costo_Planilla(CC) / Total_HH_Efectivas(CC)
Costo_MOD_OP = Σ [ (Horas + Minutos/60) · Tarifa_HH(CC) ]

Los partes de trabajo diarios imputan las horas hombre consumidas a cada orden registrada en public.utilizacion_horas_hombre.

3

Gastos de Fabricación (CIF) & Cost Drivers

Los gastos indirectos (clase 63 servicios, 65 suministros, 68 depreciación) se clasifican en Fijos y Variables. Se aplican inductores de actividad (Cost Drivers) con capacidad técnica:

Tasa_Driver = Pool_Gasto_Asignado / Capacidad_Total_Driver
Costo_CIF_OP = Total_CIF_Incurrido · (HH_OP / Total_HH_Planta)

Garantiza una distribución equitativa de energía, matricería, supervisión y mantenimiento industrial (public.determinacion_cost_drivers).

4

Costo Total de Fabricación & Costo Unitario ($CU$)

Consolidación exacta de los 3 elementos en la Hoja de Costos de la Orden de Producción. Si la orden está terminada, el divisor determina el costo por unidad de producto terminado:

CTF = Total_MP + Total_MOD + Total_CIF
CU_Final = CTF / Cantidad_Terminada_Neta (Q)

Si la orden sigue en taller al cierre de mes, se clasifica como Producto en Proceso (WIP) sin aplicar divisor unitario hasta su liquidación.

5

Generación Automática de Asientos PCGE & Bloqueo de Kardex

Cuadre 100% Debe = Haber

Al ejecutar el cierre del periodo fiscal, el motor genera automáticamente los asientos de diario en formato contable oficial del Plan Contable General Empresarial (PCGE):

Asiento 1: Transferencia a Existencias PT
DEBE: Cta 211101 (Productos Manufacturados) S/ Total_CTF
HABER: Cta 711101 (Variación Prod. Almacenada) S/ Total_CTF
Asiento 2: Ajuste de Variación CIF / Capacidad Ociosa
DEBE: Cta 694101 (Costo de Ventas - Var. CIF) S/ Var_CIF
HABER: Cta 791100 (Cargas Imputables a Costos) S/ Var_CIF
Código del Algoritmo (Pseudocódigo TypeScript / Python Core): Ejecutado en Supabase PostgREST Engine
FUNCTION ExecuteCostEngine(periodo_fiscal: Periodo, tenant_id: UUID): Result
  // =========================================================================
  // 1. PRECONDICIONES & CARGA DE CATÁLOGOS RELACIONALES (67 TABLAS SUPABASE)
  // =========================================================================
  OPs     = SELECT * FROM orden_produccion WHERE periodo = periodo_fiscal AND estado != 'CANCELADA'
  BOM     = SELECT * FROM formula_insumos_detalle JOIN formula_insumos_cabecera
  KARDEX  = SELECT * FROM articulo_costo_estandar
  NOMINA  = SELECT * FROM utilizacion_horas_hombre WHERE periodo = periodo_fiscal
  CIF     = SELECT * FROM comprobante_gastos_fabricacion WHERE periodo = periodo_fiscal
  DRIVERS = SELECT * FROM determinacion_cost_drivers

  ASSERT (COUNT(OPs) > 0 AND COUNT(BOM) > 0) ELSE THROW 'Catálogo maestro incompleto'

  // =========================================================================
  // 2. PASO 1: ABSORCIÓN DE MATERIA PRIMA (MP) CON FACTOR DE MERMA
  // =========================================================================
  FOR EACH op IN OPs:
    op.total_mp = 0.0
    FOR EACH insumo IN BOM[op.codigo_producto]:
      q_bruta = insumo.cantidad_neta * (1.0 + (insumo.merma_porcentaje / 100.0))
      cu_std  = KARDEX[insumo.codigo_insumo].costo_unitario
      costo_linea = q_bruta * cu_std * op.cantidad_programada
      op.total_mp += costo_linea
    END FOR
  END FOR

  // =========================================================================
  // 3. PASO 2: LIQUIDACIÓN DE NÓMINA MOD & TARIFA EFECTIVA POR CENTRO
  // =========================================================================
  FOR EACH cc IN CentrosDeCosto:
    total_hh_cc  = SUM(NOMINA[cc].horas_efectivas)
    total_mod_cc = SUM(NOMINA[cc].costo_bruto_con_cargas) // Sueldos + EsSalud 9% + CTS + Grat
    tarifa_hh[cc] = (total_hh_cc > 0) ? (total_mod_cc / total_hh_cc) : 0.0
  END FOR

  FOR EACH op IN OPs:
    op.total_mod = 0.0
    FOR EACH parte IN NOMINA[op.numero_op]:
      hh_efectiva = parte.horas + (parte.minutos / 60.0)
      op.total_mod += hh_efectiva * tarifa_hh[parte.centro_costo]
    END FOR
  END FOR

  // =========================================================================
  // 4. PASO 3: PRORRATEO & ABSORCIÓN DE CIF SEGÚN COST DRIVERS E INDUCTORES
  // =========================================================================
  FOR EACH drv IN DRIVERS:
    tasa_driver[drv.codigo] = drv.costo_total_asignado / drv.total_capacidad
  END FOR

  total_cif_incurrido = SUM(CIF.monto_real)
  total_hh_planta     = SUM(NOMINA.horas_efectivas)

  FOR EACH op IN OPs:
    factor_op = (total_hh_planta > 0) ? (op.total_hh_consumidas / total_hh_planta) : 0.0
    op.total_cif = total_cif_incurrido * factor_op
  END FOR

  // =========================================================================
  // 5. PASO 4: CONSOLIDACIÓN DE COSTO TOTAL & DIVISOR UNITARIO DETERMINISTA
  // =========================================================================
  FOR EACH op IN OPs:
    op.costo_total_produccion = op.total_mp + op.total_mod + op.total_cif

    IF op.cantidad_terminada > 0 THEN:
      op.costo_unitario_calculado = op.costo_total_produccion / op.cantidad_terminada
      op.md_unitario  = op.total_mp / op.cantidad_terminada
      op.mod_unitario = op.total_mod / op.cantidad_terminada
      op.cif_unitario = op.total_cif / op.cantidad_terminada
      op.estado = 'LIQUIDADA'
    ELSE:
      op.costo_unitario_calculado = 0.0
      op.estado = 'EN_PROCESO_WIP'
    END IF
  END FOR

  // =========================================================================
  // 6. PASO 5: GENERACIÓN DE COMPROBANTES DE DIARIO PCGE & CUADRE BALANCE
  // =========================================================================
  total_pt_liquidado = SUM(OPs[estado='LIQUIDADA'].costo_total_produccion)
  
  asiento_pt = {
    numero: 'AST-2026-001',
    tipo: 'TRANSFERENCIA_EXISTENCIAS_PT',
    lineas: [
      { cuenta: '211101', denominacion: 'Productos Manufacturados - PT', debe: total_pt_liquidado, haber: 0.0 },
      { cuenta: '711101', denominacion: 'Variación de la Producción Almacenada', debe: 0.0, haber: total_pt_liquidado }
    ]
  }
  ASSERT (SUM(asiento_pt.lineas.debe) == SUM(asiento_pt.lineas.haber))

  // 7. Persistencia Inmutable en Supabase
  BEGIN TRANSACTION;
    UPDATE orden_produccion SET ... WHERE id = op.id;
    INSERT INTO asiento_contable (lineas) VALUES (...);
    UPDATE cierre_kardex SET cerrado = TRUE, fecha_cierre = NOW();
  COMMIT;

  RETURN {
    status: 200,
    mensaje: 'Cierre y Liquidación de Costos Ejecutada Exitosamente',
    total_liquidado: total_pt_liquidado,
    ordenes_procesadas: COUNT(OPs),
    balance_cuadrado: TRUE
  }
END FUNCTION
Hub Oficial: estuardo.geeksoft.tech · VPS Hostinger: 91.108.125.253
Diseñado para: Dr. Estuardo Ramos · Creador de la Metodología Dr. Cost