Holiday Community App-Building Challenge

Deadline to submit an app has been postponed to end of day (midnight) January 16, giving everyone the full weekend to finalize and enhance their apps.

‘Tis the season for wish lists and add-to-carts! With the upcoming holidays, consumers are looking to pick the best gifts, and retailers are trying their hardest to attract them.

For this reason, we would like to challenge the Plotly Community to build the most impressive customer segmentation data app to better understand consumer behavior.

The customer churn data was provided by IBM to solve business problems and predict customer churn for a fictional telecommunication company. See the data description.

To enter the Community Challenge, please download the dataset, create an app, and share it by replying to this Forum topic by midnight Saturday, January 14. Please share your app code to participate, and share a link to the deployed app if possible.

The winning apps will be judged according to the following categories:

  • Ability to provide insight on the relationship between churn and customers’ characteristics
  • App Design
  • Data exploration and data analysis routines (e.g. numerical methods, machine learning, prediction, classification, optimization)

The winners will be announced in the next Dash Club dispatch. The app winners will receive a Plotly New Years package as well as:

:1st_place_medal: $125 USD

:2nd_place_medal: $75 USD

:3rd_place_medal: $50 USD

For any questions, feel free to reply to the Forum topic or message me (Adam) directly.


Hi adam, quick question about the data.

in the column payment method in the data description we have the options:
Bank Withdrawal, Credit Card, Mailed Check
but in the data we have:
‘Electronic check’, ‘Mailed check’, ‘Bank transfer (automatic)’, ‘Credit card (automatic)’
also, we have the (automatic) note, is there an option to use a credit card that is not automatic?
is bank withdrawal another name for bank transfer?

hi @Matan

Good questions.

I think they add the note “automatic” to credit card and bank transfer because once it’s set up, the company automatically charges the customer every month. However, the other payments method don’t have an automatic note in parenthesis because they depend on the customer making the payment every month by sending in the check.

And yes, I think bank withdrawal another name for bank transfer.

But, I would wouldn’t worry too much about the exact alignment of the values of the payment column with the data description. The main focus is that the payment column Indicates how the customer pays their bill.

I hope this helps.

1 Like

Hi @adamschroeder, thank for opening this contest.
I would like to share my app and I really want to receive your feedbacks.
Here is the link to app: Holiday Challenge
Here is the link to github: github

I deployed app to render but with free tier, it operates quite slow so please sympathy with me.


Beautiful App. Thank you for creating and sharing, @hoatran.
It’s actually not that slow, it just takes time to load the first time :slight_smile:

What library are you using for the churn prediction section?

1 Like

Yep, I’m comparing app that deployed on local with on render and I saw that it slower about 3 times than on local :smiling_face_with_tear: . I’m using Decision Tree Classifier for churn prediction section. Thank you.

1 Like

Hi @adamschroeder

I decided to try this challenge after I worked on a very similar project at work where we predicted renewals.

I really enjoyed working on a dashboard for fun and learned quite a lot.

Here is the app: Deployed App

Here is the GitHub repo: GitHub

I used Dash Mantine Components for the components and I used scikit-learn for the random forest classifier.


Great app, churn prediction with all of inputs is so amazing too. Gonna learn it from your code.

Beautiful app, Andrew (@aschutte). Looks very professional.

Did you get close to the true renewal number, using the app you built for renewals?

I saved my random forest model as a pickle file and loaded it within the callback.

My model was pretty close to the actual renewal rate. I think it had an accuracy in the mid 80s.

Considering all of that, the inputs in the app should be pretty close.

Hi everyone,

Thanks, @adamschroeder for informing me about this holiday challenge.
Dear community members, I’m happy to share my app and receive your feedback:

This app contains a lasso regression predictive model based on pycaret 3.0.4rc .


Link to my app (AWS beanstalk) : application link

Mirror 1 (Render): render app deployment

I deployed the app on AWS beanstalk I’ll keep it available till next month.
The other free tier render link is there but it’s slow to operate ( free tier :smile_cat: )

Github link:

Github repository link

app screenshots

Thanks for reading :slight_smile:


Here is the GitHub repository :

Link of the app on Render:


Very nice images of the app. Thanks for creating and submitting this, Somesh. I can tell you put a lot of time into this.

1 Like

hi @Joao82
Thanks for making this app. Great usage of dash bootstrap components :slight_smile:

1 Like

Thanks, Adam :slight_smile: Looking forward to more challenges and contributions :slight_smile:

:wave: Hello

Github link:

GitHub Repo

app on Render




Beautiful. Thank you for building and submitting this app, @AbdelAnlah :pray:

Thank you everyone for submitting your awesome apps to this challenge.

Plotly staff will judge all the submitted apps, and a decision will be announced on the top three mid-Febraury.