Skip to main content

Simplified Chain Analytics

Project description

eventchain

What is an event chain ?

An event chain is basically like a series of dominoes, where knocking over the first one triggers the next one, and so on. In processes or systems, an “event” is something that happens—a trigger, an action, a message, etc. Once this first event occurs, it sets off a chain reaction of other events.

Imagine you’re at home and your doorbell rings. That’s the first event. The ringing doorbell could trigger a series of other events:

  • Your dog starts barking because of the doorbell.
  • You get up from your chair to see who it is.
  • You open the door and greet your friend.
  • You invite your friend inside.
  • You both sit down and start talking.
  • Each of these actions is an event, and they’re all connected. The doorbell ringing set off a “chain” of events, one leading to the next.

In business or computer systems, understanding event chains can be crucial for analyzing how actions and reactions are interconnected. Knowing how one event affects the next helps you design better processes, make systems more efficient, or find out where things might go wrong.

Install

pip install eventchain

How to use

Fill me in please! Don’t forget code examples:

import pandas as pd
from eventchain.core import *

Building a new event chain is super simple:

You create a new EventChain object with the following parameters:

chain = EventChain(df1=shoppingcard, df2=purchases, user_col="user_id", timestamp_col="date", suffix=["added_to_shoppingcard", "purchased"])

Once done you have access to all event chains calculated for you.

As an example let’s have a look at the event chain first_before_first
which can be interpreted in our example as the first date a user added an item to their shopping card before the first date they purchased.

chain.first_before_first
<style scoped> .dataframe tbody tr th:only-of-type { vertical-align: middle; } .dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; } </style>
user_id date_added_to_shoppingcard date_purchased gap
0 1 2018-07-01 2018-07-02 1 days
3 5 2018-07-10 2018-07-11 1 days
4 6 2018-07-07 2018-07-10 3 days
5 8 2018-08-01 2018-08-02 1 days

In addition (and for illustration purposes ignoring the fact that a shopping cart would have its own ID), we can now check the last date a user created a shopping cart before their first purchase.

chain.last_before_first
<style scoped> .dataframe tbody tr th:only-of-type { vertical-align: middle; } .dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; } </style>
user_id date_added_to_shoppingcard date_purchased gap
0 1 2018-07-01 2018-07-02 1 days
4 6 2018-07-08 2018-07-10 2 days

For user_1 the first date and last date for shpping cart creation is the same, however user_6 had two shopping carts created (here our interpretation would be she dropped out one time).

Please note that - in these first iterations of the package - not much tooling has been added to do such comparisons in a convenient way, so you would have to implement your own downstream analysis.

Event Chain Stats

The first data frame is used to calculate some distribution statistics of the gap betwenn event A (first time shopping card creation) and event B (first time purchasing),
the second is used as a baseline and to calculate the percentage of occurrence of event A compared to event B.

stats = get_stats(chain.first_before_first, chain.any_event_A, user_col="user_id", gap_column="gap")
==================================================
Metric                         Value     
==================================================
no_events_of_interest          4         
all_events                     7         
pct                            57.14285714285714
mean_gap                       1.5       
median_gap                     1.0       
std_dev                        1.0       
min_gap                        1         
max_gap                        3         
25th_percentile                1.0       
50th_percentile                1.0       
75th_percentile                1.5       
skewness                       1.9999999999999998
kurtosis                       4.0       
conf_interval_lower            0.520018007729973
conf_interval_upper            2.479981992270027
==================================================

Some areas where event chain analysis can be used:

These easy to build event chains enables lots of ways to analyse your data and to answer interesting questions about your processes or customer behaviour.

  • Time Analyis
  • Cost Analysis
  • Dependency Mapping
  • Sensitivity Analysis
  • Simulation Models
  • Error Impact Assessment
  • Success Metrics
  • User Experience Journey
  • Feedback Loops
  • Comparative Analysis

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

eventchain-0.0.3.tar.gz (11.0 kB view details)

Uploaded Source

Built Distribution

eventchain-0.0.3-py3-none-any.whl (10.0 kB view details)

Uploaded Python 3

File details

Details for the file eventchain-0.0.3.tar.gz.

File metadata

  • Download URL: eventchain-0.0.3.tar.gz
  • Upload date:
  • Size: 11.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.9

File hashes

Hashes for eventchain-0.0.3.tar.gz
Algorithm Hash digest
SHA256 b7b961d5354dd74ce423a0702827886bc7d4044216b79cdb9fc558b50f0ef1a2
MD5 1519347386abdd754a7b3a6d8f7a654d
BLAKE2b-256 336d85a6acb7e3c40d42213c575b7a24b03f912cad373b944b40c1479051c299

See more details on using hashes here.

File details

Details for the file eventchain-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: eventchain-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 10.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.9

File hashes

Hashes for eventchain-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 733f6d9a46455ee1a3e53231a53b9f34ecf7dfcb371ac62b996a64ff1e719407
MD5 f8768e47003f49744c08a30fc37a8092
BLAKE2b-256 a6adf31c7ffe754a955205a45cf4763dcefdbf1032a0b2150b9ada34630b78fb

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page