Inteligencia de Clientes Documentación

v1 · engines
Home

Visión general

RFM, churn, CLV, cohortes, fidelidad, NPS y segmentación de clientes.

Esta referencia cubre 22 engines. Cada endpoint trae ruta, permiso, parámetros, respuesta y los errores posibles.

Churn (profundo)

Compartir
POST/api/v1/churn_deep/process
Engine
churn_deep
Grupo
customer_intelligence
Auth
X-TENANT-KEY | Authorization: Bearer
Entrada
JSON inline (data[]) o archivo .json/.csv/.parquet vía multipart/form-data
Modos
asíncrono (202) · ?sync=true (200) · ?dry_run=true (200, efímero)

Propósito

Predicción de churn multi-modelo con aceleración dedicada (MLP, TabNet, Random Forest, XGBoost) y horizontes temporales.

Entrena una competencia de modelos de clasificación (MLP, TabNet, Random Forest, XGBoost, con aceleración dedicada cuando está disponible) contra una etiqueta binaria de churn, selecciona el mejor por ROC-AUC y escala la probabilidad resultante por múltiples horizontes de predicción.

Parámetros (params)

CampoTipoObligatorioPor defectoDescripción
label_columnstringNombre de la columna con el indicador binario 0/1 de churn.
algorithmstringno"auto"Modelo a entrenar: auto (competencia entre todos), mlp, tabnet, random_forest o xgboost.
horizon_daysarrayno[30,60,90]Lista de horizontes en días (enteros positivos); la probabilidad de churn se escala linealmente por horizonte respecto del máximo.
test_sizenumberno0.2Fracción de filas reservada para evaluación, entre 0.05 y 0.5.
epochsintegerno50Épocas de entrenamiento para los modelos MLP y TabNet.
random_stateintegerno42Semilla aleatoria del split train/test y de la inicialización de los modelos.

Columnas de data[]

ColumnaTipoObligatoriaDescripción
customer_idstringIdentificador único del cliente, excluido del conjunto de features.
churnedintegerEtiqueta binaria de churn (0/1); el nombre de la columna debe coincidir con el param label_column.
tenure_monthsintegernoMeses en que el cliente está activo. Atributo numérico: el engine necesita al menos uno, y descarta las columnas de id y de etiqueta antes del entrenamiento.
monthly_spendnumbernoGasto mensual promedio. Atributo numérico.
support_ticketsintegernoTickets de soporte abiertos en el período. Atributo numérico.

Respuesta

En modo asíncrono (por defecto), 202 Accepted con {"process_uuid", "result_url"}; el resultado sale en GET /api/v1/results/{process_uuid}. Con ?sync=true o ?dry_run=true la respuesta es 200 con el resultado inline (y 504 con el process_uuid si el worker no responde a tiempo).

Errores

  • 403 - la engine no está en allowed_engines de tu suscripción.
  • 413 - subida por encima de max_upload_mb.
  • 422 - engine desconocida o inactiva en el catálogo.
  • 429 - cuota diaria (max_jobs_per_day) o por minuto excedida.

La validación es fail-fast: un envío rechazado no tiene ningún efecto secundario.

Probar solicitudOPENAPI
POST
https://intelligence.echosistema.live/api/v1/churn_deep/process?dry_run=true&playground=true
AUTENTICACIÓN
X-TENANT-KEY
QUERY PARAMS
sync
dry_run
playground
REQUEST BODY · JSON
Envía la solicitud para ver la respuesta.
curl
curl -X POST "https://intelligence.echosistema.live/api/v1/churn_deep/process?dry_run=true&playground=true" \
  -H "X-TENANT-KEY: $TENANT_KEY"

Etiqueta de churn

Compartir
POST/api/v1/churn_label/process
Engine
churn_label
Grupo
customer_intelligence
Auth
X-TENANT-KEY | Authorization: Bearer
Entrada
JSON inline (data[]) o archivo .json/.csv/.parquet vía multipart/form-data
Modos
asíncrono (202) · ?sync=true (200) · ?dry_run=true (200, efímero)

Propósito

Etiquetado de churn por reglas determinísticas en tres modelos de negocio: ecommerce, saas, prepaid.

¿Por qué? Clasifica churn por reglas de negocio en tres modelos: e-commerce, SaaS y prepago, sin depender de un modelo entrenado. Entrega, por cliente, la etiqueta (churned, at_risk, declining o active), los indicadores que la sustentan y el campo binario churned (0/1), listo para usarse como variable objetivo en modelos predictivos downstream. También resume la distribución de etiquetas y el porcentaje de churn de la base, un termómetro rápido de retención.

¿Cómo? En e-commerce calcula días de inactividad, frecuencia de compra (transacciones por mes de antigüedad) y tendencia monetaria (variación del promedio de la segunda mitad de las transacciones frente a la primera), y aplica reglas con umbrales configurables: churned cuando la inactividad alcanza churn_days, at_risk cuando alcanza at_risk_days, declining cuando la tendencia cae por debajo de -0.2 o la frecuencia por debajo de 0.5 por mes, y active en el resto de los casos. En SaaS, el cliente es churned cuando canceló la suscripción. En prepago, es churned cuando el saldo llegó a cero y no hubo recarga en el ciclo.

Origen El enfoque sigue la línea de Hadden et al. (2007), "Computer Assisted Customer Churn Management", publicado en Computers & Operations Research.

Literatura de referencia

  • Hadden, J. et al. (2007). "Computer Assisted Customer Churn Management." Computers & Operations Research, 34(10), 2902-2917.

Parámetros (params)

CampoTipoObligatorioPor defectoDescripción
business_typestringno"ecommerce"Modelo de negocio a aplicar: ecommerce, saas o prepaid. Determina qué columnas de datos se exigen.
churn_daysintegerno90Días de inactividad para etiquetar al cliente como 'churned' (solo modelo ecommerce).
at_risk_daysintegerno60Días de inactividad para etiquetar al cliente como 'at_risk' (solo modelo ecommerce).
reference_datestringnoFecha ISO (YYYY-MM-DD) usada como 'hoy' en los cálculos de inactividad (solo ecommerce). Por defecto: la fecha UTC actual.

Columnas de data[]

ColumnaTipoObligatoriaDescripción
customer_idstringIdentificador único del cliente.
purchase_datestringFecha de cada transacción de compra. Obligatoria para el business_type por defecto (ecommerce).
amountnumbernoMonto de la transacción, usado en la señal de tendencia monetaria (solo ecommerce).

Respuesta

En modo asíncrono (por defecto), 202 Accepted con {"process_uuid", "result_url"}; el resultado sale en GET /api/v1/results/{process_uuid}. Con ?sync=true o ?dry_run=true la respuesta es 200 con el resultado inline (y 504 con el process_uuid si el worker no responde a tiempo).

Errores

  • 403 - la engine no está en allowed_engines de tu suscripción.
  • 413 - subida por encima de max_upload_mb.
  • 422 - engine desconocida o inactiva en el catálogo.
  • 429 - cuota diaria (max_jobs_per_day) o por minuto excedida.

La validación es fail-fast: un envío rechazado no tiene ningún efecto secundario.

Probar solicitudOPENAPI
POST
https://intelligence.echosistema.live/api/v1/churn_label/process?dry_run=true&playground=true
AUTENTICACIÓN
X-TENANT-KEY
QUERY PARAMS
sync
dry_run
playground
REQUEST BODY · JSON
Envía la solicitud para ver la respuesta.
curl
curl -X POST "https://intelligence.echosistema.live/api/v1/churn_label/process?dry_run=true&playground=true" \
  -H "X-TENANT-KEY: $TENANT_KEY"

Predicción de churn

Compartir
POST/api/v1/churn_prediction/process
Engine
churn_prediction
Grupo
customer_intelligence
Auth
X-TENANT-KEY | Authorization: Bearer
Entrada
JSON inline (data[]) o archivo .json/.csv/.parquet vía multipart/form-data
Modos
asíncrono (202) · ?sync=true (200) · ?dry_run=true (200, efímero)

Propósito

Clasificación de churn con detección automática de features, selección de algoritmo por validación cruzada y métricas solo de holdout.

¿Por qué? Predice la probabilidad de churn de cada cliente con clasificación supervisada, detectando automáticamente las features numéricas disponibles. Entrega la probabilidad y la etiqueta prevista por cliente, métricas completas de evaluación (AUC, precisión, recall, F1), la matriz de confusión y el ranking de feature importance, que explica qué comportamientos pesan más en el riesgo. Así, los equipos priorizan acciones de retención sobre los clientes de mayor riesgo antes de que se vayan.

¿Cómo? Un pipeline descarta las columnas de feature constantes, estandariza las demás y, en el modo auto, elige el algoritmo por ROC-AUC de validación cruzada solo sobre el conjunto de entrenamiento: Random Forest, XGBoost y Regresión Logística compiten, el empate se rompe por log-loss y luego por la simplicidad del modelo, y selection_reason registra qué regla decidió. El holdout se gasta una sola vez, en la evaluación final, así que las métricas y la matriz de confusión nunca incluyen filas de entrenamiento. Cada fila recibe una puntuación, pero toda predicción lleva su customer_id, la etiqueta real y el split del que proviene, de modo que una probabilidad in-sample nunca se ordena como si fuera out-of-sample. El peso de cada feature se mide por importancia de permutación sobre el holdout, y importance_method nombra el método realmente usado cuando el holdout es demasiado pequeño para ella.

Origen Los fundamentos provienen de Breiman (2001), "Random Forests", publicado en Machine Learning, y de Chen y Guestrin (2016), "XGBoost: A Scalable Tree Boosting System", presentado en KDD.

Literatura de referencia

  • Breiman, L. (2001). "Random Forests." Machine Learning, 45(1), 5-32.
  • Chen, T. & Guestrin, C. (2016). "XGBoost: A Scalable Tree Boosting System." KDD.

Parámetros (params)

CampoTipoObligatorioPor defectoDescripción
label_columnstringNombre de la columna objetivo binaria 0/1.
algorithmstringno"auto"Clasificador a entrenar: auto, random_forest, xgboost o logistic.
test_sizenumberno0.2Proporción de filas reservada para evaluación, estrictamente entre 0 y 1.
random_stateintegerno42Semilla aleatoria del split estratificado y de la inicialización del modelo.

Columnas de data[]

ColumnaTipoObligatoriaDescripción
customer_idstringnoColumna de identificador opcional, excluida automáticamente del conjunto de features.
churnedintegerColumna objetivo binaria (0/1); el nombre debe coincidir con el param label_column. Se necesita al menos otra columna numérica de feature.
tenure_monthsintegernoMeses en que el cliente está activo. Atributo numérico: el engine necesita al menos uno, y descarta las columnas de id y de etiqueta antes del entrenamiento.
monthly_spendnumbernoGasto mensual promedio. Atributo numérico.
support_ticketsintegernoTickets de soporte abiertos en el período. Atributo numérico.

Respuesta

En modo asíncrono (por defecto), 202 Accepted con {"process_uuid", "result_url"}; el resultado sale en GET /api/v1/results/{process_uuid}. Con ?sync=true o ?dry_run=true la respuesta es 200 con el resultado inline (y 504 con el process_uuid si el worker no responde a tiempo).

Errores

  • 403 - la engine no está en allowed_engines de tu suscripción.
  • 413 - subida por encima de max_upload_mb.
  • 422 - engine desconocida o inactiva en el catálogo.
  • 429 - cuota diaria (max_jobs_per_day) o por minuto excedida.

La validación es fail-fast: un envío rechazado no tiene ningún efecto secundario.

Probar solicitudOPENAPI
POST
https://intelligence.echosistema.live/api/v1/churn_prediction/process?dry_run=true&playground=true
AUTENTICACIÓN
X-TENANT-KEY
QUERY PARAMS
sync
dry_run
playground
REQUEST BODY · JSON
Envía la solicitud para ver la respuesta.
curl
curl -X POST "https://intelligence.echosistema.live/api/v1/churn_prediction/process?dry_run=true&playground=true" \
  -H "X-TENANT-KEY: $TENANT_KEY"

CLV (profundo)

Compartir
POST/api/v1/clv_deep/process
Engine
clv_deep
Grupo
customer_intelligence
Auth
X-TENANT-KEY | Authorization: Bearer
Entrada
JSON inline (data[]) o archivo .json/.csv/.parquet vía multipart/form-data
Modos
asíncrono (202) · ?sync=true (200) · ?dry_run=true (200, efímero)

Propósito

Predicción de Customer Lifetime Value multi-modelo con aceleración dedicada (LSTM, MLP, XGBoost) en múltiples horizontes.

Construye features RFM+ por cliente a partir del historial de transacciones con holdout temporal, luego compite regresores LSTM/MLP y XGBoost (con aceleración dedicada cuando está disponible) para predecir el CLV futuro, seleccionando el mejor modelo por MAE. Cae a un objetivo proxy de valor monetario cuando el historial es demasiado corto para un split temporal.

Parámetros (params)

CampoTipoObligatorioPor defectoDescripción
modestringno"predict"Modo de ejecución; solo 'predict' está soportado por ahora.
horizon_monthsarrayno[6,12,24]Lista no vacía de horizontes en meses (enteros positivos); el mayor horizonte viable define el split temporal train/holdout.
algorithmstringno"auto"Modelo a entrenar: auto (competencia entre todos), lstm, mlp o xgboost.
epochsintegerno100Épocas de entrenamiento para los modelos LSTM y MLP.
random_stateintegerno42Semilla aleatoria del split train/test y de la inicialización de los modelos.

Columnas de data[]

ColumnaTipoObligatoriaDescripción
customer_idstringIdentificador único del cliente. Al menos 20 clientes distintos.
purchase_datestringFecha de cada transacción de compra.
amountnumberMonto de la transacción.

Respuesta

En modo asíncrono (por defecto), 202 Accepted con {"process_uuid", "result_url"}; el resultado sale en GET /api/v1/results/{process_uuid}. Con ?sync=true o ?dry_run=true la respuesta es 200 con el resultado inline (y 504 con el process_uuid si el worker no responde a tiempo).

Errores

  • 403 - la engine no está en allowed_engines de tu suscripción.
  • 413 - subida por encima de max_upload_mb.
  • 422 - engine desconocida o inactiva en el catálogo.
  • 429 - cuota diaria (max_jobs_per_day) o por minuto excedida.

La validación es fail-fast: un envío rechazado no tiene ningún efecto secundario.

Probar solicitudOPENAPI
POST
https://intelligence.echosistema.live/api/v1/clv_deep/process?dry_run=true&playground=true
AUTENTICACIÓN
X-TENANT-KEY
QUERY PARAMS
sync
dry_run
playground
REQUEST BODY · JSON
Envía la solicitud para ver la respuesta.
curl
curl -X POST "https://intelligence.echosistema.live/api/v1/clv_deep/process?dry_run=true&playground=true" \
  -H "X-TENANT-KEY: $TENANT_KEY"

Análisis de cohortes

Compartir
POST/api/v1/cohort_analysis/process
Engine
cohort_analysis
Grupo
customer_intelligence
Auth
X-TENANT-KEY | Authorization: Bearer
Entrada
JSON inline (data[]) o archivo .json/.csv/.parquet vía multipart/form-data
Modos
asíncrono (202) · ?sync=true (200) · ?dry_run=true (200, efímero)

Propósito

Triángulo de retención por cohorte de adquisición (mensual o semanal).

¿Por qué? Analiza cohortes de clientes para entender retención y comportamiento a lo largo del tiempo, comparando canales y camadas de clientes con la lente correcta. Entrega el triángulo de retención por cohorte, perfiles por cohorte (tamaño, retención promedio, vida mediana, churn en el primer mes) y un análisis de ciclo de vida que señala las cohortes de mejor y peor desempeño y la tendencia de retención. La métrica analizada es configurable entre retención, ingresos y frecuencia.

¿Cómo? Los clientes se agrupan en cohortes por el período de su primer evento, o por cualquier columna categórica como canal de adquisición o tipo de plan. Para cada cohorte se calcula la tasa de retención en cada período relativo al ingreso de la cohorte. El triángulo de retención se construye con agregación temporal configurable.

Origen La base conceptual es Fader y Hardie (2007), "How to Project Customer Retention", publicado en el Journal of Interactive Marketing.

Literatura de referencia

  • Fader, P. S. & Hardie, B. G. S. (2007). "How to Project Customer Retention." Journal of Interactive Marketing, 21(1), 76-90.

Parámetros (params)

CampoTipoObligatorioPor defectoDescripción
cohort_periodstringno"M"Granularidad del agrupamiento de cohortes: 'M' (mensual) o 'W' (semanal).
metricstringno"retention"Métrica a calcular; solo 'retention' está soportada por ahora.
periodsintegerno12Número máximo de períodos seguidos por cohorte.

Columnas de data[]

ColumnaTipoObligatoriaDescripción
customer_idstringIdentificador único del cliente. Al menos 2 clientes distintos.
event_datestringFecha de cada evento/transacción, usada para determinar cohorte y actividad.

Respuesta

En modo asíncrono (por defecto), 202 Accepted con {"process_uuid", "result_url"}; el resultado sale en GET /api/v1/results/{process_uuid}. Con ?sync=true o ?dry_run=true la respuesta es 200 con el resultado inline (y 504 con el process_uuid si el worker no responde a tiempo).

Errores

  • 403 - la engine no está en allowed_engines de tu suscripción.
  • 413 - subida por encima de max_upload_mb.
  • 422 - engine desconocida o inactiva en el catálogo.
  • 429 - cuota diaria (max_jobs_per_day) o por minuto excedida.

La validación es fail-fast: un envío rechazado no tiene ningún efecto secundario.

Probar solicitudOPENAPI
POST
https://intelligence.echosistema.live/api/v1/cohort_analysis/process?dry_run=true&playground=true
AUTENTICACIÓN
X-TENANT-KEY
QUERY PARAMS
sync
dry_run
playground
REQUEST BODY · JSON
Envía la solicitud para ver la respuesta.
curl
curl -X POST "https://intelligence.echosistema.live/api/v1/cohort_analysis/process?dry_run=true&playground=true" \
  -H "X-TENANT-KEY: $TENANT_KEY"

Retención por cohorte

Compartir
POST/api/v1/cohort_retention/process
Engine
cohort_retention
Grupo
customer_intelligence
Auth
X-TENANT-KEY | Authorization: Bearer
Entrada
JSON inline (data[]) o archivo .json/.csv/.parquet vía multipart/form-data
Modos
asíncrono (202) · ?sync=true (200) · ?dry_run=true (200, efímero)

Propósito

Matriz de retención y tasas de churn por cohorte de adquisición (día, semana o mes).

¿Por qué? Agrupa a los clientes por la fecha de su primer evento y muestra cuántos permanecen activos en los períodos siguientes, revelando si la retención mejora o empeora entre camadas. Entrega la matriz de retención (fracción de la cohorte original activa en cada período), las tasas de churn período a período, la curva promedio de retención entre cohortes y el half-life, el primer período en que la retención promedio cae por debajo del 50%. Es la base cuantitativa para metas de retención, proyecciones de base activa y evaluación del efecto de cambios en el producto.

¿Cómo? Cada cliente se asigna a una cohorte por la fecha de su primer evento, en la granularidad elegida (día, semana o mes), y cada evento recibe un offset en períodos desde esa fecha. La retención de la cohorte c en el período t es la fracción de clientes únicos activos sobre el tamaño de la cohorte, con retención igual a 1.0 en el período cero, y el churn período a período es 1 menos la razón entre retenciones consecutivas. La curva promedio agrega las cohortes con datos en cada período, y el half-life es el primer período en que ese promedio queda por debajo de 0.50 (nulo si nunca cae).

Origen La base conceptual es Fader y Hardie (2007), "How to Project Customer Retention", publicado en el Journal of Interactive Marketing.

Literatura de referencia

  • Fader, P. S. & Hardie, B. G. S. (2007). "How to Project Customer Retention." Journal of Interactive Marketing, 21(1), 76-90.

Parámetros (params)

CampoTipoObligatorioPor defectoDescripción
periodstringno"month"Granularidad de cohorte/período: 'day', 'week' o 'month'.
cohort_countintegerno12Número de cohortes más recientes incluidas en la matriz.

Columnas de data[]

ColumnaTipoObligatoriaDescripción
customer_idstringIdentificador único del cliente.
event_datestringFecha de cada evento del cliente, usada para determinar la cohorte y el offset del período de retención.

Respuesta

En modo asíncrono (por defecto), 202 Accepted con {"process_uuid", "result_url"}; el resultado sale en GET /api/v1/results/{process_uuid}. Con ?sync=true o ?dry_run=true la respuesta es 200 con el resultado inline (y 504 con el process_uuid si el worker no responde a tiempo).

Errores

  • 403 - la engine no está en allowed_engines de tu suscripción.
  • 413 - subida por encima de max_upload_mb.
  • 422 - engine desconocida o inactiva en el catálogo.
  • 429 - cuota diaria (max_jobs_per_day) o por minuto excedida.

La validación es fail-fast: un envío rechazado no tiene ningún efecto secundario.

Probar solicitudOPENAPI
POST
https://intelligence.echosistema.live/api/v1/cohort_retention/process?dry_run=true&playground=true
AUTENTICACIÓN
X-TENANT-KEY
QUERY PARAMS
sync
dry_run
playground
REQUEST BODY · JSON
Envía la solicitud para ver la respuesta.
curl
curl -X POST "https://intelligence.echosistema.live/api/v1/cohort_retention/process?dry_run=true&playground=true" \
  -H "X-TENANT-KEY: $TENANT_KEY"

Cliente 360

Compartir
POST/api/v1/customer_360/process
Engine
customer_360
Grupo
customer_intelligence
Auth
X-TENANT-KEY | Authorization: Bearer
Entrada
JSON inline (data[]) o archivo .json/.csv/.parquet vía multipart/form-data
Modos
asíncrono (202) · ?sync=true (200) · ?dry_run=true (200, efímero)

Propósito

Perfil compuesto del cliente que fusiona las sub-engines RFM, loyalty, features y etiqueta de churn en un único score de salud.

Ejecuta internamente las engines RFM, Loyalty, Features y Churn Label sobre los mismos datos de transacción y fusiona las salidas por cliente en un perfil unificado, con score de salud 0-1 ponderado (30% loyalty, 25% RFM, 25% no-churn, 20% frecuencia de transacción) y un tier de salud (excellent/good/fair/poor/critical).

Parámetros (params)

CampoTipoObligatorioPor defectoDescripción
rfm_binsintegerno5Número de rangos de score RFM pasado a la engine RFM interna. Debe ser mayor que 0.
churn_daysintegerno90Días de inactividad para considerar al cliente en churn, pasado a la engine Churn Label interna.
reference_datestringnoFecha ISO (YYYY-MM-DD) usada como 'hoy' en los cálculos de recencia de todas las sub-engines. Por defecto: la fecha actual.

Columnas de data[]

ColumnaTipoObligatoriaDescripción
customer_idstringIdentificador único del cliente.
purchase_datestringFecha de cada transacción de compra.
amountnumberMonto de la transacción.

Respuesta

En modo asíncrono (por defecto), 202 Accepted con {"process_uuid", "result_url"}; el resultado sale en GET /api/v1/results/{process_uuid}. Con ?sync=true o ?dry_run=true la respuesta es 200 con el resultado inline (y 504 con el process_uuid si el worker no responde a tiempo).

Errores

  • 403 - la engine no está en allowed_engines de tu suscripción.
  • 413 - subida por encima de max_upload_mb.
  • 422 - engine desconocida o inactiva en el catálogo.
  • 429 - cuota diaria (max_jobs_per_day) o por minuto excedida.

La validación es fail-fast: un envío rechazado no tiene ningún efecto secundario.

Probar solicitudOPENAPI
POST
https://intelligence.echosistema.live/api/v1/customer_360/process?dry_run=true&playground=true
AUTENTICACIÓN
X-TENANT-KEY
QUERY PARAMS
sync
dry_run
playground
REQUEST BODY · JSON
Envía la solicitud para ver la respuesta.
curl
curl -X POST "https://intelligence.echosistema.live/api/v1/customer_360/process?dry_run=true&playground=true" \
  -H "X-TENANT-KEY: $TENANT_KEY"

Clustering de clientes

Compartir
POST/api/v1/customer_clustering/process
Engine
customer_clustering
Grupo
customer_intelligence
Auth
X-TENANT-KEY | Authorization: Bearer
Entrada
JSON inline (data[]) o archivo .json/.csv/.parquet vía multipart/form-data
Modos
asíncrono (202) · ?sync=true (200) · ?dry_run=true (200, efímero)

Propósito

Segmentación de clientes con múltiples algoritmos de clustering y selección automática de K.

¿Por qué? Segmenta clientes por clustering con optimización automática, sin exigir grupos predefinidos, para descubrir los segmentos naturales de la base. Entrega la asignación de cluster por cliente, los centros de cada grupo, perfiles interpretados con etiquetas como Champions o At Risk y el silhouette score que mide la calidad de la separación. Alimenta campañas, priorización comercial y estrategias por perfil con grupos estadísticamente consistentes.

¿Cómo? Un pipeline normaliza las features (StandardScaler o MinMaxScaler), aplica PCA opcional para reducción de dimensionalidad y ejecuta múltiples algoritmos: K-Means, DBSCAN, clustering jerárquico y GMM. El mejor algoritmo y el número óptimo de clusters se eligen combinando Silhouette Score, índice Davies-Bouldin e índice Calinski-Harabasz.

Origen Los algoritmos se remontan a MacQueen (1967), "Some Methods for Classification and Analysis of Multivariate Observations", del Berkeley Symposium, que formalizó K-Means, y a Ester et al. (1996), "A Density-Based Algorithm for Discovering Clusters", de KDD, que introdujo DBSCAN.

Literatura de referencia

  • MacQueen, J. (1967). "Some Methods for Classification and Analysis of Multivariate Observations." Berkeley Symposium.
  • Ester, M. et al. (1996). "A Density-Based Algorithm for Discovering Clusters." KDD.

Parámetros (params)

CampoTipoObligatorioPor defectoDescripción
algorithmstringno"auto"Algoritmo de clustering: kmeans, dbscan, hierarchical, gmm o auto (competencia).
n_clustersintegernoNúmero de clusters, >= 2. Determinado automáticamente por votación elbow/silhouette/Davies-Bouldin/Calinski-Harabasz cuando se omite.
max_clustersintegerno10K máximo evaluado en la determinación automática de n_clusters.
featuresarraynoLista explícita de columnas usadas como features. Por defecto: todas las numéricas (excluyendo customer_id/id/user_id).
scale_methodstringno"standard"Método de escalado de features: 'standard' o 'minmax'.
handle_outliersstringno"clip"Estrategia para outliers: 'clip' (recorte por IQR), 'remove' (descarta filas) o 'none'.
outlier_thresholdnumberno1.5Multiplicador de IQR usado para detectar outliers.
pca_variancenumbernoRazón de varianza a retener vía PCA antes del clustering, entre 0 y 1. Omitir para saltarse el PCA.
random_stateintegerno42Semilla aleatoria del clustering y de la validación de estabilidad.
dbscan_epsnumbernoRadio epsilon de DBSCAN. Determinado automáticamente por heurística de rodilla k-distance cuando se omite.
dbscan_min_samplesintegerno5Mínimo de muestras por vecindario en DBSCAN.
linkage_methodstringno"ward"Método de linkage del clustering jerárquico: 'ward', 'complete', 'average' o 'single'.

Columnas de data[]

ColumnaTipoObligatoriaDescripción
customer_idstringnoColumna de identificador opcional, excluida automáticamente del conjunto de features.
recencynumberDías desde la última compra. Feature numérica de ejemplo; valen 2+ columnas numéricas cualesquiera, este es el conjunto sugerido de RFM.
frequencynumberNúmero de compras. Feature numérica de ejemplo para clustering estilo RFM.
monetary_valuenumberMonto total o promedio gastado. Feature numérica de ejemplo para clustering estilo RFM.

Respuesta

En modo asíncrono (por defecto), 202 Accepted con {"process_uuid", "result_url"}; el resultado sale en GET /api/v1/results/{process_uuid}. Con ?sync=true o ?dry_run=true la respuesta es 200 con el resultado inline (y 504 con el process_uuid si el worker no responde a tiempo).

Errores

  • 403 - la engine no está en allowed_engines de tu suscripción.
  • 413 - subida por encima de max_upload_mb.
  • 422 - engine desconocida o inactiva en el catálogo.
  • 429 - cuota diaria (max_jobs_per_day) o por minuto excedida.

La validación es fail-fast: un envío rechazado no tiene ningún efecto secundario.

Probar solicitudOPENAPI
POST
https://intelligence.echosistema.live/api/v1/customer_clustering/process?dry_run=true&playground=true
AUTENTICACIÓN
X-TENANT-KEY
QUERY PARAMS
sync
dry_run
playground
REQUEST BODY · JSON
Envía la solicitud para ver la respuesta.
curl
curl -X POST "https://intelligence.echosistema.live/api/v1/customer_clustering/process?dry_run=true&playground=true" \
  -H "X-TENANT-KEY: $TENANT_KEY"

CLV del cliente

Compartir
POST/api/v1/customer_clv/process
Engine
customer_clv
Grupo
customer_intelligence
Auth
X-TENANT-KEY | Authorization: Bearer
Entrada
JSON inline (data[]) o archivo .json/.csv/.parquet vía multipart/form-data
Modos
asíncrono (202) · ?sync=true (200) · ?dry_run=true (200, efímero)

Propósito

Customer Lifetime Value vía aproximaciones heurísticas BG/NBD + Gamma-Gamma basadas en RFM.

¿Por qué? Proyecta el Customer Lifetime Value de cada cliente a partir del historial transaccional, para dimensionar el presupuesto de adquisición, priorizar retención y medir la salud de largo plazo de la cartera. Entrega, por cliente, el CLV previsto en el horizonte configurado (12 meses por defecto), la probabilidad de una nueva compra, el número esperado de transacciones, el valor promedio previsto por pedido y el segmento de valor (High Value, Low Value, etc.), además de los agregados de la base.

¿Cómo? Usa métricas RFM como entrada y aplica una aproximación heurística del modelo BG/NBD para estimar el número esperado de transacciones futuras. El valor monetario esperado proviene de un estimador al estilo Gamma-Gamma con shrinkage, que estabiliza las estimaciones. Un descuento NPV convierte la proyección en valor presente del lifetime value.

Origen La base científica es Fader, Hardie y Lee (2005), "Counting Your Customers the Easy Way", publicado en Marketing Science, que estableció el framework BG/NBD para la predicción de compras futuras.

Literatura de referencia

  • Fader, P. S., Hardie, B. G. S. & Lee, K. L. (2005). "Counting Your Customers the Easy Way." Marketing Science, 24(2), 275-284.

Parámetros (params)

CampoTipoObligatorioPor defectoDescripción
time_horizon_monthsnumberno12Meses de proyección del CLV. Número positivo.
discount_ratenumberno0.01Tasa de descuento mensual de la anualidad en VPN, entre 0 (inclusivo) y 1 (exclusivo).

Columnas de data[]

ColumnaTipoObligatoriaDescripción
customer_idstringIdentificador único del cliente. Al menos 2 clientes distintos.
purchase_datestringFecha de cada transacción de compra.
amountnumberMonto de la transacción. Al menos un monto positivo.

Respuesta

En modo asíncrono (por defecto), 202 Accepted con {"process_uuid", "result_url"}; el resultado sale en GET /api/v1/results/{process_uuid}. Con ?sync=true o ?dry_run=true la respuesta es 200 con el resultado inline (y 504 con el process_uuid si el worker no responde a tiempo).

Errores

  • 403 - la engine no está en allowed_engines de tu suscripción.
  • 413 - subida por encima de max_upload_mb.
  • 422 - engine desconocida o inactiva en el catálogo.
  • 429 - cuota diaria (max_jobs_per_day) o por minuto excedida.

La validación es fail-fast: un envío rechazado no tiene ningún efecto secundario.

Probar solicitudOPENAPI
POST
https://intelligence.echosistema.live/api/v1/customer_clv/process?dry_run=true&playground=true
AUTENTICACIÓN
X-TENANT-KEY
QUERY PARAMS
sync
dry_run
playground
REQUEST BODY · JSON
Envía la solicitud para ver la respuesta.
curl
curl -X POST "https://intelligence.echosistema.live/api/v1/customer_clv/process?dry_run=true&playground=true" \
  -H "X-TENANT-KEY: $TENANT_KEY"

Features de CLV

Compartir
POST/api/v1/customer_clv_features/process
Engine
customer_clv_features
Grupo
customer_intelligence
Auth
X-TENANT-KEY | Authorization: Bearer
Entrada
JSON inline (data[]) o archivo .json/.csv/.parquet vía multipart/form-data
Modos
asíncrono (202) · ?sync=true (200) · ?dry_run=true (200, efímero)

Propósito

Extracción de features BG/NBD + Gamma-Gamma por cliente (frecuencia, recencia, T, valor monetario) para modelado de CLV.

¿Por qué? Extrae, por cliente, las features canónicas para modelar Customer Lifetime Value en los frameworks BG/NBD y Gamma-Gamma. Entrega frequency, recency, T, monetary_value, totales de transacciones y de gasto, y estadísticas de intervalo entre compras, además de un resumen de la base con promedios de las features y el conteo de compradores de una sola compra frente a recurrentes. Es el paso de preparación que deja los datos transaccionales listos para cualquier motor de predicción de CLV.

¿Cómo? Siguiendo la convención BG/NBD, frequency es el total de transacciones menos 1 (la primera compra se excluye), recency son los días entre la primera y la última compra, y T es la edad del cliente desde la primera compra hasta la fecha de referencia. monetary_value es el promedio de los montos de compra, acompañado de los totales de transacciones y de gasto. Para clientes con dos o más compras se calcula además el promedio y la desviación estándar de los intervalos entre compras consecutivas.

Origen Las definiciones siguen a Fader y Hardie (2005), "Counting Your Customers the Easy Way: An Alternative to the Pareto/NBD Model", publicado en Marketing Science, y a Fader y Hardie (2013), "The Gamma-Gamma Model of Monetary Value".

Literatura de referencia

  • Fader, P. S. & Hardie, B. G. S. (2005). "Counting Your Customers the Easy Way: An Alternative to the Pareto/NBD Model." Marketing Science, 24(2), 275-284.
  • Fader, P. S. & Hardie, B. G. S. (2013). "The Gamma-Gamma Model of Monetary Value." Working paper.

Parámetros (params)

CampoTipoObligatorioPor defectoDescripción
reference_datestringnoFecha ISO (YYYY-MM-DD) usada como referencia para recencia/T. Por defecto: el mayor purchase_date de los datos.

Columnas de data[]

ColumnaTipoObligatoriaDescripción
customer_idstringIdentificador único del cliente.
purchase_datestringFecha de cada transacción de compra.
amountnumberMonto de la transacción.

Respuesta

En modo asíncrono (por defecto), 202 Accepted con {"process_uuid", "result_url"}; el resultado sale en GET /api/v1/results/{process_uuid}. Con ?sync=true o ?dry_run=true la respuesta es 200 con el resultado inline (y 504 con el process_uuid si el worker no responde a tiempo).

Errores

  • 403 - la engine no está en allowed_engines de tu suscripción.
  • 413 - subida por encima de max_upload_mb.
  • 422 - engine desconocida o inactiva en el catálogo.
  • 429 - cuota diaria (max_jobs_per_day) o por minuto excedida.

La validación es fail-fast: un envío rechazado no tiene ningún efecto secundario.

Probar solicitudOPENAPI
POST
https://intelligence.echosistema.live/api/v1/customer_clv_features/process?dry_run=true&playground=true
AUTENTICACIÓN
X-TENANT-KEY
QUERY PARAMS
sync
dry_run
playground
REQUEST BODY · JSON
Envía la solicitud para ver la respuesta.
curl
curl -X POST "https://intelligence.echosistema.live/api/v1/customer_clv_features/process?dry_run=true&playground=true" \
  -H "X-TENANT-KEY: $TENANT_KEY"

Migración de segmentos

Compartir
POST/api/v1/customer_migration/process
Engine
customer_migration
Grupo
customer_intelligence
Auth
X-TENANT-KEY | Authorization: Bearer
Entrada
JSON inline (data[]) o archivo .json/.csv/.parquet vía multipart/form-data
Modos
asíncrono (202) · ?sync=true (200) · ?dry_run=true (200, efímero)

Propósito

Matriz de transición de segmentos entre los dos períodos más recientes, con estado estacionario y proyección multi-período.

Compara el segmento de cada cliente (ej.: tier RFM) entre los dos últimos períodos presentes en los datos, construye una matriz de conteos/probabilidades de transición, clasifica a cada cliente como upgrade/downgrade/stable/churned/new y calcula la distribución de estado estacionario de la cadena de Markov más una proyección futura de project_periods pasos.

Parámetros (params)

CampoTipoObligatorioPor defectoDescripción
segment_columnstringno"rfm_tier"Nombre de la columna con la etiqueta de segmento del cliente en cada período.
segment_orderarrayno[]Lista ordenada explícita de segmentos (usada para clasificar transiciones como upgrade vs downgrade). Derivada de los valores observados (orden alfabético) cuando se omite.
project_periodsintegerno3Número de períodos futuros de proyección de la distribución de segmentos usando la matriz de transición.

Columnas de data[]

ColumnaTipoObligatoriaDescripción
customer_idstringIdentificador único del cliente.
periodstringEtiqueta del período (ej.: '2026-Q1'). Al menos 2 períodos distintos; solo se comparan los dos más recientes.
rfm_tierstringEtiqueta de segmento del cliente en ese período. El nombre de la columna debe coincidir con el param segment_column (por defecto 'rfm_tier').

Respuesta

En modo asíncrono (por defecto), 202 Accepted con {"process_uuid", "result_url"}; el resultado sale en GET /api/v1/results/{process_uuid}. Con ?sync=true o ?dry_run=true la respuesta es 200 con el resultado inline (y 504 con el process_uuid si el worker no responde a tiempo).

Errores

  • 403 - la engine no está en allowed_engines de tu suscripción.
  • 413 - subida por encima de max_upload_mb.
  • 422 - engine desconocida o inactiva en el catálogo.
  • 429 - cuota diaria (max_jobs_per_day) o por minuto excedida.

La validación es fail-fast: un envío rechazado no tiene ningún efecto secundario.

Probar solicitudOPENAPI
POST
https://intelligence.echosistema.live/api/v1/customer_migration/process?dry_run=true&playground=true
AUTENTICACIÓN
X-TENANT-KEY
QUERY PARAMS
sync
dry_run
playground
REQUEST BODY · JSON
Envía la solicitud para ver la respuesta.
curl
curl -X POST "https://intelligence.echosistema.live/api/v1/customer_migration/process?dry_run=true&playground=true" \
  -H "X-TENANT-KEY: $TENANT_KEY"

Velocidad de engagement

Compartir
POST/api/v1/engagement_velocity/process
Engine
engagement_velocity
Grupo
customer_intelligence
Auth
X-TENANT-KEY | Authorization: Bearer
Entrada
JSON inline (data[]) o archivo .json/.csv/.parquet vía multipart/form-data
Modos
asíncrono (202) · ?sync=true (200) · ?dry_run=true (200, efímero)

Propósito

Velocidad y aceleración de engagement del cliente a partir de la cadencia de eventos y el gasto.

Para cada cliente, calcula la velocidad (1ª derivada) y la aceleración (2ª derivada) de los intervalos entre eventos y de los montos de las transacciones, clasifica al cliente en un cuadrante de engagement (stable, accelerating, decelerating, recovering, freefall) y asigna un score de momentum y una etiqueta de riesgo.

Parámetros (params)

CampoTipoObligatorioPor defectoDescripción
modestringno"ecommerce"Modo de interpretación de los eventos: "ecommerce" o "lms".
reference_datestringnoFecha de referencia (YYYY-MM-DD) para calcular days_since_last. Por defecto: hoy.
window_daysintegerno30Tamaño de la ventana en días usado como unidad base de los umbrales de la etiqueta de riesgo.
min_eventsintegerno3Mínimo de eventos que el cliente necesita para que velocidad/aceleración se calculen; por debajo el cliente queda marcado insufficient_data.

Columnas de data[]

ColumnaTipoObligatoriaDescripción
customer_idstringIdentificador del cliente.
event_datestringFecha del evento de engagement (YYYY-MM-DD).
amountnumberMonto de transacción o engagement asociado al evento.

Respuesta

En modo asíncrono (por defecto), 202 Accepted con {"process_uuid", "result_url"}; el resultado sale en GET /api/v1/results/{process_uuid}. Con ?sync=true o ?dry_run=true la respuesta es 200 con el resultado inline (y 504 con el process_uuid si el worker no responde a tiempo).

Errores

  • 403 - la engine no está en allowed_engines de tu suscripción.
  • 413 - subida por encima de max_upload_mb.
  • 422 - engine desconocida o inactiva en el catálogo.
  • 429 - cuota diaria (max_jobs_per_day) o por minuto excedida.

La validación es fail-fast: un envío rechazado no tiene ningún efecto secundario.

Probar solicitudOPENAPI
POST
https://intelligence.echosistema.live/api/v1/engagement_velocity/process?dry_run=true&playground=true
AUTENTICACIÓN
X-TENANT-KEY
QUERY PARAMS
sync
dry_run
playground
REQUEST BODY · JSON
Envía la solicitud para ver la respuesta.
curl
curl -X POST "https://intelligence.echosistema.live/api/v1/engagement_velocity/process?dry_run=true&playground=true" \
  -H "X-TENANT-KEY: $TENANT_KEY"

Features de clientes

Compartir
POST/api/v1/features/process
Engine
features
Grupo
customer_intelligence
Auth
X-TENANT-KEY | Authorization: Bearer
Entrada
JSON inline (data[]) o archivo .json/.csv/.parquet vía multipart/form-data
Modos
asíncrono (202) · ?sync=true (200) · ?dry_run=true (200, efímero)

Propósito

Ingeniería de features por cliente a partir del historial bruto de compras.

¿Por qué? Transforma datos transaccionales crudos en un perfil de comportamiento por cliente, eliminando el trabajo manual de feature engineering. Produce una matriz de una fila por cliente con 10 métricas de ingeniería en cuatro dimensiones: volumen, temporal, frecuencia y diversidad de productos. La matriz está diseñada para alimentar modelos downstream como predicción de churn, segmentación y CLV, y viene acompañada de un resumen de la base con promedios de gasto y de transacciones por cliente.

¿Cómo? Por cliente, calcula seis métricas de volumen (conteo, suma, promedio, máximo, mínimo y desviación estándar muestral de las transacciones) y dos temporales (días desde la primera y desde la última compra respecto de la fecha de referencia). El intervalo promedio entre compras consecutivas cubre la dimensión de frecuencia, con valor cero para quien tiene una sola transacción. La diversidad es el conteo de productos distintos, calculado cuando la columna product_id está presente.

Origen La práctica sigue a Kuhn y Johnson (2019), "Feature Engineering and Selection: A Practical Approach for Predictive Models", publicado por CRC Press.

Literatura de referencia

  • Kuhn, M. & Johnson, K. (2019). "Feature Engineering and Selection: A Practical Approach for Predictive Models." CRC Press.

Parámetros (params)

CampoTipoObligatorioPor defectoDescripción
reference_datestringnoFecha de referencia (YYYY-MM-DD) para days_since_first/days_since_last. Por defecto: hoy.

Columnas de data[]

ColumnaTipoObligatoriaDescripción
customer_idstringIdentificador del cliente.
purchase_datestringFecha de la compra (YYYY-MM-DD).
amountnumberMonto de la transacción.

Respuesta

En modo asíncrono (por defecto), 202 Accepted con {"process_uuid", "result_url"}; el resultado sale en GET /api/v1/results/{process_uuid}. Con ?sync=true o ?dry_run=true la respuesta es 200 con el resultado inline (y 504 con el process_uuid si el worker no responde a tiempo).

Errores

  • 403 - la engine no está en allowed_engines de tu suscripción.
  • 413 - subida por encima de max_upload_mb.
  • 422 - engine desconocida o inactiva en el catálogo.
  • 429 - cuota diaria (max_jobs_per_day) o por minuto excedida.

La validación es fail-fast: un envío rechazado no tiene ningún efecto secundario.

Probar solicitudOPENAPI
POST
https://intelligence.echosistema.live/api/v1/features/process?dry_run=true&playground=true
AUTENTICACIÓN
X-TENANT-KEY
QUERY PARAMS
sync
dry_run
playground
REQUEST BODY · JSON
Envía la solicitud para ver la respuesta.
curl
curl -X POST "https://intelligence.echosistema.live/api/v1/features/process?dry_run=true&playground=true" \
  -H "X-TENANT-KEY: $TENANT_KEY"

Fidelidad

Compartir
POST/api/v1/loyalty/process
Engine
loyalty
Grupo
customer_intelligence
Auth
X-TENANT-KEY | Authorization: Bearer
Entrada
JSON inline (data[]) o archivo .json/.csv/.parquet vía multipart/form-data
Modos
asíncrono (202) · ?sync=true (200) · ?dry_run=true (200, efímero)

Propósito

Score de fidelidad en tiers vía normalización MinMax ponderada de 5 métricas del cliente.

¿Por qué? Calcula un índice compuesto de fidelidad por cliente para sustentar programas de fidelidad, beneficios por tier y alertas sobre clientes valiosos en riesgo. Combina cinco métricas de comportamiento en un score ponderado: total de compras (peso 0.30), frecuencia de visitas (0.25), ticket promedio (0.10), diversidad de productos (0.10) y recencia (0.25), con pesos configurables. Cada cliente recibe el score final en [0, 1] y uno de cinco tiers: Platinum (>= 0.80), Gold (>= 0.60), Silver (>= 0.40), Bronze (>= 0.20) y At-Risk (< 0.20).

¿Cómo? Extrae por cliente el total de compras, la frecuencia de visitas, el ticket promedio, la diversidad de productos y los días desde la última compra. Cada métrica se normaliza a [0, 1] vía MinMax, con la recencia invertida (cuanto más reciente, mejor) y valor 0.5 cuando máximo y mínimo coinciden. La suma ponderada, con pesos normalizados para sumar 1.0, genera el score final acotado a [0, 1], y umbrales fijos definen los cinco tiers.

Origen La inspiración conceptual es Sharp (2010), "How Brands Grow", publicado por Oxford University Press.

Literatura de referencia

  • Sharp, B. (2010). "How Brands Grow." Oxford University Press.

Parámetros (params)

CampoTipoObligatorioPor defectoDescripción
weightsobjectno{"purchase_total":0.3,"visit_frequency":0.25,"avg_ticket":0.1,"product_diversity":0.1,"recency_days":0.25}Pesos de las 5 métricas de fidelidad (purchase_total, visit_frequency, avg_ticket, product_diversity, recency_days); normalizados internamente para sumar 1.0.
reference_datestringnoFecha de referencia (YYYY-MM-DD) para recency_days. Por defecto: hoy.

Columnas de data[]

ColumnaTipoObligatoriaDescripción
customer_idstringIdentificador del cliente.
purchase_datestringFecha de la compra (YYYY-MM-DD).
amountnumberMonto de la transacción.

Respuesta

En modo asíncrono (por defecto), 202 Accepted con {"process_uuid", "result_url"}; el resultado sale en GET /api/v1/results/{process_uuid}. Con ?sync=true o ?dry_run=true la respuesta es 200 con el resultado inline (y 504 con el process_uuid si el worker no responde a tiempo).

Errores

  • 403 - la engine no está en allowed_engines de tu suscripción.
  • 413 - subida por encima de max_upload_mb.
  • 422 - engine desconocida o inactiva en el catálogo.
  • 429 - cuota diaria (max_jobs_per_day) o por minuto excedida.

La validación es fail-fast: un envío rechazado no tiene ningún efecto secundario.

Probar solicitudOPENAPI
POST
https://intelligence.echosistema.live/api/v1/loyalty/process?dry_run=true&playground=true
AUTENTICACIÓN
X-TENANT-KEY
QUERY PARAMS
sync
dry_run
playground
REQUEST BODY · JSON
Envía la solicitud para ver la respuesta.
curl
curl -X POST "https://intelligence.echosistema.live/api/v1/loyalty/process?dry_run=true&playground=true" \
  -H "X-TENANT-KEY: $TENANT_KEY"

NPS

Compartir
POST/api/v1/nps/process
Engine
nps
Grupo
customer_intelligence
Auth
X-TENANT-KEY | Authorization: Bearer
Entrada
JSON inline (data[]) o archivo .json/.csv/.parquet vía multipart/form-data
Modos
asíncrono (202) · ?sync=true (200) · ?dry_run=true (200, efímero)

Propósito

Net Promoter Score calculado a partir de respuestas 0-10 de encuesta.

¿Por qué? Mide lealtad y satisfacción con la métrica clásica de Net Promoter Score, a partir de la pregunta "del 0 al 10, ¿qué tan probable es que recomiendes nuestro producto o servicio?". Entrega el NPS global entre -100 y +100 con clasificación cualitativa, el conteo de promotores, pasivos y detractores, la clasificación individual de cada encuestado y, con group_by, el NPS por cualquier dimensión, como producto, categoría o región. Permite comparar la satisfacción entre líneas de negocio y seguir la evolución de la lealtad de la base.

¿Cómo? Cada respuesta se clasifica por el score: 9 o 10 es promotor, 7 u 8 es pasivo, 6 o menos es detractor. El NPS es la diferencia entre promotores y detractores dividida por el total de respuestas, por 100; los pasivos cuentan en el denominador pero no en el numerador. El valor recibe una franja cualitativa (>= 70 Excelente, >= 50 Muy Bueno, >= 30 Bueno, >= 0 Necesita Mejorar, debajo de 0 Crítico) y, cuando hay agrupamiento, la misma fórmula se aplica de forma independiente a cada grupo.

Origen La métrica fue propuesta por Reichheld (2003) en "The One Number You Need to Grow", publicado en Harvard Business Review.

Literatura de referencia

  • Reichheld, F. F. (2003). "The One Number You Need to Grow." Harvard Business Review, 81(12), 46-54.

Parámetros (params)

CampoTipoObligatorioPor defectoDescripción
group_bystringnoNombre de una columna adicional para agrupar las respuestas en un detalle de NPS por grupo.

Columnas de data[]

ColumnaTipoObligatoriaDescripción
customer_idstringIdentificador del cliente.
answerintegerRespuesta de la encuesta en escala 0-10. Los valores fuera de rango se ignoran.

Respuesta

En modo asíncrono (por defecto), 202 Accepted con {"process_uuid", "result_url"}; el resultado sale en GET /api/v1/results/{process_uuid}. Con ?sync=true o ?dry_run=true la respuesta es 200 con el resultado inline (y 504 con el process_uuid si el worker no responde a tiempo).

Errores

  • 403 - la engine no está en allowed_engines de tu suscripción.
  • 413 - subida por encima de max_upload_mb.
  • 422 - engine desconocida o inactiva en el catálogo.
  • 429 - cuota diaria (max_jobs_per_day) o por minuto excedida.

La validación es fail-fast: un envío rechazado no tiene ningún efecto secundario.

Probar solicitudOPENAPI
POST
https://intelligence.echosistema.live/api/v1/nps/process?dry_run=true&playground=true
AUTENTICACIÓN
X-TENANT-KEY
QUERY PARAMS
sync
dry_run
playground
REQUEST BODY · JSON
Envía la solicitud para ver la respuesta.
curl
curl -X POST "https://intelligence.echosistema.live/api/v1/nps/process?dry_run=true&playground=true" \
  -H "X-TENANT-KEY: $TENANT_KEY"

Segmentos de compra

Compartir
POST/api/v1/purchasing_segment/process
Engine
purchasing_segment
Grupo
customer_intelligence
Auth
X-TENANT-KEY | Authorization: Bearer
Entrada
JSON inline (data[]) o archivo .json/.csv/.parquet vía multipart/form-data
Modos
asíncrono (202) · ?sync=true (200) · ?dry_run=true (200, efímero)

Propósito

Segmentación de comportamiento de compra vía clustering multi-algoritmo con aceleración dedicada.

¿Por qué? Segmentación conductual de compras con aceleración dedicada, orientada a e-commerce, para guiar campañas por perfil de compra e identificar clientes en riesgo. Asigna a cada cliente un segmento con nombre (como Premium Tech Enthusiasts o At-Risk Low Spenders) y entrega perfiles con promedios de compras, ticket, recencia, frecuencia de compra y categorías predominantes. El número de segmentos puede fijarse o detectarse automáticamente.

¿Cómo? Primero construye features al estilo RFM por cliente: recencia, frecuencia, valor monetario, diversidad de productos, ticket promedio y similares. Luego clusteriza con K-Means y DBSCAN sobre aceleración dedicada. El mejor resultado se selecciona automáticamente por silhouette score.

Origen Las raíces del método están en MacQueen (1967), "Some Methods for Classification and Analysis of Multivariate Observations", que formalizó K-Means, y en Bult y Wansbeek (1995), "Optimal Selection for Direct Mail", de Marketing Science, base de la segmentación por comportamiento de compra.

Literatura de referencia

  • MacQueen, J. (1967). "Some Methods for Classification and Analysis of Multivariate Observations."
  • Bult, J. R. & Wansbeek, T. (1995). "Optimal Selection for Direct Mail." Marketing Science.

Parámetros (params)

CampoTipoObligatorioPor defectoDescripción
algorithmstringno"auto"Algoritmo de clustering: "auto" (corre kmeans y dbscan, elige el mejor por silhouette), "kmeans" o "dbscan".
n_segmentsintegernoNúmero de segmentos de K-Means. Determinado automáticamente por análisis elbow/silhouette cuando se omite. >= 2 si se informa.
max_segmentsintegerno8K máximo evaluado en la determinación automática de n_segments.
random_stateintegerno42Semilla aleatoria para reproducibilidad del clustering y del muestreo.

Columnas de data[]

ColumnaTipoObligatoriaDescripción
customer_idstringIdentificador del cliente.
product_idstringIdentificador del producto, usado en la diversidad de productos únicos por cliente.
amountnumberMonto de la transacción.

Respuesta

En modo asíncrono (por defecto), 202 Accepted con {"process_uuid", "result_url"}; el resultado sale en GET /api/v1/results/{process_uuid}. Con ?sync=true o ?dry_run=true la respuesta es 200 con el resultado inline (y 504 con el process_uuid si el worker no responde a tiempo).

Errores

  • 403 - la engine no está en allowed_engines de tu suscripción.
  • 413 - subida por encima de max_upload_mb.
  • 422 - engine desconocida o inactiva en el catálogo.
  • 429 - cuota diaria (max_jobs_per_day) o por minuto excedida.

La validación es fail-fast: un envío rechazado no tiene ningún efecto secundario.

Probar solicitudOPENAPI
POST
https://intelligence.echosistema.live/api/v1/purchasing_segment/process?dry_run=true&playground=true
AUTENTICACIÓN
X-TENANT-KEY
QUERY PARAMS
sync
dry_run
playground
REQUEST BODY · JSON
Envía la solicitud para ver la respuesta.
curl
curl -X POST "https://intelligence.echosistema.live/api/v1/purchasing_segment/process?dry_run=true&playground=true" \
  -H "X-TENANT-KEY: $TENANT_KEY"

RFM

Compartir
POST/api/v1/rfm/process
Engine
rfm
Grupo
customer_intelligence
Auth
X-TENANT-KEY | Authorization: Bearer
Entrada
JSON inline (data[]) o archivo .json/.csv/.parquet vía multipart/form-data
Modos
asíncrono (202) · ?sync=true (200) · ?dry_run=true (200, efímero)

Propósito

Segmentación RFM (Recencia, Frecuencia, Monetario) de clientes vía score por cuantiles.

¿Por qué? Segmenta la base de clientes según las tres dimensiones clásicas del comportamiento de compra: Recencia (cuándo fue la última compra), Frecuencia (cuántas veces compró el cliente) y Monetario (cuánto gastó en total). Entrega, por cliente, los scores R, F y M, la clase concatenada (por ejemplo 543), el score RFM total y un tier accionable: Champion, Loyal, Potential Loyalist, Needs Attention o At Risk, junto con la distribución de tiers de la base. Es la forma más directa de priorizar campañas de retención, reactivación y ofertas segmentadas sin entrenar ningún modelo.

¿Cómo? Agrega las transacciones por cliente: R como días desde la última compra, F como conteo de transacciones y M como suma de los montos. Cada dimensión se discretiza en scores de 1 a N mediante cuantiles con interpolación lineal, con F y M crecientes (mayor es mejor) y R invertido (menor es mejor). El tier surge de franjas porcentuales sobre el máximo posible del score combinado: Champion >= 80%, Loyal >= 60%, Potential Loyalist >= 40%, Needs Attention >= 25% y At Risk por debajo.

Origen El método se apoya en Bult y Wansbeek (1995), "Optimal Selection for Direct Mail", publicado en Marketing Science, referencia clásica de la selección de clientes por RFM en el marketing directo.

Literatura de referencia

  • Bult & Wansbeek (1995). "Optimal Selection for Direct Mail." Marketing Science, 14(4), 378-394.

Parámetros (params)

CampoTipoObligatorioPor defectoDescripción
binsintegerno5Número de rangos de score por cuantil (2-20). 5 da scores RFM por quintiles.
reference_datestringnoFecha de referencia (YYYY-MM-DD) para recency_days. Por defecto: hoy.

Columnas de data[]

ColumnaTipoObligatoriaDescripción
customer_idstringIdentificador del cliente.
purchase_datestringFecha de la compra (YYYY-MM-DD).
amountnumberMonto de la transacción, sumado en la métrica monetaria.

Respuesta

En modo asíncrono (por defecto), 202 Accepted con {"process_uuid", "result_url"}; el resultado sale en GET /api/v1/results/{process_uuid}. Con ?sync=true o ?dry_run=true la respuesta es 200 con el resultado inline (y 504 con el process_uuid si el worker no responde a tiempo).

Errores

  • 403 - la engine no está en allowed_engines de tu suscripción.
  • 413 - subida por encima de max_upload_mb.
  • 422 - engine desconocida o inactiva en el catálogo.
  • 429 - cuota diaria (max_jobs_per_day) o por minuto excedida.

La validación es fail-fast: un envío rechazado no tiene ningún efecto secundario.

Probar solicitudOPENAPI
POST
https://intelligence.echosistema.live/api/v1/rfm/process?dry_run=true&playground=true
AUTENTICACIÓN
X-TENANT-KEY
QUERY PARAMS
sync
dry_run
playground
REQUEST BODY · JSON
Envía la solicitud para ver la respuesta.
curl
curl -X POST "https://intelligence.echosistema.live/api/v1/rfm/process?dry_run=true&playground=true" \
  -H "X-TENANT-KEY: $TENANT_KEY"

Segmentación genérica

Compartir
POST/api/v1/segment/process
Engine
segment
Grupo
customer_intelligence
Auth
X-TENANT-KEY | Authorization: Bearer
Entrada
JSON inline (data[]) o archivo .json/.csv/.parquet vía multipart/form-data
Modos
asíncrono (202) · ?sync=true (200) · ?dry_run=true (200, efímero)

Propósito

Segmentación genérica de clientes vía clustering multi-algoritmo con aceleración dedicada.

¿Por qué? Segmentación de clientes con aceleración dedicada, indicada para bases voluminosas donde el clustering debe ejecutarse rápido sin sacrificar calidad estadística. Entrega la asignación de cluster por cliente, los centros de los grupos, el silhouette por muestra, el índice Davies-Bouldin y etiquetas interpretables para cada segmento (por ejemplo VIP, Regular, Inactivo). El número óptimo de clusters se determina automáticamente.

¿Cómo? Ejecuta múltiples algoritmos de clustering (K-Means, DBSCAN, jerárquico y GMM) sobre aceleración dedicada, con PCA para reducción de dimensionalidad. El mejor algoritmo y el número de clusters se seleccionan por silhouette score. Cuando la aceleración no está disponible, una contingencia automática de procesamiento asume la ejecución.

Origen Los algoritmos se remontan a MacQueen (1967), "Some Methods for Classification and Analysis of Multivariate Observations", que formalizó K-Means, y a Ester et al. (1996), "A Density-Based Algorithm for Discovering Clusters", de KDD, que introdujo DBSCAN.

Literatura de referencia

  • MacQueen, J. (1967). "Some Methods for Classification and Analysis of Multivariate Observations."
  • Ester, M. et al. (1996). "A Density-Based Algorithm for Discovering Clusters." KDD.

Parámetros (params)

CampoTipoObligatorioPor defectoDescripción
algorithmstringno"auto"Algoritmo de clustering: "auto", "kmeans", "dbscan", "hierarchical" o "gmm".
n_clustersintegernoNúmero de clusters. Determinado automáticamente por análisis elbow/silhouette cuando se omite (no lo usa dbscan). >= 2 si se informa.
max_clustersintegerno10K máximo evaluado en la determinación automática de n_clusters.
featuresarraynoLista explícita de columnas usadas como features de clustering. Por defecto: toda columna numérica excepto customer_id/id/user_id.
scale_methodstringno"standard"Método de escalado de features: "standard" o "minmax".
handle_outliersstringno"clip"Estrategia para outliers por feature (basada en IQR): "clip", "remove" o "none".
outlier_thresholdnumberno1.5Multiplicador de IQR que define los límites de outlier.
pca_variancenumbernoRazón de varianza explicada objetivo (0-1) de la reducción por PCA antes del clustering. Saltada cuando se omite.
random_stateintegerno42Semilla aleatoria para reproducibilidad de clustering, muestreo y PCA.
dbscan_epsnumbernoEpsilon de DBSCAN (radio de vecindario). Estimado automáticamente cuando se omite.
dbscan_min_samplesintegerno5Mínimo de muestras por vecindario en DBSCAN.
linkage_methodstringno"ward"Método de linkage del clustering jerárquico: "ward", "complete", "average" o "single".

Columnas de data[]

El spec de esta engine no declara columnas fijas: consulta el ejemplo abajo.

Respuesta

En modo asíncrono (por defecto), 202 Accepted con {"process_uuid", "result_url"}; el resultado sale en GET /api/v1/results/{process_uuid}. Con ?sync=true o ?dry_run=true la respuesta es 200 con el resultado inline (y 504 con el process_uuid si el worker no responde a tiempo).

Errores

  • 403 - la engine no está en allowed_engines de tu suscripción.
  • 413 - subida por encima de max_upload_mb.
  • 422 - engine desconocida o inactiva en el catálogo.
  • 429 - cuota diaria (max_jobs_per_day) o por minuto excedida.

La validación es fail-fast: un envío rechazado no tiene ningún efecto secundario.

Probar solicitudOPENAPI
POST
https://intelligence.echosistema.live/api/v1/segment/process?dry_run=true&playground=true
AUTENTICACIÓN
X-TENANT-KEY
QUERY PARAMS
sync
dry_run
playground
REQUEST BODY · JSON
Envía la solicitud para ver la respuesta.
curl
curl -X POST "https://intelligence.echosistema.live/api/v1/segment/process?dry_run=true&playground=true" \
  -H "X-TENANT-KEY: $TENANT_KEY"

Perfiles de clusters

Compartir
POST/api/v1/segment_cluster_profiles/process
Engine
segment_cluster_profiles
Grupo
customer_intelligence
Auth
X-TENANT-KEY | Authorization: Bearer
Entrada
JSON inline (data[]) o archivo .json/.csv/.parquet vía multipart/form-data
Modos
asíncrono (202) · ?sync=true (200) · ?dry_run=true (200, efímero)

Propósito

Perfil estadístico y features discriminantes de cada cluster de clientes ya calculado.

¿Por qué? Genera perfiles estadísticos que explican qué diferencia a cada cluster de una segmentación, volviendo interpretables y nombrables los clusters numéricos. Entrega estadísticas globales y por cluster para cada feature, Z-scores discriminantes, el ranking de las features que más distinguen a cada grupo y una identidad descriptiva por cluster, como "High revenue, Low recency, High frequency". Esencial para interpretar y nombrar la salida de cualquier motor de segmentación.

¿Cómo? Calcula promedio, mediana y desviación estándar de cada feature numérica, a nivel global y por cluster. El Z-score discriminante mide a cuántas desviaciones estándar está el promedio del cluster respecto del promedio global, con dirección clasificada como por encima del promedio (z > +0.5), por debajo (z < -0.5) o en el promedio. Las features se rankean por |Z-score| descendente, las top N (5 por defecto) entran en la identidad, y la cadena descriptiva concatena "High/Low" por feature según el signo.

Origen El trasfondo es Jain (2010), "Data Clustering: 50 Years Beyond K-Means", publicado en Pattern Recognition Letters.

Literatura de referencia

  • Jain, A. K. (2010). "Data Clustering: 50 Years Beyond K-Means." Pattern Recognition Letters, 31(8), 651-666.

Parámetros (params)

CampoTipoObligatorioPor defectoDescripción
top_featuresintegerno5Cantidad de features discriminantes (por z-score absoluto) reportadas por cluster.

Columnas de data[]

ColumnaTipoObligatoriaDescripción
cluster_labelstringIdentificador del cluster al que la fila ya pertenece (ej.: salida de una engine de clustering previa).

Respuesta

En modo asíncrono (por defecto), 202 Accepted con {"process_uuid", "result_url"}; el resultado sale en GET /api/v1/results/{process_uuid}. Con ?sync=true o ?dry_run=true la respuesta es 200 con el resultado inline (y 504 con el process_uuid si el worker no responde a tiempo).

Errores

  • 403 - la engine no está en allowed_engines de tu suscripción.
  • 413 - subida por encima de max_upload_mb.
  • 422 - engine desconocida o inactiva en el catálogo.
  • 429 - cuota diaria (max_jobs_per_day) o por minuto excedida.

La validación es fail-fast: un envío rechazado no tiene ningún efecto secundario.

Probar solicitudOPENAPI
POST
https://intelligence.echosistema.live/api/v1/segment_cluster_profiles/process?dry_run=true&playground=true
AUTENTICACIÓN
X-TENANT-KEY
QUERY PARAMS
sync
dry_run
playground
REQUEST BODY · JSON
Envía la solicitud para ver la respuesta.
curl
curl -X POST "https://intelligence.echosistema.live/api/v1/segment_cluster_profiles/process?dry_run=true&playground=true" \
  -H "X-TENANT-KEY: $TENANT_KEY"

Reporte de segmentación

Compartir
POST/api/v1/segmentation_report/process
Engine
segmentation_report
Grupo
customer_intelligence
Auth
X-TENANT-KEY | Authorization: Bearer
Entrada
JSON inline (data[]) o archivo .json/.csv/.parquet vía multipart/form-data
Modos
asíncrono (202) · ?sync=true (200) · ?dry_run=true (200, efímero)

Propósito

Reporte consolidado de la distribución de clientes y métricas entre segmentos existentes.

¿Por qué? Consolida asignaciones cliente-segmento en un informe ejecutivo: cuánto vale cada segmento y cómo la base migra entre ellos. Entrega la distribución por segmento (conteo y porcentaje), agregados estadísticos de cada métrica numérica por segmento, el segmento líder según la métrica primaria y, opcionalmente, la matriz de migración entre segmentos anteriores y actuales. Es la fotografía lista para reuniones de negocio sobre cualquier segmentación ya calculada.

¿Cómo? Para cada segmento calcula conteo y porcentaje de clientes, y para cada métrica numérica agrega suma, promedio, mediana, mínimo, máximo y desviación estándar. El top segmento es el de mayor suma en la métrica primaria. Cuando se proporciona el mapa previous_segments, construye la matriz de migración contando las transiciones de segmento antiguo a nuevo, con los clientes sin segmento anterior rastreados como new.

Origen El marco conceptual es Wedel y Kamakura (2000), "Market Segmentation: Conceptual and Methodological Foundations", publicado por Springer.

Literatura de referencia

  • Wedel, M. & Kamakura, W. A. (2000). "Market Segmentation: Conceptual and Methodological Foundations." Springer.

Parámetros (params)

CampoTipoObligatorioPor defectoDescripción
metricsarraynoLista de columnas numéricas a agregar por segmento. Por defecto: toda columna numérica excepto customer_id y segment.
previous_segmentsobjectnoMapa {"customer_id": "segmento_anterior"} usado para calcular la matriz de migración contra los segmentos actuales.

Columnas de data[]

ColumnaTipoObligatoriaDescripción
customer_idstringIdentificador del cliente.
segmentstringEtiqueta de segmento actual del cliente (ej.: proveniente de rfm o loyalty).

Respuesta

En modo asíncrono (por defecto), 202 Accepted con {"process_uuid", "result_url"}; el resultado sale en GET /api/v1/results/{process_uuid}. Con ?sync=true o ?dry_run=true la respuesta es 200 con el resultado inline (y 504 con el process_uuid si el worker no responde a tiempo).

Errores

  • 403 - la engine no está en allowed_engines de tu suscripción.
  • 413 - subida por encima de max_upload_mb.
  • 422 - engine desconocida o inactiva en el catálogo.
  • 429 - cuota diaria (max_jobs_per_day) o por minuto excedida.

La validación es fail-fast: un envío rechazado no tiene ningún efecto secundario.

Probar solicitudOPENAPI
POST
https://intelligence.echosistema.live/api/v1/segmentation_report/process?dry_run=true&playground=true
AUTENTICACIÓN
X-TENANT-KEY
QUERY PARAMS
sync
dry_run
playground
REQUEST BODY · JSON
Envía la solicitud para ver la respuesta.
curl
curl -X POST "https://intelligence.echosistema.live/api/v1/segmentation_report/process?dry_run=true&playground=true" \
  -H "X-TENANT-KEY: $TENANT_KEY"

Suscripciones & recurrencia

Compartir
POST/api/v1/subscription_engine/process
Engine
subscription_engine
Grupo
customer_intelligence
Auth
X-TENANT-KEY | Authorization: Bearer
Entrada
JSON inline (data[]) o archivo .json/.csv/.parquet vía multipart/form-data
Modos
asíncrono (202) · ?sync=true (200) · ?dry_run=true (200, efímero)

Propósito

Parámetros óptimos de suscripción/recurrencia por par cliente-producto.

Para cada par (customer_id, product_id) con historial suficiente, deriva la frecuencia ideal de entrega a partir de una media móvil ponderada de los intervalos de compra, arma una tabla progresiva de descuento por fidelidad, proyecta LTV a 3/6/12/24 meses, estima ingresos recurrentes mensuales y, cuando prescription_date está presente, calcula alertas de vencimiento de receta médica y recordatorios de renovación.

Parámetros (params)

CampoTipoObligatorioPor defectoDescripción
safety_factornumberno0.9Multiplicador aplicado a la media móvil ponderada de los intervalos para llegar antes (ej.: 0.9 = 10% antes).
base_discount_pctnumberno0Porcentaje de descuento aplicado en el mes 1 de la tabla de suscripción.
discount_increment_pctnumberno2.5Porcentaje de descuento agregado por mes calificado.
max_discount_pctnumberno20Techo del porcentaje progresivo de descuento.
prescription_validity_monthsintegerno6Meses de validez de una receta desde prescription_date.
prescription_alert_daysintegerno15Días antes del vencimiento de la receta en que se levanta el flag de alerta.
min_purchasesintegerno3Mínimo de compras para que un par cliente-producto sea analizado.
max_interval_daysintegerno120Los intervalos entre compras mayores a esto se excluyen de las estadísticas de intervalo.
ltv_projection_monthsintegerno12Horizonte adicional de proyección de LTV en meses (además de los puntos fijos de 3/6/12 meses).
reference_datestringnoFecha de referencia (YYYY-MM-DD) para los cálculos de vencimiento de receta. Por defecto: hoy.

Columnas de data[]

ColumnaTipoObligatoriaDescripción
customer_idstringIdentificador del cliente.
product_idstringIdentificador del producto.
purchase_datestringFecha de la compra (YYYY-MM-DD).
unit_pricenumberPrecio unitario del producto al momento de la compra.

Respuesta

En modo asíncrono (por defecto), 202 Accepted con {"process_uuid", "result_url"}; el resultado sale en GET /api/v1/results/{process_uuid}. Con ?sync=true o ?dry_run=true la respuesta es 200 con el resultado inline (y 504 con el process_uuid si el worker no responde a tiempo).

Errores

  • 403 - la engine no está en allowed_engines de tu suscripción.
  • 413 - subida por encima de max_upload_mb.
  • 422 - engine desconocida o inactiva en el catálogo.
  • 429 - cuota diaria (max_jobs_per_day) o por minuto excedida.

La validación es fail-fast: un envío rechazado no tiene ningún efecto secundario.

Probar solicitudOPENAPI
POST
https://intelligence.echosistema.live/api/v1/subscription_engine/process?dry_run=true&playground=true
AUTENTICACIÓN
X-TENANT-KEY
QUERY PARAMS
sync
dry_run
playground
REQUEST BODY · JSON
Envía la solicitud para ver la respuesta.
curl
curl -X POST "https://intelligence.echosistema.live/api/v1/subscription_engine/process?dry_run=true&playground=true" \
  -H "X-TENANT-KEY: $TENANT_KEY"

Supervivencia (Kaplan-Meier)

Compartir
POST/api/v1/survival_kaplan_meier/process
Engine
survival_kaplan_meier
Grupo
customer_intelligence
Auth
X-TENANT-KEY | Authorization: Bearer
Entrada
JSON inline (data[]) o archivo .json/.csv/.parquet vía multipart/form-data
Modos
asíncrono (202) · ?sync=true (200) · ?dry_run=true (200, efímero)

Propósito

Análisis de supervivencia Kaplan-Meier para estudios de vida útil del cliente / churn.

¿Por qué? Estima la función de supervivencia de los clientes para estudios de lifetime y churn, respondiendo cuánto duran los clientes y qué segmentos retienen mejor. Entrega la tabla de supervivencia con población en riesgo y probabilidad acumulada en cada tiempo, la supervivencia mediana, tasas en hitos como 1 y 3 años y, con stratify_by, curvas separadas por segmento o plan con comparación estadística entre grupos. Base sólida para políticas de retención y proyecciones de ingresos.

¿Cómo? Usa el estimador Kaplan-Meier (product-limit) para la función de supervivencia S(t), tratando correctamente las observaciones censuradas, los clientes que aún no hicieron churn. Los intervalos de confianza provienen de la varianza de Greenwood, y también se calcula la tasa de hazard instantánea h(t). El test log-rank verifica si la diferencia de supervivencia entre grupos es estadísticamente significativa.

Origen El método proviene de Kaplan y Meier (1958), "Nonparametric Estimation from Incomplete Observations", publicado en el Journal of the American Statistical Association.

Literatura de referencia

  • Kaplan, E. L. & Meier, P. (1958). "Nonparametric Estimation from Incomplete Observations." Journal of the American Statistical Association, 53(282), 457-481.

Parámetros (params)

CampoTipoObligatorioPor defectoDescripción
confidence_levelnumberno0.95Nivel de confianza (0.5-1.0) de los intervalos de Greenwood.
time_unitstringno"days"Granularidad del tiempo de supervivencia: "days", "weeks" o "months".

Columnas de data[]

ColumnaTipoObligatoriaDescripción
customer_idstringIdentificador único del cliente.
start_datestringFecha de alta del cliente / inicio de la suscripción (YYYY-MM-DD).

Respuesta

En modo asíncrono (por defecto), 202 Accepted con {"process_uuid", "result_url"}; el resultado sale en GET /api/v1/results/{process_uuid}. Con ?sync=true o ?dry_run=true la respuesta es 200 con el resultado inline (y 504 con el process_uuid si el worker no responde a tiempo).

Errores

  • 403 - la engine no está en allowed_engines de tu suscripción.
  • 413 - subida por encima de max_upload_mb.
  • 422 - engine desconocida o inactiva en el catálogo.
  • 429 - cuota diaria (max_jobs_per_day) o por minuto excedida.

La validación es fail-fast: un envío rechazado no tiene ningún efecto secundario.

Probar solicitudOPENAPI
POST
https://intelligence.echosistema.live/api/v1/survival_kaplan_meier/process?dry_run=true&playground=true
AUTENTICACIÓN
X-TENANT-KEY
QUERY PARAMS
sync
dry_run
playground
REQUEST BODY · JSON
Envía la solicitud para ver la respuesta.
curl
curl -X POST "https://intelligence.echosistema.live/api/v1/survival_kaplan_meier/process?dry_run=true&playground=true" \
  -H "X-TENANT-KEY: $TENANT_KEY"

Entrar

Usa tu cuenta EchoSistema para seguir tus integraciones.