tag:blogger.com,1999:blog-37046827439906707082024-02-20T18:22:56.999-08:00Calidad, valor y comodidadAnonymoushttp://www.blogger.com/profile/17223651144761699793noreply@blogger.comBlogger11125tag:blogger.com,1999:blog-3704682743990670708.post-31052711656879560232015-03-23T08:47:00.003-07:002015-03-24T02:42:58.363-07:00Next Best Action. Siguiente mejor acción de marketing<br />
Dejamos en esta entrada un poco de lado la parte técnica y nos centramos más en algunas ideas de negocio.<br />
Dentro del mundo del marketing y el CRM analítico hay conceptos clave que han ido surgiendo durante los últimos años y que resultan interesantes conocer, como <b><i>360-degree view of the customer</i></b>, <i><b>customer lifetime value</b> y el que tratamos ahora que<b> </b>es <b>Next Best Action.</b></i><br />
<i><b><br /></b></i>
Hay muy buenas definiciones de NBA en la red, por ejemplo en <a href="http://en.wikipedia.org/wiki/Next-best-action_marketing">wikipedia</a>.<br />
<br />
Buscando documentación para esta entrada yo he encontrado esta definición particularmente útil:<br />
<br />
<i>"best practices for proactively guiding and optimizing all offers, interactions, and experiences across all customer-facing channels, processes, and roles.".</i><br />
<br />
Sin entrar a abordar términos como <u>Customer Lifetime Value</u>, digamos que dentro de una estrategia global de marketing, en una empresa orientada a las tomas de decisiones basadas en una analítica avanzada y no solo en el "gut feeling", es posible optimizar la calidad de la experiencia con el cliente a través de cualquier interacción a lo largo del ciclo de vida del cliente con la compañía.<br />
<br />
Imaginemos por un momento, el caos que supondría no tener una política común de marketing, con diversos departamentos realizando acciones de marketing aisladas, sin interactuar con los demás, sin recoger el resultado de esas interacciones para alimentar nuestra "vista única del cliente".<br />
<br />
¿Cómo se podría trabajar así en la era de google, amazon, etc.. y esperar sobrevivir?<br />
<br />
<b>Ejemplo: Venta de un producto de Fitness.</b><br />
<br />
Centrándonos en un caso concreto para aclarar toda esta base teórica. Imaginemos un cliente al que le hemos vendido el típico producto de Fitness (Ver figura 1).<br />
La transacción fue satisfactoria, el pago y la entrega se realizaron correctamente.<br />
Incluso, al ser un producto de un coste superior al importe medio de nuestro negocio, podríamos haber contactado con él para hacerle un pequeño seguimiento de satisfacción de su compra.<br />
<br />
Como hemos comentado en anteriores entradas, toda esa información debe quedar registrada lo más pronto posible, por ejemplo en un proceso automático nocturno diario, en nuestro repositorio analítico (customer signature), parte de nuestro CRM.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUAIcA7kJ1Ko5FmPRrVjLqpX_I3LT2UHOahv5R9L1beOOHfIL9jPIdIf7RAC2SMupwBTmz7BV-GhfyjzvZibvEygXnwScSqdlKOnq_1QNqJOh-OT4D-uXCQVv8iVgHvv_sRBl-kXUScAKB/s1600/NBA.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUAIcA7kJ1Ko5FmPRrVjLqpX_I3LT2UHOahv5R9L1beOOHfIL9jPIdIf7RAC2SMupwBTmz7BV-GhfyjzvZibvEygXnwScSqdlKOnq_1QNqJOh-OT4D-uXCQVv8iVgHvv_sRBl-kXUScAKB/s1600/NBA.jpg" height="433" width="640" /></a></div>
<div style="text-align: center;">
<span style="font-size: x-small;"><b> Figura 1. Next Best Action para un cliente de Fitness.</b></span></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
De modo que abordamos ahora la cuestión clave de esta entrada: <b>"¿Qué acciones tomamos a continuación con el cliente?"</b></div>
<div class="separator" style="clear: both; text-align: left;">
<b><br /></b></div>
Aclaramos nuevamente que la definición de qué es considerada una "acción" de cara al cliente debe ser consensuada dentro del marco de la estrategia global de marketing de la empresa, ejemplos habituales son (retención de clientes, recuperación de antiguos clientes, maximización de campañas de telemarketing outbound,...<br />
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
La concreción de estas acciones se podrá llevar a cabo a través de:</div>
<div class="separator" style="clear: both; text-align: left;">
sistemas de recomendaciones;</div>
<div class="separator" style="clear: both; text-align: left;">
acciones automatizadas;</div>
<div class="separator" style="clear: both; text-align: left;">
generación de ofertas personalizadas por segmentos;</div>
<div class="separator" style="clear: both; text-align: left;">
generación de guiones de respuestas en función de la llamada que nos entra o que realizamos;</div>
<div class="separator" style="clear: both; text-align: left;">
personalización de nuestro portal de comercio electrónico;</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
La ejecución de estas acciones debe ser llevada a cabo a través de un proceso que optimice la experiencia del cliente vía la realización de una analítica predictiva. </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<u>Debemos crear una plataforma que orqueste a través de modelos las acciones de marketing a llevar a cabo tanto desde el punto de vista de la analítica predictiva como de reglas de negocio.</u></div>
<div class="separator" style="clear: both; text-align: left;">
<u><br /></u></div>
<div class="separator" style="clear: both; text-align: left;">
<u><br /></u></div>
<div class="separator" style="clear: both; text-align: left;">
<u><br /></u></div>
<div class="separator" style="clear: both;">
Por último, yendo un paso más allá, tomando prestada la idea del genial Chris Anderson en su famosa obra <a href="http://en.wikipedia.org/wiki/Long_tail">"Long Tail"</a>, una consecuencia lógica en el ciclo de vida del cliente es su evolución</div>
<div class="separator" style="clear: both;">
</div>
<div class="separator" style="clear: both;">
de ser un usuario de un producto a uno de un servicio (Ver figura 2). De algún modo "desmaterializar" las transacciones.</div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both;">
Lo que tiene sentido sí pensamos en la idea de tendencia a la personalización de la demanda de los clientes/usuarios de la que habla Anderson en su obra.</div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both;">
¿Ofrecemos al cliente de un banco de abdominales otro gadget? Bien, y después de adquirir x gadgets, ¿cómo puede este cliente volver a requerir/aceptar una experiencia que sienta como propia y totalmente personalizada con nosotros?</div>
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both;">
De hecho, aquí reside una de la claves de acciones de telemarketing outbound.</div>
¿Cuando llamamos a un cliente para ofrecerle un nuevo producto, basado en su histórico de compras con nosotros y su comportamiento de compra, no será tan importante la gestión de la operadora, guiada y personalizada gracias a los modelos de predicción analítica, como la naturaleza del producto/oferta realizada(en función de los ingresos, rentabilidad, aumento del CLV,..)?<br />
<div class="separator" style="clear: both;">
<br /></div>
<div class="separator" style="clear: both;">
¿Deberíamos enfocar las gestiones entonces simplemente como acciones de una operadora de call center o más bien como las de una asesora de belleza, cuidado personal,...?</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuQWxyFs_UyUn3kaxsYqok1Il_Y7bKX6LFEoEeakDpEaHsIkE4w5drJQcZf_uzRQr4VNJLHxduwXDv1OV6E7RZ-uhoI9q5dXXuRja_CVtGWxwvENkKzHmJmcfB6ynW5lQgfM_O0jhzlFIr/s1600/NBA2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuQWxyFs_UyUn3kaxsYqok1Il_Y7bKX6LFEoEeakDpEaHsIkE4w5drJQcZf_uzRQr4VNJLHxduwXDv1OV6E7RZ-uhoI9q5dXXuRja_CVtGWxwvENkKzHmJmcfB6ynW5lQgfM_O0jhzlFIr/s1600/NBA2.jpg" height="404" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<b style="font-size: small;">Figura 2. Next Best Action (servicios) para un cliente de Fitness.</b></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Saludos.</div>
<br />Anonymoushttp://www.blogger.com/profile/17223651144761699793noreply@blogger.com0tag:blogger.com,1999:blog-3704682743990670708.post-67520749998318707022015-03-18T08:47:00.002-07:002015-03-20T01:12:11.108-07:00Planificación o budget allocationBasándome en el patrón de PowerPivot Dax creado por Marco Russo y Alberto Ferrari, disponible en su web <a href="http://www.daxpatterns.com/budget-patterns/">http://www.daxpatterns.com/budget-patterns/</a> he implementado este modelado para realizar una planificación de las ventas de los siguientes tres meses.<br />
<br />
El resultado final es algo de este estilo de la imagen que muestro a continuación.<br />
Básicamente he adaptado los cálculos hechos por Ferrari y Russo para mi negocio. Como hago siempre, he cambiado las cifras y ocultado los detalles más sensibles.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXQJizU8MshxDT5Nivmbu1o6OqahVVXlVAG18_HH_CKWD1geJggyHuT2ZsPXWeQWwAcDinoMsQfusPh-5R-XPL6pmUIbP1N4o553bD0lI1NXYvHk7SpBNhsJEAW88908NXWQ7ca1MgXEEL/s1600/BudgetAllocation.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXQJizU8MshxDT5Nivmbu1o6OqahVVXlVAG18_HH_CKWD1geJggyHuT2ZsPXWeQWwAcDinoMsQfusPh-5R-XPL6pmUIbP1N4o553bD0lI1NXYvHk7SpBNhsJEAW88908NXWQ7ca1MgXEEL/s1600/BudgetAllocation.jpg" height="244" width="640" /></a></div>
<br />
Además del cálculo del budget o cantidad presupuestada, el importe real y la variabilidad por encima o debajo, he añadido un par de sencillos cálculos extra:<br />
<br />
<b><u>Porcentaje de la venta por familia sobre el total:</u></b><br />
<br />
<span style="background-color: #333333; color: white; font-family: Consolas, Inconsolata, monospace; font-size: 22px; line-height: 26px; white-space: nowrap;">PercentageOnFamily_Canal24h :=</span><br />
<span class="Keyword" style="background-color: #333333; color: #0070ff; font-family: Consolas, Inconsolata, monospace; font-size: 22px; line-height: 26px; white-space: nowrap;">SUM</span><span class="Parenthesis" style="background-color: #333333; color: #d0d0d0; font-family: Consolas, Inconsolata, monospace; font-size: 22px; line-height: 26px; white-space: nowrap;"> (</span><span style="background-color: #333333; color: white; font-family: Consolas, Inconsolata, monospace; font-size: 22px; line-height: 26px; white-space: nowrap;"> vw_VentasCANAL24H[ImporteTotal] </span><span class="Parenthesis" style="background-color: #333333; color: #d0d0d0; font-family: Consolas, Inconsolata, monospace; font-size: 22px; line-height: 26px; white-space: nowrap;">)</span><br />
<span class="indent4" style="background-color: #333333; color: white; display: inline-block; font-family: Consolas, Inconsolata, monospace; font-size: 22px; line-height: 26px; white-space: nowrap;"> </span><span style="background-color: #333333; color: white; font-family: Consolas, Inconsolata, monospace; font-size: 22px; line-height: 26px; white-space: nowrap;">/ </span><span class="Keyword" style="background-color: #333333; color: #0070ff; font-family: Consolas, Inconsolata, monospace; font-size: 22px; line-height: 26px; white-space: nowrap;">CALCULATE</span><span class="Parenthesis" style="background-color: #333333; color: #d0d0d0; font-family: Consolas, Inconsolata, monospace; font-size: 22px; line-height: 26px; white-space: nowrap;"> (</span><br />
<span class="indent8" style="background-color: #333333; border-right-color: rgb(77, 77, 77); border-right-style: solid; border-right-width: 1px; color: white; display: inline-block; font-family: Consolas, Inconsolata, monospace; font-size: 22px; line-height: 26px; margin-right: 6px; white-space: nowrap;"> </span><span class="Keyword" style="background-color: #333333; color: #0070ff; font-family: Consolas, Inconsolata, monospace; font-size: 22px; line-height: 26px; white-space: nowrap;">SUM</span><span class="Parenthesis" style="background-color: #333333; color: #d0d0d0; font-family: Consolas, Inconsolata, monospace; font-size: 22px; line-height: 26px; white-space: nowrap;"> (</span><span style="background-color: #333333; color: white; font-family: Consolas, Inconsolata, monospace; font-size: 22px; line-height: 26px; white-space: nowrap;"> vw_VentasCANAL24H[ImporteTotal] </span><span class="Parenthesis" style="background-color: #333333; color: #d0d0d0; font-family: Consolas, Inconsolata, monospace; font-size: 22px; line-height: 26px; white-space: nowrap;">)</span><span style="background-color: #333333; color: white; font-family: Consolas, Inconsolata, monospace; font-size: 22px; line-height: 26px; white-space: nowrap;">,</span><br />
<span class="indent8" style="background-color: #333333; border-right-color: rgb(77, 77, 77); border-right-style: solid; border-right-width: 1px; color: white; display: inline-block; font-family: Consolas, Inconsolata, monospace; font-size: 22px; line-height: 26px; margin-right: 6px; white-space: nowrap;"> </span><span class="Keyword" style="background-color: #333333; color: #0070ff; font-family: Consolas, Inconsolata, monospace; font-size: 22px; line-height: 26px; white-space: nowrap;">ALL</span><span class="Parenthesis" style="background-color: #333333; color: #d0d0d0; font-family: Consolas, Inconsolata, monospace; font-size: 22px; line-height: 26px; white-space: nowrap;"> (</span><span style="background-color: #333333; color: white; font-family: Consolas, Inconsolata, monospace; font-size: 22px; line-height: 26px; white-space: nowrap;"> vw_MaestroProductos[Familia] </span><span class="Parenthesis" style="background-color: #333333; color: #d0d0d0; font-family: Consolas, Inconsolata, monospace; font-size: 22px; line-height: 26px; white-space: nowrap;">)</span><br />
<span class="indent4" style="background-color: #333333; color: white; display: inline-block; font-family: Consolas, Inconsolata, monospace; font-size: 22px; line-height: 26px; white-space: nowrap;"> </span><span class="Parenthesis" style="background-color: #333333; color: #d0d0d0; font-family: Consolas, Inconsolata, monospace; font-size: 22px; line-height: 26px; white-space: nowrap;">)</span><br />
<br />
<br />
<b><u>Porcentaje de la venta por categoría sobre el total de la familia:</u></b><br />
<br />
<span style="background-color: #333333; color: white; font-family: Consolas, Inconsolata, monospace; font-size: 22px; line-height: 26px; white-space: nowrap;">PercentageOnCategory_Canal24 :=</span><br />
<span class="Keyword" style="background-color: #333333; color: #0070ff; font-family: Consolas, Inconsolata, monospace; font-size: 22px; line-height: 26px; white-space: nowrap;">SUM</span><span class="Parenthesis" style="background-color: #333333; color: #d0d0d0; font-family: Consolas, Inconsolata, monospace; font-size: 22px; line-height: 26px; white-space: nowrap;"> (</span><span style="background-color: #333333; color: white; font-family: Consolas, Inconsolata, monospace; font-size: 22px; line-height: 26px; white-space: nowrap;"> vw_VentasCANAL24H[ImporteTotal] </span><span class="Parenthesis" style="background-color: #333333; color: #d0d0d0; font-family: Consolas, Inconsolata, monospace; font-size: 22px; line-height: 26px; white-space: nowrap;">)</span><br />
<span class="indent4" style="background-color: #333333; color: white; display: inline-block; font-family: Consolas, Inconsolata, monospace; font-size: 22px; line-height: 26px; white-space: nowrap;"> </span><span style="background-color: #333333; color: white; font-family: Consolas, Inconsolata, monospace; font-size: 22px; line-height: 26px; white-space: nowrap;">/ </span><span class="Keyword" style="background-color: #333333; color: #0070ff; font-family: Consolas, Inconsolata, monospace; font-size: 22px; line-height: 26px; white-space: nowrap;">CALCULATE</span><span class="Parenthesis" style="background-color: #333333; color: #d0d0d0; font-family: Consolas, Inconsolata, monospace; font-size: 22px; line-height: 26px; white-space: nowrap;"> (</span><br />
<span class="indent8" style="background-color: #333333; border-right-color: rgb(77, 77, 77); border-right-style: solid; border-right-width: 1px; color: white; display: inline-block; font-family: Consolas, Inconsolata, monospace; font-size: 22px; line-height: 26px; margin-right: 6px; white-space: nowrap;"> </span><span class="Keyword" style="background-color: #333333; color: #0070ff; font-family: Consolas, Inconsolata, monospace; font-size: 22px; line-height: 26px; white-space: nowrap;">SUM</span><span class="Parenthesis" style="background-color: #333333; color: #d0d0d0; font-family: Consolas, Inconsolata, monospace; font-size: 22px; line-height: 26px; white-space: nowrap;"> (</span><span style="background-color: #333333; color: white; font-family: Consolas, Inconsolata, monospace; font-size: 22px; line-height: 26px; white-space: nowrap;"> vw_VentasCANAL24H[ImporteTotal] </span><span class="Parenthesis" style="background-color: #333333; color: #d0d0d0; font-family: Consolas, Inconsolata, monospace; font-size: 22px; line-height: 26px; white-space: nowrap;">)</span><span style="background-color: #333333; color: white; font-family: Consolas, Inconsolata, monospace; font-size: 22px; line-height: 26px; white-space: nowrap;">,</span><br />
<span class="indent8" style="background-color: #333333; border-right-color: rgb(77, 77, 77); border-right-style: solid; border-right-width: 1px; color: white; display: inline-block; font-family: Consolas, Inconsolata, monospace; font-size: 22px; line-height: 26px; margin-right: 6px; white-space: nowrap;"> </span><span class="Keyword" style="background-color: #333333; color: #0070ff; font-family: Consolas, Inconsolata, monospace; font-size: 22px; line-height: 26px; white-space: nowrap;">ALL</span><span class="Parenthesis" style="background-color: #333333; color: #d0d0d0; font-family: Consolas, Inconsolata, monospace; font-size: 22px; line-height: 26px; white-space: nowrap;"> (</span><span style="background-color: #333333; color: white; font-family: Consolas, Inconsolata, monospace; font-size: 22px; line-height: 26px; white-space: nowrap;"> vw_MaestroProductos[categoria] </span><span class="Parenthesis" style="background-color: #333333; color: #d0d0d0; font-family: Consolas, Inconsolata, monospace; font-size: 22px; line-height: 26px; white-space: nowrap;">)</span><br />
<span class="indent4" style="background-color: #333333; color: white; display: inline-block; font-family: Consolas, Inconsolata, monospace; font-size: 22px; line-height: 26px; white-space: nowrap;"> </span><span class="Parenthesis" style="background-color: #333333; color: #d0d0d0; font-family: Consolas, Inconsolata, monospace; font-size: 22px; line-height: 26px; white-space: nowrap;">)</span><br />
<br />
<br />
La clave de la funcionalidad está en la elaboración de una tabla Budget, que yo alimento con un proceso mensual donde cargo para cada familia de producto, categoria, año, trimestre y mes la cantidad que pretendemos presupuestar.<br />
<br />
El cálculo, hecho con un procedimiento almacenado con T-SQL, proyecta los importes previstos facturar en función de una media ponderada entre lo facturado el trimestre previo a la proyección y los inmediatos últimos 15 días (por la naturaleza de el negocio en cuestión los cambios son a muy corto plazo). Como vemos nada muy sofisticado.<br />
<br />
Además, se da otra restricción, hay categorías de productos que se descontinúan por diversos motivos: <br />
se hicieron testeos con ellos y no superaron los rangos mínimos de rentabilidad;<br />
no se van a emitir durante una temporada por rotura de stock;<br />
se descontinúan definitivamente;<br />
etc...<br />
<br />
Para recoger esto en nuestro modelo, añadimos una tabla extra que recoge todas las categorías de productos "baneados" donde se configuran para que fuerce a que estas categorias no tengan budget, como podemos ver en el extracto de query debajo donde se configura:<br />
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhq33fj4GrOnLpY2S9Ck9AubpD83ihPyLYd-VuNmzeiKPPDwNmKLYqbzWdokgv51yX4ZrxoHmd2QLo6Ifwa-52Z57HlNqg9TabbGFkBP-TPZjWrtw9ct8c8hcf9_UI1Ak3cPQdQ5IYVkzkk/s1600/BudgetAllocation2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhq33fj4GrOnLpY2S9Ck9AubpD83ihPyLYd-VuNmzeiKPPDwNmKLYqbzWdokgv51yX4ZrxoHmd2QLo6Ifwa-52Z57HlNqg9TabbGFkBP-TPZjWrtw9ct8c8hcf9_UI1Ak3cPQdQ5IYVkzkk/s1600/BudgetAllocation2.jpg" height="270" width="640" /></a></div>
<br />
<br />
<div class="MsoNormal">
<br /></div>
<br />
<div class="MsoNormal">
De modo que ahora la cifra que proyectamos de venta basada en meses anteriores aunque hayan incluido estas categorías no se añadirá cantidad que presupuestar.<span style="color: #1f497d;"><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Saludos.</div>
<div>
<span style="color: #1f497d;"><br /></span></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />Anonymoushttp://www.blogger.com/profile/17223651144761699793noreply@blogger.com0tag:blogger.com,1999:blog-3704682743990670708.post-89486498412424395642015-02-27T03:13:00.004-08:002015-02-27T03:13:29.751-08:00Dashboard con Excel PowerPivot control acciones marketing<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Retomamos la idea de la BBDD analítica que nos sirva para realizar las acciones comerciales del departmento de marketing, lo que en alguna entrada hemos llamado Customer Signature o también conocido como Customer Information File (CIF), analytical file.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
En el libro <a href="http://www.amazon.es/Database-Marketing-Analyzing-International-Quantitative/dp/1441903321">"Database marketing. Analyizing and managing customers"</a>. se recoge la siguiente tabla con al información del cliente agrupada por categorías de interés:</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
</div>
<ul>
<li>Datos de identificador del cliente.</li>
<li>Otras características del cliente. Datos socio-demográficos, ubicación, etc...</li>
<li>Histórico de compras de los clientes.</li>
<li>Life Time Value (LTV) como métrica para medir el potencial de crecimiento.</li>
</ul>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIyOngAL9AFvw2AtG1cjJgnNgdb41WW4qXD8jvdYuVx71eLA__pHF_PISPqHW0oo-2yXqGm64pOLHdx31GnLZ83R1lhk0uslTtMbBAm7Avbtx5IhWareDONexxBGi9TRF-nPNEdY3aKoDv/s1600/CustomerInformationFile.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIyOngAL9AFvw2AtG1cjJgnNgdb41WW4qXD8jvdYuVx71eLA__pHF_PISPqHW0oo-2yXqGm64pOLHdx31GnLZ83R1lhk0uslTtMbBAm7Avbtx5IhWareDONexxBGi9TRF-nPNEdY3aKoDv/s1600/CustomerInformationFile.jpg" height="279" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhFrHrL5FNygZrgnkkDoRSFrX0_tQ0PO9cZ9jpnm2wXpYnxPPtIw-QOQiIDatNTP7xMkGWBw_v_3tMLo-pRxAvuUxsZorABgLUhUviAwVQw6nBShemwnUM-b-Y-3AnChD5T97hLkoULKKT/s1600/CustomeSignature.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhFrHrL5FNygZrgnkkDoRSFrX0_tQ0PO9cZ9jpnm2wXpYnxPPtIw-QOQiIDatNTP7xMkGWBw_v_3tMLo-pRxAvuUxsZorABgLUhUviAwVQw6nBShemwnUM-b-Y-3AnChD5T97hLkoULKKT/s1600/CustomeSignature.jpg" height="318" width="400" /></a></div>
<br />
<br />
Por mi experiencia, la información más valiosa es la que procede de aquellos campos que componen la llamada "Purchase History" ya que con los campos que mejor nos permiten predecir el futuro comportamiento de compra de un cliente. Métricas como la rccencia, frecuencia de compra o el valor total gastado a lo largo de la vida de un cliente suelen ser las más útiles a la hora de realizar modelados predictivos.<br />
<br />
Centrándonos en la sección de las respuestas a nuestras acciones de marketing, muestro a continuación como crear un modelado que nos sirva para controlar, mediante powerpivot, un sencillo cuadro de mando para medir la efectividad de las campañas de Telemarketing outbound:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgstrpckSkkeDL3O-pMIzNFFTAJzfWmDKwTHBKFcTCfVmy5JZkOCzuhVU6xP3K9HO0m7yYxwXUvQ5eT_Z7H0iRdb0XzxrJ2NFrBFafYT6Hz0U-HwieaIWJUovsyzn-ZWhNY1toktPtW9yX/s1600/CustomerInformationFile2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgstrpckSkkeDL3O-pMIzNFFTAJzfWmDKwTHBKFcTCfVmy5JZkOCzuhVU6xP3K9HO0m7yYxwXUvQ5eT_Z7H0iRdb0XzxrJ2NFrBFafYT6Hz0U-HwieaIWJUovsyzn-ZWhNY1toktPtW9yX/s1600/CustomerInformationFile2.jpg" height="122" width="320" /></a></div>
<br />
<br />
Para medir la efectividad de acciones de marketing o campañas es necesario cruzar por un lado la información referente a las acciones/campañas y la información correspondiente a las transacciones realizadas por dichas acciones.<br />
La información de las campañas y la de las transacciones se unen en una query de este estilo, teniendo como nexo de unión al operador:<br /><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjim9PFePI6PqmFsdjjxvuDSK_bUzmrRgJWumsb5ItObe-tND7BwrhQ4LG8i_VxrC09JJJKf37DNGFPD1VcmyYkBnaPhKZqgpsYao7myNpi95qm1bmQxKKZH-1o5VOVkLLHf_AGq8sfAZPe/s1600/ModeloDatos.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjim9PFePI6PqmFsdjjxvuDSK_bUzmrRgJWumsb5ItObe-tND7BwrhQ4LG8i_VxrC09JJJKf37DNGFPD1VcmyYkBnaPhKZqgpsYao7myNpi95qm1bmQxKKZH-1o5VOVkLLHf_AGq8sfAZPe/s1600/ModeloDatos.jpg" height="365" width="400" /></a></div>
<br />
El informe final será similar al que se muestra a continuación, donde las métrica de interés son los pedidos vendidos asociados a cada campaña y los filtros son variables asociadas a las campañas por una parte y por otra información que caracteriza a la información de al venta, tablas del transaccional.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikB-vESoiXm-3uC_YxK88_4zV_n1AeHEiYfRmbHQv6Iqk42EaY3bGJFXwQGnksvfWTFkl8-Q7LmEiY2Wcw3AuQNmSgdBg_rS-V7nJhgCikHGWSNhvoao9oCKBxoFmhaabwEoaluiPW-GER/s1600/Dashboard1).jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikB-vESoiXm-3uC_YxK88_4zV_n1AeHEiYfRmbHQv6Iqk42EaY3bGJFXwQGnksvfWTFkl8-Q7LmEiY2Wcw3AuQNmSgdBg_rS-V7nJhgCikHGWSNhvoao9oCKBxoFmhaabwEoaluiPW-GER/s1600/Dashboard1).jpg" height="292" width="640" /></a></div>
<br />
Este tipo de informe nos permite realizar una primera aproximación a lo que se denomina una <i>"data-driven marketing culture" </i>donde no estamos haciendo aún ningún tipo de análisis avanzado sino más bien reporting. El objetivo es que esta información vaya sirviendo de base para una posterior analítica predictiva desde la que transformemos datos en bruto en auténtica ventaja competitiva para el negocio, como iremos viendo en posteriores entradas.<br />
<br />
Saludos.<br />
<br />Anonymoushttp://www.blogger.com/profile/17223651144761699793noreply@blogger.com0tag:blogger.com,1999:blog-3704682743990670708.post-14870819381458496382015-01-12T06:37:00.002-08:002015-01-12T06:37:47.741-08:00Evolución ventas y uso de medias móviles con TSQL y Excel<br />
<br />
<br />
<span style="background-color: white;"><span style="color: #252525; font-family: sans-serif;"><span style="line-height: 20.3636360168457px;">Para analizar como está evolucionando una producto a lo largo del tiempo lo ideal es utilizar un gráfico de lineas en el que en el eje de abscisas aparezca la variable temporal y en el de ordenadas la métrica a medir (#pedidos, importe (€), rentabilidad (€),...</span></span></span><br />
<span style="background-color: white; color: #252525; font-family: sans-serif; line-height: 20.3636360168457px;"><br /></span>
<span style="background-color: white;"><span style="color: #252525; font-family: sans-serif;"><span style="line-height: 20.3636360168457px;">Visualizar la información de pedidos, importe o lo que estemos midiendo así, nos representará nuestra serie de datos con muchos altibajos que dificultarán obtener tendencias o ciclos. Esto, tanto más en negocios como la venta minorista, donde es habitual que roturas de stock, continuas acciones de marketing para reactivar la venta, repentinos cambios en los hábitos de comportamiento de los clientes,etc... nos harán observar picos hacía arriba y hacía abajo en nuestras mediciones de negocio.</span></span></span><br />
<span style="background-color: white;"><span style="color: #252525; font-family: sans-serif;"><span style="line-height: 20.3636360168457px;"><br /></span></span></span>
<span style="background-color: white;"><span style="color: #252525; font-family: sans-serif;"><span style="line-height: 20.3636360168457px;">Por todo ello, es interesante realizar el análisis de nuestras ventas a los largo del tiempo, mediante el uso de medias móviles (también conocidas como moving averages o rolling averages).</span></span></span><br />
<span style="background-color: white; color: #252525; font-family: sans-serif; line-height: 20.3636360168457px;">Mediante la media móvil nuestro conjunto de datos pasan de ser puntos individuales a series de promedios que agregan por su media aritmética los valores originales. Es decir de nuestro conjunto de datos inicial pasamos a </span><span style="background-color: white; color: #252525; font-family: sans-serif; line-height: 20.3636360168457px;">otro que es el promedio de nuestros datos originales.</span><br />
<span style="background-color: white; color: #252525; font-family: sans-serif; line-height: 20.3636360168457px;"><br /></span>
<span style="background-color: white; color: #252525; font-family: sans-serif; line-height: 20.3636360168457px;">Como en varias otras entradas de este blog, voy a mostrar como realizar los cálculos que necesitamos en T-SQL y visualizar la información a través de Excel.</span><br />
<span style="background-color: white; color: #252525; font-family: sans-serif; line-height: 20.3636360168457px;"><br /></span>
<span style="background-color: white; color: #252525; font-family: sans-serif; line-height: 20.3636360168457px;">Antes de nad</span><span style="background-color: white; color: #252525; line-height: 20.3636360168457px;"><span style="font-family: Arial, Helvetica, sans-serif;">a, me gustaría agradecer a <a href="http://tomaslind.net/">Tomas Lind</a>, por su magnífico trabajo que he utilizado como base </span></span><span style="background-color: white; color: #252525; font-family: sans-serif; line-height: 20.3636360168457px;">para mi desarrollo.</span><br />
<span style="background-color: white; color: #252525; font-family: sans-serif; line-height: 20.3636360168457px;"><br /></span>
<span style="background-color: white; color: #252525; font-family: sans-serif; line-height: 20.3636360168457px;">Especialmente, a destacar la sección <a href="http://tomaslind.net/blog-series/technical-analysis-ta/">Technical Analysis (TA)</a>.</span><br />
<span style="background-color: white; color: #252525; font-family: sans-serif; line-height: 20.3636360168457px;"><br /></span>
<span style="background-color: white; color: #252525; font-family: sans-serif; line-height: 20.3636360168457px;">Como siempre añado parte del código y pantallazos, ocultando la información más sensible de los datos.</span><br />
<span style="background-color: white; color: #252525; font-family: sans-serif; font-size: 13.63636302948px; line-height: 20.3636360168457px;"><br /></span>
<span style="background-color: white; color: #252525; font-family: sans-serif; font-size: 13.63636302948px; line-height: 20.3636360168457px;"><br /></span>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfmE5l5b9UXiJ3b_gdit_rQRYn5UKIQ1sKT1zpMjMwsgI8Wpl0miQNwcuGimQyK7ftbuWHMKnK4LWqpPhZG7sTrylhADh5K3yHvJ7oMniuDFdck5xobIGgxwfplqT-BUNHofRMXuzpjwUB/s1600/MovingAverage1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfmE5l5b9UXiJ3b_gdit_rQRYn5UKIQ1sKT1zpMjMwsgI8Wpl0miQNwcuGimQyK7ftbuWHMKnK4LWqpPhZG7sTrylhADh5K3yHvJ7oMniuDFdck5xobIGgxwfplqT-BUNHofRMXuzpjwUB/s1600/MovingAverage1.jpg" height="366" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="background-color: white; color: #252525; line-height: 20.3636360168457px;"><span style="font-family: Arial, Helvetica, sans-serif;">Cada una de las MA significan Mean Average, para 4 meses, MA4, 3 meses MA3, semestral MA6, MA12, MA18 y MA24 meses.</span></span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="background-color: white; color: #252525; line-height: 20.3636360168457px;"><span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="background-color: white; color: #252525; line-height: 20.3636360168457px;"><span style="font-family: Arial, Helvetica, sans-serif;">Realmente, estos son los campos que mostraremos en el gráfico de lineas junto con la métrica original, que en mi caso es el número de pedidos (orders).</span></span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="background-color: white; color: #252525; font-family: sans-serif; font-size: 13.3333330154419px; line-height: 20.3636360168457px;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhACq17tvhqnbyrgK_zOYbzCZ1SAj4xwbmFkVzeIA4gxm_mNFN6E707sYZrqNfzf5QoGaVKjMAZOkp37uBx2TKhF5_BGVvg2NJDPwkyy7GmzLrpvv44haH_geCnHeHYL91YuRDFn_kEpBkD/s1600/MovingAverage2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhACq17tvhqnbyrgK_zOYbzCZ1SAj4xwbmFkVzeIA4gxm_mNFN6E707sYZrqNfzf5QoGaVKjMAZOkp37uBx2TKhF5_BGVvg2NJDPwkyy7GmzLrpvv44haH_geCnHeHYL91YuRDFn_kEpBkD/s1600/MovingAverage2.jpg" height="286" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="background-color: white; color: #252525; font-family: sans-serif; font-size: 13.3333330154419px; line-height: 20.3636360168457px;"><br /></span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="background-color: white; color: #252525; font-family: sans-serif; font-size: 13.3333330154419px; line-height: 20.3636360168457px;"><br /></span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="color: #252525; font-family: Arial, Helvetica, sans-serif;"><span style="background-color: white;"><span style="line-height: 20.3636360168457px;">En el gráfico se puede apreciar que la linea azul son los pedidos por mes, es una linea que va haciendo picos en función de las circunstancias del negocio. Sin embargo, observamos que a las lineas de moving average tienden a"suavizarse" y marcan una tendencia. </span></span></span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="color: #252525; font-family: Arial, Helvetica, sans-serif;"><span style="background-color: white;"><span style="line-height: 20.3636360168457px;"><br /></span></span></span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="color: #252525; font-family: Arial, Helvetica, sans-serif;"><span style="background-color: white;"><span style="line-height: 20.3636360168457px;">Este efecto se hace más apreciable a medida que los valores sobre los que obtenemos la media se extienden en el tiempo, como por ejemplo la linea verde que conforma la media móvil de un año.</span></span></span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="color: #252525; font-family: Arial, Helvetica, sans-serif;"><span style="background-color: white;"><span style="line-height: 20.3636360168457px;"><br /></span></span></span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="color: #252525; font-family: Arial, Helvetica, sans-serif;"><span style="background-color: white;"><span style="line-height: 20.3636360168457px;">A destacar también, que el mes de enero del 2015 presenta una caída significativa (linea azul) porque los datos están tomados del día 10 de enero (todavía faltaban 20 días más para completar el mes). Sin embargo las medias móviles suavizan nuevamente esa caída que no se corresponde con la tendencia alcista de los últimos meses del 2014.</span></span></span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="color: #252525; font-family: Arial, Helvetica, sans-serif;"><span style="background-color: white;"><span style="line-height: 20.3636360168457px;"><br /></span></span></span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="color: #252525; font-family: Arial, Helvetica, sans-serif;"><span style="background-color: white;"><span style="line-height: 20.3636360168457px;">Por último, reseñar que los datos han sido preparados para poder segmentar los datos por varios criterios de interés para el negocio, año, trimestre, mes, familia de productos, categoría de productos y canal. Estos campos se convierten en slicers sobre los que poder filtrar la información de la serie temporal.</span></span></span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="color: #252525; font-family: sans-serif; font-size: x-small;"><span style="background-color: white;"><span style="line-height: 20.3636360168457px;"><br /></span></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjho3x7l-NElKHf325fxlRoYqw0dK3gu99nOvqYrcUypFhyphenhyphenp9klqXWEM0v6pbbE7p0fOa521z_CiJ4Qu_isUNjc4i5gD2XaxOsagxh5WMOHv_y1yFZcV78Uodr8XVlmRG1GL-fIOxzUIXfQ/s1600/MovingAverage3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjho3x7l-NElKHf325fxlRoYqw0dK3gu99nOvqYrcUypFhyphenhyphenp9klqXWEM0v6pbbE7p0fOa521z_CiJ4Qu_isUNjc4i5gD2XaxOsagxh5WMOHv_y1yFZcV78Uodr8XVlmRG1GL-fIOxzUIXfQ/s1600/MovingAverage3.jpg" height="640" width="636" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="color: #252525; font-family: sans-serif; font-size: x-small;"><span style="background-color: white;"><span style="line-height: 20.3636360168457px;"><br /></span></span></span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="color: #252525; font-family: sans-serif; font-size: x-small;"><span style="background-color: white;"><span style="line-height: 20.3636360168457px;"><br /></span></span></span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="color: #252525; font-family: sans-serif; font-size: x-small;"><span style="background-color: white;"><span style="line-height: 20.3636360168457px;"><br /></span></span></span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="color: #252525; font-family: Arial, Helvetica, sans-serif;"><span style="background-color: white; line-height: 20.3636360168457px;">Saludos.</span></span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="color: #252525; font-family: sans-serif; font-size: x-small;"><span style="background-color: white;"><span style="line-height: 20.3636360168457px;"><br /></span></span></span></div>
<br />Anonymoushttp://www.blogger.com/profile/17223651144761699793noreply@blogger.com0tag:blogger.com,1999:blog-3704682743990670708.post-37369147362012835782014-12-15T08:00:00.002-08:002015-03-20T01:14:09.147-07:00Visualización con un heatmap en Excel para evolución ventas por rango horario a lo largo del tiempoBasándome en el libro <a href="http://www.amazon.com/Data-Analysis-Using-SQL-Excel/dp/0470099518/ref=sr_1_1?ie=UTF8&qid=1418644077&sr=8-1&keywords=data+analysis+using+sql+and+excel">"Data Analysis using SQL and Excel"</a> de <b>Gordon S. Linoff </b>mostramos un ejemplo que, a través de un mapa de calor en Excel, nos permite visualizar información de la tendencia de venta de cada spot en distintas franjas horarias durante los últimos 15 días.<br />
<br />
En el capítulo 8 de libro de Gordon ("Customer Purchases and other repeated events") plantea una solución para ver la evolución de las compras de los clientes en la BBDD de ejemplo del libro.<br />
(Los 3 primeros pantallazos que adjunto están sacados de este extraordinario libro.)<br />
<br />
<br />
El eje de las Y recoge el amount (cantidad vendida en $), las X recogen el mes y el año de la venta. Realmente más que una recta de regresión se trata de una serie temporal. El caso es que sirve para ver la evolución (creciente o decreciente) de cada cliente a lo largo del tiempo y ver si esta incrementando su gasto o disminuyéndolo.<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhI14pg7u1AWOKye9Q5t-36ddLB3zOKQdewvNd3oSWnyiBXn_flFBbOjIaMRR0npYj2mHJyMJAObtSz2P0a_ahbo02GUde65e-B9tNwFH4AcTJTWKfLva7jVaOBunweUbP-vq4f2v1pmh64/s1600/Slope.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhI14pg7u1AWOKye9Q5t-36ddLB3zOKQdewvNd3oSWnyiBXn_flFBbOjIaMRR0npYj2mHJyMJAObtSz2P0a_ahbo02GUde65e-B9tNwFH4AcTJTWKfLva7jVaOBunweUbP-vq4f2v1pmh64/s1600/Slope.jpg" height="550" width="640" /></a></div>
<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUqx63Cy08IE-V5XLFEXHe2s0gVpJ9OTq7TYNyb2OZVA5n_D4pDuPlwdfe9-y4XbfXyN9dp8is781XrWi4dMWRsGtoTEX7aFgLpIj1O36IXiUiTsgOSJuanyJTnbeMSGvcy5_GO25cvlGW/s1600/Query1.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUqx63Cy08IE-V5XLFEXHe2s0gVpJ9OTq7TYNyb2OZVA5n_D4pDuPlwdfe9-y4XbfXyN9dp8is781XrWi4dMWRsGtoTEX7aFgLpIj1O36IXiUiTsgOSJuanyJTnbeMSGvcy5_GO25cvlGW/s1600/Query1.jpg" height="177" width="640" /></a><br />
<br />
La solución que yo planteo se basa en la lógica que acabo de describir. Necesito obtener una medida que nos resuma la evolución de los resultados de los distintos pases que emitimos a distintas horas de un determinado spot.<br />
<br />
Para ellos tomados los últimos 15 días y para cada spot en las distintas horas en las que se ha emitido medimos en número de ventas que ha tenido el producto asociado a ese spot. Y de esto obtengo el <b><u>slope o pendiente </u></b>de la recta de regresión que forman los días en el eje de la X y la rentabilidad de ese spot.<br />
<br />
La query resultante tiene un aspecto parecido a lo que muestro a continuación:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGc0YTOzw7Sosba304kmHm_rYve5F_AC6LH7it5YgvTdG4bFoqGfYxU-eR-33y3myV-I8ch9vuXGcMp-tWF-fJ4hasN3eTF5_o6pACmSIMoFvyy_kLmoVoIylFqmiI9I54vM7RswJ-BKNV/s1600/Query2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGc0YTOzw7Sosba304kmHm_rYve5F_AC6LH7it5YgvTdG4bFoqGfYxU-eR-33y3myV-I8ch9vuXGcMp-tWF-fJ4hasN3eTF5_o6pACmSIMoFvyy_kLmoVoIylFqmiI9I54vM7RswJ-BKNV/s1600/Query2.jpg" height="304" width="640" /></a></div>
<br />
<br />
El principio básico es el mismo que para la query anterior, pero genero un slope para cada programa y para cada hora del día (cogemos emisiones desde las 7 de la mañana hasta las 23 de la noche.<br />
<br />
Todos estos valores me los llevo a PowerPivot:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-eqdb0squLZNP1MaVLQHUkH1pUOhYGOGYNI4FRbls-k40ShfVh8yFNlOpSo-4zYQGmEWYFrjxCgNbOgMXtY0p_bwpJ1xocCvPgGygkUJR3KLD33Uo_YIuoCyq2Dj-XLa2XPxudIEr6gTn/s1600/PowerPivot1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-eqdb0squLZNP1MaVLQHUkH1pUOhYGOGYNI4FRbls-k40ShfVh8yFNlOpSo-4zYQGmEWYFrjxCgNbOgMXtY0p_bwpJ1xocCvPgGygkUJR3KLD33Uo_YIuoCyq2Dj-XLa2XPxudIEr6gTn/s1600/PowerPivot1.jpg" height="168" width="640" /></a></div>
<br />
que finalmente lo representamos mediante una tabla dinámica a la que formateamos mediante una escala de color:<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigxWix-UZZtOtjNbbNOP6M7xes2HwLHd6LDVL-NTC75NKcoRuTg0Tn30WFQFA7C7wAYAIHECCDyHFFY9yAtTXO_HHLV8DmUh_SpmJif-K3tz7l99fKtwvVIbVabbdzBwukFASU379l-4yM/s1600/HeatMap.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigxWix-UZZtOtjNbbNOP6M7xes2HwLHd6LDVL-NTC75NKcoRuTg0Tn30WFQFA7C7wAYAIHECCDyHFFY9yAtTXO_HHLV8DmUh_SpmJif-K3tz7l99fKtwvVIbVabbdzBwukFASU379l-4yM/s1600/HeatMap.jpg" height="283" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: left;">
Observamos que además del programa, se añaden dos niveles de agregación, Categoría y si se trataba o no de una acción de marketing, con lo que las posibilidades de segmentar basados en criterios de negocio se multiplican en función de las necesidades que surjan.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Conseguimos así, el objetivo de la llamada <b>data visualization</b>, citando a <a href="http://blog.intercom.io/retention-cohorts-and-visualisations/">Des Traynor</a>, exempleado de google y socio cofundador de Intercom:</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<i>"<span style="background-color: white; color: #757575; font-family: 'Helvetica Neue', Helvetica, Arial, Verdana, sans-serif; font-size: 16px; letter-spacing: 0.159999996423721px; line-height: 27.2000007629395px;">The purpose of a data visualisation is to highlight what can’t be otherwise seen. </span></i></div>
<div class="separator" style="clear: both; text-align: left;">
<i><span style="background-color: white; color: #757575; font-family: 'Helvetica Neue', Helvetica, Arial, Verdana, sans-serif; font-size: 16px; letter-spacing: 0.159999996423721px; line-height: 27.2000007629395px;">[...] In some cases it’s more important that the viewer sees the comparison, not the data.</span>"</i></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
En una sola hoja de Excel podemos analizar la situación de los resultados de una parrilla de programación.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Saludos.</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />Anonymoushttp://www.blogger.com/profile/17223651144761699793noreply@blogger.com0tag:blogger.com,1999:blog-3704682743990670708.post-9603703506005383222014-05-07T15:45:00.001-07:002014-05-09T00:57:44.129-07:00Cómo afrontar un modelado analítico. El customer signature<span style="font-family: Arial, Helvetica, sans-serif;"><br />Una de las primeras tareas que se deben afrontar dentro de un entorno de CRM analítico (aquel que se utiliza para analizar la información de los clientes con el fin de conseguir conocerlos mejor y personalizar nuestra oferta hacia ellos) es crear <u>un repositorio centralizado y un formateado de datos específico</u>, habitualmente llamado customer signature.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">El Customer Signature es una estructura de datos que recoge la principal información de un cliente de forma resumida, ubicándola en un único sitio. </span><span style="font-family: Arial, Helvetica, sans-serif;">Es una vista integrada y unificada del cliente. </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">Para la mayoría de las aplicaciones de minería de datos se requiere una tabla plana que recoja la información y que habitualmente está a nivel de cliente. </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">En cierto modo es una especie de maestro de clientes. Es muy útil para la generación de informes y para emplazar la información resumida y agregada (en un entorno diseñado con una finalidad analítica) de un cliente, tanto socio demográfica como basada en sus hábitos de comportamiento de compra.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">En un entorno de CRM – especialmente en retailing- se le suele denominar <b><i>MICF (marketing customer information file)</i></b> o incluso <b><i>mining data mart</i></b>. </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">Estas estructuras resultan especialmente adecuadas para posteriores análisis y modelados analíticos utilizando algoritmos de estadística avanzada y de minería de datos. </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">Habitualmente este tipo de información se suele recuperar de un data mart del CRM de la empresa. Pero es necesario enriquecerlo con atributos derivados y KPI’s informativos que resumen todos los aspectos de la relación de los clientes con la compañía (agregados y medias, ratios,Deltas,…). </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">El customer signature se puede realizar con cualquier lenguaje de <b>script (Perl, Python, R,…), con alguna herramienta de ETL (como SSIS, PowerCenter o Kettle)</b>, <b>o directamente con T-SQL</b>. </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">Hacerlo con T-SQL tiene la ventaja a la hora de preparar los datos de que hace uso del procesado en paralelo propio de los motores de BBDD.
En la mayoría de los casos en que he tenido que realizar un tipo de estructura con un simple script en T-SQL, es más que suficiente para agregar y resumir la información más importante de un cliente. </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">En una entrada posterior, entraré más en detalle sobre el tipo de información que suele llevar un customer signature y añadiré algunos ejemplos en T-SQL del tipo de información que debe llevar.</span>Anonymoushttp://www.blogger.com/profile/17223651144761699793noreply@blogger.com0tag:blogger.com,1999:blog-3704682743990670708.post-28000285688785667202013-11-05T07:43:00.004-08:002015-02-27T00:22:36.688-08:00Ideas para nuevas líneas de negocio<span style="font-family: Verdana, sans-serif;"><b>Teletienda</b>. <b>Ideas para nuevas
líneas de negocio:</b></span><br />
<b><br /></b>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpEjX9SYBKOnWtI1geQ04TBPystUE-fYYX757EgKMck74HgzSMj6kbW5tDMgPxq6n1t4c9zBnv-C-CJi3RpMoyKVtEqCXa97JKocX-CY5cc5HlcHGrHP7c1m_VaCB42ZFydbs7vWoULT-1/s1600/Bombillas.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpEjX9SYBKOnWtI1geQ04TBPystUE-fYYX757EgKMck74HgzSMj6kbW5tDMgPxq6n1t4c9zBnv-C-CJi3RpMoyKVtEqCXa97JKocX-CY5cc5HlcHGrHP7c1m_VaCB42ZFydbs7vWoULT-1/s400/Bombillas.jpg" height="307" width="400" /></a></div>
<b><br /></b>
<br />
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;"><b>Google Analytics</b> ha incorporado una nueva sección de “categorías
e intereses” de los visitantes de un sitio web.<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;">Esta característica es muy interesante para la gestión de un
comercio electrónico.<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;">Como podemos ver en la imagen de abajo, Google ha creado una
serie de categorías con la ingente información que ha recopilado en la “Red
Display<b>*</b>”:<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
</div>
<ul>
<li><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">·
</span><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">News
Junkies & Avid Readers</span></li>
<li><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">·
</span><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">TV
Lovers</span></li>
<li><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">·
</span><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">Music
Lovers</span></li>
<li><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">·
</span><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">Travel
Buffs</span></li>
<li><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">·
</span><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">Cooking
Enthusiasts</span></li>
<li><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">·
</span><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">Technophiles</span></li>
<li><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">·
</span><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">Movie
Lovers</span></li>
<li><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">·
</span><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">Sports
Fans</span></li>
<li><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">·
</span><span lang="EN-US" style="font-family: Verdana, sans-serif; text-indent: -18pt;">Home
Decor Enthusiasts</span></li>
<li><span style="font-family: Verdana, sans-serif; text-indent: -18pt;">·</span><span style="font-family: Verdana, sans-serif; text-indent: -18pt;">
</span><span style="font-family: Verdana, sans-serif; text-indent: -18pt;">Shoppers/Shopaholics</span></li>
</ul>
<br />
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif; font-size: x-small;"><b>*</b> La Red Display de Google se trata de un conjunto de más de
un millón de sitios web, vídeos y aplicaciones en los que pueden aparecer sus
anuncios. Los sitios de esta red se han asociado con Google para mostrar
anuncios de AdWords relevantes.</span><o:p></o:p></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif; font-size: x-small;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVVtDHmbgAU2wfPcNfZtbQWhwwQ8E4q93Ag0AwnCblv6reU7jEOEZQ6jKPxug3qBd3zlH_pTpjkMDG3Oer15MzAvB6mR-GeEy6vJhsL1sNbbC6FSA4ABWw1yD46GDtbgLLfeOLqKxesLqL/s1600/Categorias_Afinidad.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVVtDHmbgAU2wfPcNfZtbQWhwwQ8E4q93Ag0AwnCblv6reU7jEOEZQ6jKPxug3qBd3zlH_pTpjkMDG3Oer15MzAvB6mR-GeEy6vJhsL1sNbbC6FSA4ABWw1yD46GDtbgLLfeOLqKxesLqL/s640/Categorias_Afinidad.jpg" height="250" width="640" /></a></div>
<div class="MsoNormal">
<span style="font-family: Calibri, sans-serif; font-size: 8pt; line-height: 107%;"><b> Sección
categorías e intereses de Google Analytics. </b></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif; font-size: x-small;"><br /></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif; font-size: x-small;"><br /></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;">Como se puede ver cada visita se puede clasificar a varias
categorías. <o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;">A través de esta segmentación podemos descubrir que
caracterizan a los usuarios que nos visitan y por lo tanto, extender o crear
líneas de negocio que se adapten más a nuestros perfiles de
usuarios/compradores.<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;">Por ejemplo, <b>Travel Buffs</b>, ¿podemos intentar llegar a un acuerdo con
proveedores de servicios de viajes para incluir sus productos en nuestro sitio
de comercio electrónico?<br /><br /><o:p></o:p></span><br />
<span style="font-family: Verdana, sans-serif;">Estas no son las únicas categorías. Google analytics genera otras como podemos ver a la derecha de la imagen a continuación:</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgR2k1mqxOlIi3Xfg5YZ8YtVaHA2zQiBkz-fo9C105yx9cSRPChmUxhm9m5kPOD8MFrXE_QZlnkBLg99pXI2IncnqjDIIrSjHkYxMMSmkTPNSOhmydRQsr3oOwgr5alur3hQVVo3pYp1zjh/s1600/Analitica2.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgR2k1mqxOlIi3Xfg5YZ8YtVaHA2zQiBkz-fo9C105yx9cSRPChmUxhm9m5kPOD8MFrXE_QZlnkBLg99pXI2IncnqjDIIrSjHkYxMMSmkTPNSOhmydRQsr3oOwgr5alur3hQVVo3pYp1zjh/s640/Analitica2.jpg" height="192" width="640" /></a></div>
<b style="font-family: Calibri, sans-serif; font-size: 11px; line-height: 11px;"> Sección categorías e intereses de Google Analytics. </b><br />
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;">Tenemos que tener en cuenta que esta segmentación de
visitantes la podemos cruzar con la segmentación que tengamos hecha de nuestra
BBDD del negocio y comprobar si, a priori, tenemos oferta que ofrecer a
nuestras nuevas visitas.<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<span style="font-family: Verdana, sans-serif;">Este planteamiento difiere radicalmente de la típica estrategia
habitual de “importar” los grandes hits de los mercados más desarrollados, como
los ranking de productos que se pueden ver en <b>jwgreensheet</b>: </span><a href="http://www.jwgreensheet.com/">http://www.jwgreensheet.com</a>
<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjftmB5rzo_CStNhErmeP_Zfqj1KNpKjkUVhPY2_8lTWxMVNLGJO-UJ3QXa14KDWfiv2nENhpFb-zQNYYYvXNr4MAvTCks4Bqr6Kn7HiyQ8ELq8RGcJ6EoRk3Yh1vUoeLhaTl6sdY6sVwA1/s1600/JWgreensheet.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjftmB5rzo_CStNhErmeP_Zfqj1KNpKjkUVhPY2_8lTWxMVNLGJO-UJ3QXa14KDWfiv2nENhpFb-zQNYYYvXNr4MAvTCks4Bqr6Kn7HiyQ8ELq8RGcJ6EoRk3Yh1vUoeLhaTl6sdY6sVwA1/s640/JWgreensheet.jpg" height="546" width="640" /></a></div>
<div class="MsoNormal">
<br /></div>
<div>
</div>
<div class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
</div>
<div>
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div>
<span style="font-family: Verdana, sans-serif;"> Saludos.</span></div>
<div>
<span style="font-family: Verdana, sans-serif;"><br /></span></div>
<div>
<br /></div>
<!--[if !supportLists]--><br />
<br />
<div class="MsoListParagraphCxSpLast" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<o:p></o:p></div>
<div class="MsoNormal">
<b><o:p></o:p></b></div>
Anonymoushttp://www.blogger.com/profile/17223651144761699793noreply@blogger.com0tag:blogger.com,1999:blog-3704682743990670708.post-61977600968920601492013-08-20T07:43:00.000-07:002013-08-21T07:12:23.461-07:00Por qué la gente compra por Teletienda <br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;">
<span style="font-family: Calibri;"><i><span style="font-size: 12pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES; mso-hansi-font-family: Calibri;">“La mayoría de
la gente no sabe lo que quiere sino lo ven en su contexto. No sabemos qué clase
de bicicleta de carreras queremos hasta que vemos a un campeón del Tour de
Francia haciendo mover los engranajes de un determinado modelo. No sabemos qué
clase de altavoces queremos hasta que no oímos unos que suenan mejor que
los anteriores. Ni siquiera sabemos que queremos hacer con nuestra vida hasta
que no encontramos un amigo o un pariente que está haciendo exactamente lo que
no nosotros creemos que deberíamos hacer. <b><span style="color: red;">Todo es
relativo, y esa es la clave</span></b>. Como un piloto de avión que aterriza en
la oscuridad, queremos disponer de balizas a ambos lados que nos guíen hacía el
lugar donde poder tomar tierra. ”</span></i></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;">
<span style="font-size: 12pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES; mso-hansi-font-family: Calibri;"><span style="font-family: Calibri;"> <b>“Las trampas del deseo”. Dan Ariely</b><o:p></o:p></span></span></div>
<br />
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;">
<span style="font-size: 12pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES; mso-hansi-font-family: Calibri;"><span style="font-family: Calibri;">Es una pregunta que llevo tiempo intentando aclararme a mí mismo:<br />
¿qué hace que la gente compre por un canal de teletienda?<o:p></o:p></span></span></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;">
<span style="font-size: 12pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES; mso-hansi-font-family: Calibri;"><span style="font-family: Calibri;">Cuando empiezas en este negocio es la primera
pregunta que te haces.<o:p></o:p></span></span></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;">
<span style="font-size: 12pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES; mso-hansi-font-family: Calibri;"><span style="font-family: Calibri;">Leyendo a economistas conductuales, como Dan
Ariely, podemos empezar a entender que, en el retailing en general, no se
suelen aplicar las leyes clásicas de curva de oferta-demanda.<o:p></o:p></span></span></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;">
<span style="font-size: 12pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES; mso-hansi-font-family: Calibri;"><span style="font-family: Calibri;">Es más, lo que realmente suele primar es la
irracionalidad. La gente es susceptible a una seri<span style="color: #44546a; mso-themecolor: dark2;">e</span> de influencias irrelevantes de su entorno
inmediato (lo que esta rama del la economía denomina <i>“efectos
contextuales”),</i> estrecheces de miras y otras formas de irracionalidad.<o:p></o:p></span></span></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;">
<span style="font-size: 12pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES; mso-hansi-font-family: Calibri;"><span style="font-family: Calibri;">No es ningún secreto, que tradicionalmente este
mercado ha estado caracterizado por gente de más de 50 años, amas de
casa y personas mayores con achaques y problemas de salud, por lo menos hasta la llegada de Internet.<br />
<br />
En ese sentido nos moveríamos en los que los capitalistas denominan
mercado <b><i>caveat emptor</i></b> (por cuenta y riesgo del comprador).
Es decir:</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;">
<span style="font-family: Calibri;"><i><span style="font-size: 12pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES; mso-hansi-font-family: Calibri;">"...la
responsabilidad de una compra recae en el comprador, quien deberá tomar las medidas
oportunas para asegurarse previamente de la calidad de lo adquirido descartando
posibles reclamaciones futuras al vendedor.".</span></i><span style="font-size: 12pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES; mso-hansi-font-family: Calibri;"> <u>Fuente Wikipedia</u> <o:p></o:p></span></span></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;">
<span style="font-size: 12pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES; mso-hansi-font-family: Calibri;"><span style="font-family: Calibri;"> </span></span><span style="font-size: 12pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES; mso-hansi-font-family: Calibri;"><span style="font-family: Calibri;">Esto no es realmente así siempre puesto que desde
la existencia de internet los potenciales clientes tienen acceso a unos
recursos casi ilimitados de opiniones, precios, especificaciones técnicas,...<o:p></o:p></span></span></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;">
<span style="font-size: 12pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES; mso-hansi-font-family: Calibri;"><span style="font-family: Calibri;">Es su caso más extremo con un cliente
superinformado se llega a un mercado <b>caveat vendor</b> (por cuenta y
riesgo del vendedor). <o:p></o:p></span></span></div>
<br />
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;">
<span style="font-size: 12pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES; mso-hansi-font-family: Calibri;"><span style="font-family: Calibri;">De modo que tenemos:</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;">
</div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;">
<span style="font-size: 12pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES; mso-hansi-font-family: Calibri;"><span style="font-family: Calibri;">- un mercado asimétrico -teóricamente- el
vendedor conoce mucho más del producto que el comprador, y; </span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;">
<span style="font-size: 12pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES; mso-hansi-font-family: Calibri;"><span style="font-family: Calibri;">- clientes que pasan mucho tiempo viendo la televisión
(personas mayores, de media-avanzada edad, gente que pasa mucho tiempo en casa
por problemas de movilidad, parados, gente de pueblos y ubicaciones retiradas
de las grandes urbes,...)<o:p></o:p></span></span></div>
<br />
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;">
<span style="font-size: 12pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES; mso-hansi-font-family: Calibri;"><span style="font-family: Calibri;">Partiendo de estas premisas suele acusarse a este
canal de retailing de aprovecharse de la ignorancia </span></span><span style="font-size: 12pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES; mso-hansi-font-family: Calibri;"><span style="font-family: Calibri;">de los clientes, de exagerar en su publicidad, de ser
un engaña-viejos,...<o:p></o:p></span></span></div>
<span style="font-size: 12pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES; mso-hansi-font-family: Calibri;"><span style="font-family: Calibri;">Sin embargo, basado en los experimentos del propio Dan
Ariley, el autor reflexiona sobre hasta que punto no son las propias
percepciones de un cliente, por ejemplo viendo un anuncio, las que hacen que un
producto tenga un valor objetivo para él.<o:p></o:p></span></span><br />
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;">
<span style="font-family: Calibri;"><i><span style="font-size: 12pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES; mso-hansi-font-family: Calibri;">"la
percepción del valor, ya sea en la medicina, los refrescos, los cosméticos o
los coches, puede convertirse en valor real. Si la gente realmente obtiene una
mayor satisfacción de un producto, <b>¿acaso el responsable de marketing ha
hecho algo peor que vender la imagen del producto junto con el producto en sí?</b>"</span></i><span style="font-size: 12pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES; mso-hansi-font-family: Calibri;"><o:p></o:p></span></span></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;">
<span style="font-size: 12pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES; mso-hansi-font-family: Calibri;"><span style="font-family: Calibri;">Es decir, ¿es ilícito tratar de crear una
imagen atractiva de un producto que puede resolver un problema a un
segmento específico de la población a través de una teletienda si como
consecuencia del propio anuncio el proyecto es percibido como de mayor calidad?<o:p></o:p></span></span></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;">
</div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 6pt;">
<span style="font-size: 12pt; mso-ascii-font-family: Calibri; mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES; mso-hansi-font-family: Calibri;"><span style="font-family: Calibri;">En ese sentido, tanto da que el cliente sea un
garrulo de algún pueblucho de la España profunda que no tiene ni tarjeta de
crédito o<span style="mso-spacerun: yes;"> </span>una sofisticada pija de la
calle serrano que se pasa el día de tienditas o algún geek que quiere sacar la
tableta de abdominales para echarse novia y se cree que está ahorrando dinero
con la última novedad en aparatos de fitness en lugar de ir al gimnasio y tener
que socializarse con la gente. Todos actuamos igual de irracionalmente en un
momento u otro.</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 6pt;">
</div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 6pt;">
</div>
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
</div>
<br />Anonymoushttp://www.blogger.com/profile/17223651144761699793noreply@blogger.com0tag:blogger.com,1999:blog-3704682743990670708.post-16393633151482161182013-07-01T08:45:00.000-07:002014-11-13T00:31:35.302-08:00SQL Server Reporting Services 2008. Ventanas emergentes o pop-ups<br />
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
<span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;"><span style="font-family: Calibri;">Continuando
con el ejemplo de una entrada anterior sobre Reporting Services. Voy a mostrar
ahora como solventar una problemática particular que me surgió con un
cliente.<o:p></o:p></span></span></div>
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
<span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;"><span style="font-family: Calibri;">Como
sabéis reporting Services nos permite filtrar el contenido que vamos a
visualizar en un informe a través de parámetros en la entrada de datos, como
podemos ver en este ejemplo:<o:p></o:p></span></span></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOOu_Y1mYMmtIJNTdNaOrNG0QATAs-NykhJCeAfPlcI8ilr88-XdFMouQ84rIpWyFA7abI0kBDZoJJEDPgNvwpso8m-g8OylDEz-sOG3RLCiqqCUI3M6Cr_K-lo_1AIqgOoDCSzdshcoiW/s526/MultipledFilters.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOOu_Y1mYMmtIJNTdNaOrNG0QATAs-NykhJCeAfPlcI8ilr88-XdFMouQ84rIpWyFA7abI0kBDZoJJEDPgNvwpso8m-g8OylDEz-sOG3RLCiqqCUI3M6Cr_K-lo_1AIqgOoDCSzdshcoiW/s1600/MultipledFilters.jpg" /></a></div>
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
<span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;"><span style="font-family: Calibri;">Además,
un parámetro puede condicionar los valores que nos mostrará el otro.<o:p></o:p></span></span></div>
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
<span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;"><span style="font-family: Calibri;">La
problemática que surgió fue que un cliente quería seleccionar los parámetros de
entrada una sola vez y poder visualizar todos los informes con esos parámetros
ya seleccionados. Es decir, no entrando informe a informe y seleccionando los
parámetros cada vez.<o:p></o:p></span></span></div>
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
</div>
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
<span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;"><span style="font-family: Calibri;">Imaginemos
que tenemos nuestra pantalla inicial de introducción de parámetros:<o:p></o:p></span></span></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjX9ARpDYBK3XHRC7BqgFd7fTrvMKDujRAmadGxCEOMdu88OZDsUO0XGlRD0m1E7jtsqN-8MnKjTHb4QDr-pH0bEuaTke-YQoPY6Og5kYZC2JZC18Q37u4mE5oKi8oSCXzTuGKpauwTvGMG/s530/MultipledFilters2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjX9ARpDYBK3XHRC7BqgFd7fTrvMKDujRAmadGxCEOMdu88OZDsUO0XGlRD0m1E7jtsqN-8MnKjTHb4QDr-pH0bEuaTke-YQoPY6Og5kYZC2JZC18Q37u4mE5oKi8oSCXzTuGKpauwTvGMG/s320/MultipledFilters2.jpg" height="171" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
<span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;"><span style="font-family: Calibri;">Fijémonos
que ambos parámetros son visibles por eso nos aparecen al cargar el informe,
permiten múltiples valores simultáneamente y que el de la fecha está
condicionado por el del banco:<o:p></o:p></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2DKuNaKnqKkGKGGCGmMnpq65_-Kgq-3dR_zMl4IDNyUIPR63MpusOCRf86ECk7ql5DMSobi5Ey_B_BLP9i8gGagKRue6eMGs6zV-no6uYvevtIYjuRmve7rrprwalklGGA1jQDMPKAecq/s451/ReportParameterProperties.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2DKuNaKnqKkGKGGCGmMnpq65_-Kgq-3dR_zMl4IDNyUIPR63MpusOCRf86ECk7ql5DMSobi5Ey_B_BLP9i8gGagKRue6eMGs6zV-no6uYvevtIYjuRmve7rrprwalklGGA1jQDMPKAecq/s320/ReportParameterProperties.jpg" height="263" width="320" /></a></div>
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4Bvs1XexQKyKFoY4CdCk11XhoKfGPHyx9mWeWCF0eS1cCtv_xFgtj24vuADo77A3o6Y8dvwqTUcIDUSgqxBpxXzcX4m-XvqLLoPSxRPZjMBYfIqZhF_QJVwV5SL1rnBDIQzRe7fhs3NBb/s451/ReportParameterProperties2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4Bvs1XexQKyKFoY4CdCk11XhoKfGPHyx9mWeWCF0eS1cCtv_xFgtj24vuADo77A3o6Y8dvwqTUcIDUSgqxBpxXzcX4m-XvqLLoPSxRPZjMBYfIqZhF_QJVwV5SL1rnBDIQzRe7fhs3NBb/s320/ReportParameterProperties2.jpg" height="263" width="320" /></a></div>
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYaffLyzKKcivcb_iPi3AAJYrPP_lMSHet4dg1afTIi-nys7NKjK39CGhbj9pqcPZKuxojQ9fSJl4zT-RhSn0Dwx3IQPjrQdSmukixF6YDpRPFBy2OUq07pKF3L10z-GF3HJIWTrdpdiq8/s468/DataSet_Properties.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYaffLyzKKcivcb_iPi3AAJYrPP_lMSHet4dg1afTIi-nys7NKjK39CGhbj9pqcPZKuxojQ9fSJl4zT-RhSn0Dwx3IQPjrQdSmukixF6YDpRPFBy2OUq07pKF3L10z-GF3HJIWTrdpdiq8/s320/DataSet_Properties.jpg" height="165" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
<span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;"><span style="font-family: Calibri;">Bien,
una vez que se han seleccionado los valores, el informe debe cargar un listado
de informes que deben actuar como hipervínculos para enlazar a sus respectivos
reportes, arrastrando los mismos parámetros que nos traíamos desde la selección
inicial.<o:p></o:p></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
<span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;"><span style="font-family: Calibri;">Como
podemos ver, una vez introducimos nuestros parámetros de entrada múltiples, el
informe nos los recoge:</span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-MmzOYDNu7NL-d1AIMPJv8C5k4-Noj5qeW8OD4SV_GzPyZ-0Eyi_J0e6uozOplrhk9USwO4GzOrCet85LRSq3-vDDvhAws_qH0abxsPFzItGXC4qQxDwlwlI5YiLSvZgpy8Sl0UfTN3Y7/s624/Report.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-MmzOYDNu7NL-d1AIMPJv8C5k4-Noj5qeW8OD4SV_GzPyZ-0Eyi_J0e6uozOplrhk9USwO4GzOrCet85LRSq3-vDDvhAws_qH0abxsPFzItGXC4qQxDwlwlI5YiLSvZgpy8Sl0UfTN3Y7/s320/Report.jpg" height="137" width="320" /></a></div>
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
<span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;"><span style="font-family: Calibri;">A
continuación tenemos que abrir cada uno de los informes ya enlazados en nuestro
informe y pasarle esos mismos parámetros. ¿Cómo hacemos eso?<o:p></o:p></span></span></div>
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
<span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;"><span style="font-family: Calibri;">En el
siguiente pantallazo recojo todo el proceso:<o:p></o:p></span></span></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinRq1I41l1qfh-pIPcdOVqG_3OSEdLdl5S_w5sVYM15f3BGLyxaWvFH3rKsxz9gH-Lsbn4nnekasMyrMJVeZjWdDWG5ajZHtmj6ktAOlUGk4NWZMSNklQB57ztmlsoIqqdBj52BiJ_Bfbm/s624/WorkFlow_Proceso1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinRq1I41l1qfh-pIPcdOVqG_3OSEdLdl5S_w5sVYM15f3BGLyxaWvFH3rKsxz9gH-Lsbn4nnekasMyrMJVeZjWdDWG5ajZHtmj6ktAOlUGk4NWZMSNklQB57ztmlsoIqqdBj52BiJ_Bfbm/s320/WorkFlow_Proceso1.jpg" height="203" width="320" /></a></div>
<br />
<br />
<br />
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
<span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;"><span style="font-family: Calibri;">Desde
las propiedades del campos de texto. Nos vamos a “Action” y a “Go to report”,
especificamos el informe que queremos abrir al hacer clic y, como es un informe
parametrizado, le añadimos los parámetros, en este caso 2, que le pasaremos al
invocarle.<o:p></o:p></span></span></div>
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
<span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;"><span style="font-family: Calibri;">Observen
que el value de los parámetros es la conocida función Join – que ya veíamos en
una entrada anterior- y que permite pasar valores de parámetros múltiples.<o:p></o:p></span></span></div>
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
<span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;"><span style="font-family: Calibri;">En
principio con esto estaría solventada la petición del cliente, ¿verdad? Pues en
este caso no.<o:p></o:p></span></span></div>
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
<span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;"><span style="font-family: Calibri;">Además,
los usuarios desean poder abrir varios informes simultáneamente para comparar y
puntear cifras entre unos y otros.<o:p></o:p></span></span></div>
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
<span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;"><span style="font-family: Calibri;">El
problema que tenemos con la acción “Go to report” es que NO permite abrir un
pop-up o nueva ventana emergente.<o:p></o:p></span></span></div>
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
<span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;"><span style="font-family: Calibri;">Tenemos
pues que buscar otra solución.<span style="mso-spacerun: yes;"> </span>La
explico a continuación en el siguiente esquema:</span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZx0Kew7-oYhIeaUyRh1_F1aTIZzPF9Ax5CYJmNunTTbrE7QCmDm_9BSs_mPRefJL4hGr9Y0rgUJtQV2E45LBa5B_q5HZ_6iokJWnnazg6uWiB43xjiF5y8uUX7BRzwbKyGEqVQ6Gk7n6T/s624/WorkFlow_Proceso2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZx0Kew7-oYhIeaUyRh1_F1aTIZzPF9Ax5CYJmNunTTbrE7QCmDm_9BSs_mPRefJL4hGr9Y0rgUJtQV2E45LBa5B_q5HZ_6iokJWnnazg6uWiB43xjiF5y8uUX7BRzwbKyGEqVQ6Gk7n6T/s320/WorkFlow_Proceso2.jpg" height="157" width="320" /></a></div>
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
</div>
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
</div>
<span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;"></span><br />
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
</div>
<span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;">
</span>
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
<span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;"><span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;"><span style="font-family: Calibri;">En
lugar de seleccionar la acción “Go to report”, seleccionamos “Go to URL”. En la
URL tenemos que introducir una expresión que nos abra un pop-up y que apunte a
un informe de nuestro servidor de reporting services.<o:p></o:p></span></span></span></div>
<span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;">
</span>
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
</div>
<span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;">
</span>
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
<span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;"><span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;"><span style="font-family: Calibri;">Es
fácil decirlo, pero más difícil hacerlo. Con “Go to report”, dejamos al
asistente que se encargue de todo el proceso de apuntar al informe especificado
y que además le pase los parámetros. Pero con la especificación de la URL
tenemos que hacerlo todo nosotros:<o:p></o:p></span></span></span></div>
<span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;">
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
</div>
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
<span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;"><span style="font-family: Calibri;">Vayamos
por partes:<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
</div>
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
<span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;"><span style="font-family: Calibri;">Ponemos
un símbolo = y añadimos </span></span><span lang="ES-TRAD" style="color: #a31515; font-family: "Courier New"; font-size: 10pt; line-height: 107%; mso-ansi-language: ES-TRAD; mso-no-proof: yes;">"javascript:void(window.open(</span><span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
</div>
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
<span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;"><span style="font-family: Calibri;">Window.open
nos abrirá una ventana nueva, al especificar como segundo parámetro de esta
función: _blank<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
</div>
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
</div>
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
</div>
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
<span style="font-family: Calibri;"><span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;">Después
debéis especificar la ruta de vuestro servidor Report Server, la carpeta donde
se ubica el informe y después el informe: </span><span lang="EN-US"><a href="http://myserver/ReportServer?/myfolder/myreport"><span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;"><span style="color: #0563c1;">http://myserver/ReportServer?/myfolder/myreport</span></span></a></span><span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
</div>
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
<span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;"><span style="font-family: Calibri;">Veamos
con más detalle:<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
</div>
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
<span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;"><span style="font-family: Calibri;">Para
obtener el nombre de vuestro report server y el directorio virtual donde se
ubican los informes.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
</div>
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
<span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;"><span style="font-family: Calibri;">Haced
clic en programas:<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJIyC-3DLpDWAPA7rJRMWmGTOwDfCU6sBAENhL-Hk3fUXYgvGhnqUI5yfbBYYzNHOq0daVZW4tyaU2alukaXAj4RQxEjKDweuiZ4fvLImA8GcMtT_DruFFj5A4VXcxbot8F1CK7SWZmA5q/s326/ReportServiceManager.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJIyC-3DLpDWAPA7rJRMWmGTOwDfCU6sBAENhL-Hk3fUXYgvGhnqUI5yfbBYYzNHOq0daVZW4tyaU2alukaXAj4RQxEjKDweuiZ4fvLImA8GcMtT_DruFFj5A4VXcxbot8F1CK7SWZmA5q/s320/ReportServiceManager.jpg" height="303" width="320" /></a></div>
<br />
<br />
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
<span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;"><span style="font-family: Calibri;">Como
podéis ver, en la sección Report Manager URL nos muestra la URL a la que
tenemos que apuntar:<o:p></o:p></span></span></div>
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNfTJVlfAq_zGJUSEHnr8fcrNXu4ONT5uUamYo8JgVzseR_N-WLSiiVL9k_uossya7LpYC5P3KmlAfjY60a_FRqa5-H1GbWgFN8GgKslP51zhAPQfBX3ikd0AGBpLZ4Nyw-y6V-_jk5e8w/s623/ReportServiceManager2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNfTJVlfAq_zGJUSEHnr8fcrNXu4ONT5uUamYo8JgVzseR_N-WLSiiVL9k_uossya7LpYC5P3KmlAfjY60a_FRqa5-H1GbWgFN8GgKslP51zhAPQfBX3ikd0AGBpLZ4Nyw-y6V-_jk5e8w/s320/ReportServiceManager2.jpg" height="89" width="320" /></a></div>
</span><br />
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
<span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;"><span style="font-family: Calibri;">De modo
que ya tenemos la ruta hasta que nos encontramos el símbolo de interrogación:<o:p></o:p></span></span></div>
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
<span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;"><span style="font-family: Calibri;">="javascript:void(window.open('http://hpmobilewk:80/REPORTSERVER?/<o:p></o:p></span></span></div>
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
<span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;"><span style="font-family: Calibri;">Después
añadimos el nombre de la carpeta de nuestros informes y el informe al que
apuntamos (ojo, sin la extensión .rdl)<o:p></o:p></span></span></div>
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
<span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;"><span style="font-family: Calibri;">="javascript:void(window.open('http://hpmobilewk:80/REPORTSERVER<b style="mso-bidi-font-weight: normal;"><span style="color: red;">?/Informes_Prueba/Informe02</span></b><o:p></o:p></span></span></div>
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
<span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;"><span style="font-family: Calibri;">Y a
continuación especificamos los parámetros:<o:p></o:p></span></span></div>
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
<span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;"><span style="font-family: Calibri;">="javascript:void(window.open('http://hpmobilewk:80/REPORTSERVER?/Informes_Prueba/Informe02<b style="mso-bidi-font-weight: normal;"><span style="color: red;">&rs:Command=render&rc:Parameters=true&BANCO_MAEB="
& Join(Parameters!Banco_Maeb.Value,",") &
"&Fecha_Datos=" & Join(Parameters!Fecha.Value)<o:p></o:p></span></b></span></span></div>
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
</div>
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
<span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;"><span style="font-family: Calibri;">De
nuevo, debemos observar que los parámetros deben llevar el Join porque son
multiple valued.<o:p></o:p></span></span></div>
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
<span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;"><span style="font-family: Calibri;">Por
último añadimos el cierre de la cadena de este primer parámetro de la función
window.open: <o:p></o:p></span></span></div>
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
</div>
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
<span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;"><span style="font-family: Calibri;">="javascript:void(window.open('http://hpmobilewk:80/REPORTSERVER?/Informes_Prueba/Informe02&rs:Command=render&rc:Parameters=true&BANCO_MAEB="
& Join(Parameters!Banco_Maeb.Value,",") &
"&Fecha_Datos=" & Join(Parameters!Fecha.Value) <b style="mso-bidi-font-weight: normal;"><span style="color: red;">& "'<o:p></o:p></span></b></span></span></div>
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
<span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;"><span style="font-family: Calibri;">Y
añadimos el segundo parámetro:<o:p></o:p></span></span></div>
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
<span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;"><span style="font-family: Calibri;">="javascript:void(window.open('http://hpmobilewk:80/REPORTSERVER?/Informes_Prueba/Informe02&rs:Command=render&rc:Parameters=true&BANCO_MAEB="
& Join(Parameters!Banco_Maeb.Value,",") &
"&Fecha_Datos=" & Join(Parameters!Fecha.Value) & "'<b style="mso-bidi-font-weight: normal;"><span style="color: red;">,'_blank'))"<o:p></o:p></span></b></span></span></div>
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
</div>
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
<span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;"><span style="font-family: Calibri;">Ya lo
tendríamos. Por último señalar que lo ideal es parametrizar también el nombre
del servidor, la ruta del informe y el propio informe, con valores de un
dataset que nos permitan configurarlo de forma totalmente flexible:<o:p></o:p></span></span></div>
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
</div>
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
<span lang="EN-US"><span style="font-family: Calibri;">=”javascript:void(window.open(‘” &
Parameters!ServerAddress.Value & “?” & Parameters!ReportPath.Value
& “myreport&rs:Command=render&rc:Parameters=true&Period=” &
Parameters!Period.Value & “&Business_Unit=” &
Parameters!Business_Unit.Value & “‘,’_blank’))”<o:p></o:p></span></span></div>
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
</div>
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
<span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;"><span style="font-family: Calibri;">Es
cierto que es un poco engorroso trabajar en la ventana de expression de
reporting, pero yo he tenido que hacer cosas similares en la versión 3 XI de
Business Object y “madrecita, madrecita, que me quede como estoy…” </span></span></div>
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
</div>
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
<span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;"><span style="font-family: Calibri;">Saludos
a todos.<o:p></o:p></span></span></div>
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
Anonymoushttp://www.blogger.com/profile/17223651144761699793noreply@blogger.com2tag:blogger.com,1999:blog-3704682743990670708.post-84181817718161049922013-06-25T02:26:00.003-07:002013-06-25T02:26:48.828-07:00Parámetros múltiples con SSRSRecientemente he tenido que preparar unos informes en Reporting Services que requerían seleccionar un parámetro múltiple, similar al que se puede ver en la imagen a continuación:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0sFtaHtObbOqpBscg9NkwiRE-hiwphI31GNjfavP9JTX8M8jv8oKfFRTmC_t29UIqxzGfBfxMFLcVPmB19g1cPWSP7827dkYHHeqBZ-wdeD1l50xuYupfEwoTlWwC8mX4P1f5p8yLcj42/s1600/Multivalued_Parameter.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0sFtaHtObbOqpBscg9NkwiRE-hiwphI31GNjfavP9JTX8M8jv8oKfFRTmC_t29UIqxzGfBfxMFLcVPmB19g1cPWSP7827dkYHHeqBZ-wdeD1l50xuYupfEwoTlWwC8mX4P1f5p8yLcj42/s1600/Multivalued_Parameter.jpg" /></a></div>
<br />
En principio, lo lógico es considerar realizar una variación en la consulta que alimenta este reporte, en el sentido de añadir un IN a continuación de la clausula WHERE:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGgM5_sPfcdCT7EHly3wuvgud60n5ClRzjLQWcT0PkWAfxUoGwi5PWM3bzzvOU7yTInjffFFYyyR1Rbe6SfaV9uxDmMQWaIc82GXEmDgAynMBcBz0aEAddiQqYl5XSpBYcXKfu5HdjNIYp/s1600/WhereConIn.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="17" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGgM5_sPfcdCT7EHly3wuvgud60n5ClRzjLQWcT0PkWAfxUoGwi5PWM3bzzvOU7yTInjffFFYyyR1Rbe6SfaV9uxDmMQWaIc82GXEmDgAynMBcBz0aEAddiQqYl5XSpBYcXKfu5HdjNIYp/s320/WhereConIn.jpg" width="320" /></a></div>
<br />
Pues bien, cuando utilizamos como fuente un procedimiento almacenado es necesario realizar algunos pasos más para que podamos tener nuestro filtro múltiple.<br />
<br />
En primer lugar hay que generar una función en T-SQL que nos permita separar las distintas partes de una cadena que será lo que enviemos como parámetro:<br />
<br />
<br />
CREATE FUNCTION [dbo].[FnSplit]<br />( <br /><a href="mailto:--@List">--@List</a> nvarchar(2000),<br /><a href="mailto:--@SplitOn">--@SplitOn</a> nvarchar(5) <br />
@List nvarchar(MAX),<br />@SplitOn nvarchar(MAX)<br />) <br />
RETURNS @RtnValue table <br />(<br />Id int identity(1,1),<br />Value nvarchar(100)<br />) <br />
AS <br />
BEGIN<br />
While (Charindex(@SplitOn,@List)>0)<br />Begin <br />
Insert Into @RtnValue (value) <br />Select <br />Value = ltrim(rtrim(Substring(@List,1,Charindex(@SplitOn,@List)-1))) <br />Set @List = Substring(@List,Charindex(@SplitOn,@List)+len(@SplitOn),len(@List))<br />
End <br />
<br />Insert Into @RtnValue (Value)<br />Select Value = ltrim(rtrim(@List)) <br />
Return <br />
END<br />
Una vez creada esta función:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8zZfT8kccsaTe3a-wedWW1x8ShIEfMEvyB4WiAjTyHMVE94GBzZOpQThyphenhyphenry1vKcPJE8mCx7E86PoKh-jPWRpbj6nCf5HOgwiZv_jkF2oFzA9qDmRODT4RaR0vxlTU032pJ0wXlmP4UiqN/s1600/Table_Valued_Function.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8zZfT8kccsaTe3a-wedWW1x8ShIEfMEvyB4WiAjTyHMVE94GBzZOpQThyphenhyphenry1vKcPJE8mCx7E86PoKh-jPWRpbj6nCf5HOgwiZv_jkF2oFzA9qDmRODT4RaR0vxlTU032pJ0wXlmP4UiqN/s1600/Table_Valued_Function.jpg" /></a></div>
<br />
necesitaremos modificar la clausula WHERE de nuestra consulta principal:<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlB1NtYZs7V6LpGXTj9pw_07p5Tl2g2R6-rHQYtaA6hg1LSXx0vGsg8334h3hK97wXJDZBBYE3bI-VQJn5w0Qggx1op7w9fTScnzKozU0ur-Hkn-HIoMHAwv943KrGsFrlaqCLEuWSYxaO/s1600/WhereConIn_2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="57" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlB1NtYZs7V6LpGXTj9pw_07p5Tl2g2R6-rHQYtaA6hg1LSXx0vGsg8334h3hK97wXJDZBBYE3bI-VQJn5w0Qggx1op7w9fTScnzKozU0ur-Hkn-HIoMHAwv943KrGsFrlaqCLEuWSYxaO/s320/WhereConIn_2.jpg" width="320" /></a></div>
<br />
<span style="font-size: xx-small;"><span style="color: blue;"><span style="color: blue;"></span></span></span> Como podéis ver reemplazamos la sentencia:<br />
<br />
<span style="color: green; font-size: x-small;">--BANCO_MAEB IN (@BANCO_MAEB)</span><br />
<span style="color: green; font-size: x-small;"></span><br />
<span style="color: green; font-size: x-small;"></span> por:<br />
<br />
<span style="color: grey; font-size: x-small;"><span style="color: grey; font-size: x-small;">(</span></span><span style="font-size: x-small;">BANCO_MAEB</span><span style="color: grey; font-size: x-small;"><span style="color: grey; font-size: x-small;">)</span></span><span style="font-size: x-small;"> </span><span style="color: blue; font-size: x-small;"><span style="color: blue; font-size: x-small;">collate</span></span><span style="font-size: x-small;"> database_default </span><span style="color: grey; font-size: x-small;"><span style="color: grey; font-size: x-small;">IN(</span></span><span style="color: blue; font-size: x-small;"><span style="color: blue; font-size: x-small;">SELECT</span></span><span style="font-size: x-small;"> Value </span><span style="color: blue; font-size: x-small;"><span style="color: blue; font-size: x-small;">FROM</span></span><span style="font-size: x-small;"> dbo</span><span style="color: grey; font-size: x-small;"><span style="color: grey; font-size: x-small;">.</span></span><span style="font-size: x-small;">FnSplit</span><span style="color: grey; font-size: x-small;"><span style="color: grey; font-size: x-small;">(</span></span><span style="font-size: x-small;">@BANCO_MAEB</span><span style="color: grey; font-size: x-small;"><span style="color: grey; font-size: x-small;">,</span></span><span style="color: red; font-size: x-small;"><span style="color: red; font-size: x-small;">','</span></span><span style="color: grey; font-size: x-small;"><span style="color: grey; font-size: x-small;">))</span></span><br />
<span style="color: grey; font-size: x-small;"><span style="color: grey; font-size: x-small;">
</span></span><span style="font-size: x-small;"></span><br />
<span style="font-size: x-small;"> </span><br />
<span style="font-size: x-small;">Por último, debemos hacer algunos cambios en nuestros reportes:</span><br />
<span style="font-size: x-small;"></span><br />
<span style="font-size: x-small;">Nos aseguramos que nuestro parámetro admite entradas múltiples:</span><br />
<span style="font-size: x-small;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6qfR6B_L9UP2p4EUnFg4_G5YXaMtkmQ_K0OTdAPYQexkky4T2mtb9F-de6ls1ZjRo_KA6UWXDhLT3GD2QFzHy62DFIJb0dIn7IJwic5bgGhlW-snjPPTxONZ7JWzkBCymf7_Zvp7zg3My/s1600/Properties_Parameter.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="218" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6qfR6B_L9UP2p4EUnFg4_G5YXaMtkmQ_K0OTdAPYQexkky4T2mtb9F-de6ls1ZjRo_KA6UWXDhLT3GD2QFzHy62DFIJb0dIn7IJwic5bgGhlW-snjPPTxONZ7JWzkBCymf7_Zvp7zg3My/s320/Properties_Parameter.jpg" width="320" /></a></div>
<br />
<br />
<span style="font-size: x-small;">En las propiedades de nuestro dataset principal configuramos la sección de parámetros, tal y como se muestra a continuación:</span><br />
<span style="font-size: x-small;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimzlxcII4ggOXbze5wUyRrhLk_-6JhwX779wIdjVeeRiKQ01H6aeOwoPtHxMApSWv4OfWLdjTobQ3d7glPBQ7rixpBMz_j1l6bysoVpvVs-QR7NcjNqZOMYjERKfbiZsam020Wv1PivsFd/s1600/DataSet_Parameters_Properties.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimzlxcII4ggOXbze5wUyRrhLk_-6JhwX779wIdjVeeRiKQ01H6aeOwoPtHxMApSWv4OfWLdjTobQ3d7glPBQ7rixpBMz_j1l6bysoVpvVs-QR7NcjNqZOMYjERKfbiZsam020Wv1PivsFd/s320/DataSet_Parameters_Properties.jpg" width="301" /></a></div>
<br />
<span style="font-size: x-small;">Como nuestro parámetro debe aceptar múltiples entradas lo configuramos haciendo uso de la función Join para vincular los parámetros múltiples separados con una coma:</span><br />
<span style="font-size: x-small;"></span><br />
<strong><span style="font-size: x-small;">=Join(Parameters!BANCO_MAEB.Value,</span><span style="color: #a31515; font-size: x-small;"><span style="color: #a31515; font-size: x-small;">","</span></span><span style="font-size: x-small;">)</span></strong><br />
<span style="font-size: x-small;"></span><br />
<span style="font-size: x-small;"></span><br />
<span style="font-size: x-small;">Y ya estaría. Parece un poco enrevesado pero en cuanto tengáis la función FnSplit creada, el resto es bastante sencillo.</span><br />
<span style="font-size: x-small;"></span><br />
<span style="font-size: x-small;"></span><br />
<span style="font-size: x-small;">Saludos.</span><br />
<span style="font-size: x-small;"></span><br />
<span style="font-size: x-small;">José Antonio.</span>Anonymoushttp://www.blogger.com/profile/17223651144761699793noreply@blogger.com1tag:blogger.com,1999:blog-3704682743990670708.post-82868275939656404462013-06-19T07:09:00.000-07:002013-06-20T05:00:26.489-07:00Segmentación de clientes<br />
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
<span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;"><span style="font-family: Verdana, sans-serif;">Dentro
de las técnicas de análisis y de minería de datos una de las más famosas es la
segmentación, especialmente la segmentación de clientes. Es curioso, pero la
mayor parte de las veces que he hablado de segmentación con algún cliente en el
que he trabajado o con compañeros de profesión me da la sensación que para
ellos segmentar es aplicar un sofisticado algoritmo, como el k-means clustering
que, de alguna manera, agruparía nuestros clientes en segmentos perfectamente
homogéneos.<o:p></o:p></span></span></div>
<span style="font-family: Verdana, sans-serif;"></span><br />
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
<span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;"><span style="font-family: Verdana, sans-serif;">Es
también curioso que en los ejemplos de cómo aplicar la segmentación de clientes
se utilizan BBDD del estilo AdventureWorks de Microsoft, donde se posee
información muy detallada de clientes como número de hijos, ingresos anuales,
tipo de empleo, nivel de estudios, número de coches que posee…<o:p></o:p></span></span></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxYCHimU6Vf691ZxOIibtws8Dzw58vtNNk0D6WKRs6yt0Jt4DsgwhFxcC-YKAd7Lu4-j9JSaExlyrfmeEGMRJ_KmvGIsICTQ7Wcd0ZUOAU6LiOIgxN5eG09YEn_J8x7nlX_1H7ZZ_Mgfg9/s1600/ClusteringAW.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="181" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxYCHimU6Vf691ZxOIibtws8Dzw58vtNNk0D6WKRs6yt0Jt4DsgwhFxcC-YKAd7Lu4-j9JSaExlyrfmeEGMRJ_KmvGIsICTQ7Wcd0ZUOAU6LiOIgxN5eG09YEn_J8x7nlX_1H7ZZ_Mgfg9/s1600/ClusteringAW.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<span lang="ES-TRAD" style="font-family: "Calibri","sans-serif"; font-size: 9pt; line-height: 107%; mso-ansi-language: ES-TRAD; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-font-size: 11.0pt; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"></span><div class="separator" style="clear: both; text-align: left;">
<span lang="ES-TRAD" style="font-family: "Calibri","sans-serif"; font-size: 9pt; line-height: 107%; mso-ansi-language: ES-TRAD; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-font-size: 11.0pt; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><strong> <span style="font-size: xx-small;">Típico
ejemplo naif de segmentación aplicada a la BBDD de AdventureWorks</span></strong></span></div>
<span lang="ES-TRAD" style="font-family: "Calibri","sans-serif"; font-size: 9pt; line-height: 107%; mso-ansi-language: ES-TRAD; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-font-size: 11.0pt; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">
<span style="font-family: Calibri;"><div class="separator" style="clear: both; text-align: left;">
</div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: Times New Roman;">
</span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
<span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;"><span style="font-family: Verdana, sans-serif;">Evidentemente
esto no es nunca así, ni tan siquiera en EEUU donde las leyes son mucho más
permisivas con el uso de información para marketing.<o:p></o:p></span></span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: Verdana, sans-serif;">
</span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
<span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;"><span style="font-family: Verdana, sans-serif;">Segmentar
por información demográfica o a nivel demográfico (código postal, sección
censal,…) puede ser interesante pero, no provee información a nivel de cliente
sino, en el mejor de los casos provee información agregada a nivel de
vecindario.<br />
<br />
</span><span style="font-family: Verdana, sans-serif;">La información realmente relevante para un negocio no va a venirnos dada de
ninguna fuente de datos externa, por mucho dinero que nos cueste. A menos que
hablemos de un negocio recién arrancado, nuestras fuentes más valiosas de
conocimiento vendrán de los sistemas de las empresa (operacionales, sistemas de
CRM, Data Warehouses,…).<o:p></o:p></span></span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: Verdana, sans-serif;">
</span><span lang="ES-TRAD" style="font-family: "Calibri","sans-serif"; line-height: 107%; mso-ansi-language: ES-TRAD; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><span style="font-family: Verdana, sans-serif;">
</span><span style="font-family: Verdana, sans-serif;"><span lang="ES-TRAD" style="font-family: "Calibri","sans-serif"; line-height: 107%; mso-ansi-language: ES-TRAD; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">Las
verdaderas perlas de conocimiento de un negocio, como son los hábitos de compra
de nuestros clientes, solo aparecen después de años de actividad y cientos de
miles de transacciones donde lenta e inexorablemente se irán perfilando
patrones o tendencias, es decir, información extrapolable a conocimiento dentro
del ruido general.<br />
<br />
Con información de este estilo más un conocimiento muy profundo del mercado,
canales y la competencia donde trabajas es con lo que se pueden hacer campañas
de marketing directo que garanticen un mínimo de éxito y rentabilidad.</span><!--[if !supportLineBreakNewLine]--></span></span></div>
<div class="separator" style="clear: both; text-align: left;">
<span lang="ES-TRAD" style="font-family: "Calibri","sans-serif"; line-height: 107%; mso-ansi-language: ES-TRAD; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><span style="font-family: Verdana, sans-serif;"></span></span> </div>
<span lang="ES-TRAD" style="font-family: "Calibri","sans-serif"; font-size: 11pt; line-height: 107%; mso-ansi-language: ES-TRAD; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><div class="separator" style="clear: both; text-align: left;">
<span style="font-family: Verdana, sans-serif; font-size: small;">
</span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
<span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;"><span style="font-size: small;"><span style="font-family: Verdana, sans-serif;">Volviendo
al tema de la segmentación, hay agrupaciones que surgen de forma “natural” en
función del negocio en el que trabajamos. En el mundo del retailing es muy común
encontrarse con algunas de este estilo:<o:p></o:p></span></span></span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-size: small;"><span style="font-family: Times New Roman;">
<!--[endif]--></span></span></div>
</span><div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiICqY5-IO6m9Md1zibz0Db9R6j9Ug15zRDIMkamwicq044YOnan29OI8_kwXS34gLoXMFH2QBbx7hcNRliU6Lzn3vzn5-MuhgPFuSmcAcRwr4WI0lsqsPNaNd2f0VhwgSUbG5clibfN2jR/s1600/Categorizacion.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiICqY5-IO6m9Md1zibz0Db9R6j9Ug15zRDIMkamwicq044YOnan29OI8_kwXS34gLoXMFH2QBbx7hcNRliU6Lzn3vzn5-MuhgPFuSmcAcRwr4WI0lsqsPNaNd2f0VhwgSUbG5clibfN2jR/s1600/Categorizacion.jpg" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Times New Roman;">
</span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
<span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;">Es
importante, como explicaré en una entrada posterior, partir de una adecuada
definición de categorías y subcategorías de productos/servicios. Estos son al
fin y al cabo nuestros outputs a nivel de negocio. A medida que nuestros
clientes los van adquiriendo nos permiten segmentar a estos últimos en clientes
de productos de salud, belleza, fitness,… <o:p></o:p></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Times New Roman;">
</span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
<span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;">Con el
tiempo, la información de hábitos de compra, respuesta a campañas o
promociones, gestiones con atención al cliente, más otra información de
carácter financiero nos permitirán obtener el llamado <u>“customer value”</u> de
nuestro cliente.<o:p></o:p></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Times New Roman;">
</span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
<span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;">Dentro
de mi experiencia en clientes del sector retailing, tal vez las casuísticas más
interesantes se me han presentado en el mundo del Home Shopping o TeleTienda.
Este tipo de retailing es bastante distinto al que podríamos llamar más
tradicional, pero también mucho más dinámico e interesante.<br />
¿Qué caracteriza este tipo de canal? ¿En qué se diferencia de aquellos más
convencionales?<o:p></o:p></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Times New Roman;">
</span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
<span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;">Bien,
como leí recientemente en un libro sobre el tema de <span style="color: #38761d;"><b style="mso-bidi-font-weight: normal;">Nick Romer</b>: </span><i style="mso-bidi-font-style: normal;"><strong><span style="color: #38761d;">“Make millions
selling on QVC”</span></strong> </i>vender por un canal de Teletienda es como tener tu producto
al lado de la caja registradora, donde cientos de miles de personas están de
pie observándolo mientras esperan en la cola para pagar.<o:p></o:p></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Times New Roman;">
</span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
<span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;">Es
un área interesante, pero es compleja, influye mucho la ciencia del comportamiento,
como veremos en próximas entradas. <br />
<br />
Les adelantaré aquí que influye mucho lo que se denomina el <u>efecto expectativa</u>. Las
expectativas influyen,en gran medida, en las percepciones y el
comportamiento. Si explicamos a un nutrido grupo de personas que un producto
nuevo va a cambiar sus vidas (su aspecto físico, su vitalidad o su calidad de
vida), un número significativo de ellas experimentará ese cambio.<span style="mso-spacerun: yes;"> </span>La creencia actúa así como un instrumento que
ayuda a provocar el cambio. Con un convincente infomercial una persona puede
creer que algo va a ocurrir (adelgazar, moldear sus abdominales,…), la idea por
sí misma crea esa posibilidad.<o:p></o:p></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Times New Roman;">
</span></div>
<div class="MsoNormal" style="margin: 0cm 0cm 8pt;">
<span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;"><br />
Es importante pues, a través de los canales correspondientes, convencer y
establecer las expectativas de un modo creíble al destinatario en lugar de
dejar que éstos lleguen a conclusiones sesgadas.<br />
<br />
En resumen,<o:p></o:p></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Times New Roman;">
</span></div>
<div class="MsoListParagraphCxSpFirst" style="margin: 0cm 0cm 0pt 36pt; mso-list: l0 level1 lfo1; text-indent: -18pt;">
<!--[if !supportLists]--><span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri; mso-hansi-font-family: Calibri;"><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";">
</span></span></span><!--[endif]--><span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;">La segmentación es un negocio “real” debe estar basada en variables de
comportamiento de compra del usuario, las variables sociodemográficas, en caso
de poderse obtener, deben servir para complementar el perfil de nuestros
clientes.<o:p></o:p></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Times New Roman;">
</span></div>
<div class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 36pt; mso-list: l0 level1 lfo1; text-indent: -18pt;">
<!--[if !supportLists]--><span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri; mso-hansi-font-family: Calibri;"><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";">
</span></span></span><!--[endif]--><span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;">Muchas veces, la segmentación de nuestros clientes vendrá condicionada
por la categorización que tengamos en nuestro portfolio de productos.<o:p></o:p></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Times New Roman;">
</span></div>
<div class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 36pt; mso-list: l0 level1 lfo1; text-indent: -18pt;">
<!--[if !supportLists]--><span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri; mso-hansi-font-family: Calibri;"><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";">
</span></span></span><!--[endif]--><span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;">Para emprender acciones comerciales de marketing directo,
necesitaremos poder puntuar a nuestros clientes a través de KPI’s o indicadores
que midan principalmente la rentabilidad de nuestro clientes. Es necesario calcular un
customer value.<o:p></o:p></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Times New Roman;">
</span></div>
<div class="MsoListParagraphCxSpLast" style="margin: 0cm 0cm 8pt 36pt; mso-list: l0 level1 lfo1; text-indent: -18pt;">
<!--[if !supportLists]--><span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-fareast-font-family: Calibri; mso-hansi-font-family: Calibri;"><span style="mso-list: Ignore;">-<span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span></span><!--[endif]--><span lang="ES-TRAD" style="mso-ansi-language: ES-TRAD;">La venta de Home Shopping es un tipo de retailing muy característico relativamente
poco estudiado y que requiere de un conocimiento de ciencias del
comportamiento. <br style="mso-special-character: line-break;" />
<!--[if !supportLineBreakNewLine]--><br style="mso-special-character: line-break;" />
<!--[endif]--><o:p></o:p></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: Times New Roman;">
</span></div>
<div class="separator" style="clear: both; text-align: left;">
</div>
</span><div class="separator" style="clear: both; text-align: left;">
<br /></div>
<br />
<br />
<br />
<br />
</span><br />
<div class="separator" style="clear: both; text-align: left;">
</div>
Anonymoushttp://www.blogger.com/profile/17223651144761699793noreply@blogger.com0