IBM Cognitive - Weather Sales Performance Analytics - Service Proof of Concept

Key Information

The challenge is finished.
Show Deadlines

Challenge Overview

The goal of this project is to develop a demo application that leverages cognitive thinking and technology to help business users to understand the overall effect of weather on sales for different business units and materials. While the related design challenge is underway, we want to start up development by setting up necessary services and data processing. You may check these wireframes to better understand suggested usage of the application, though these are not the final decisions on how the App will work.

Topcoder Cognitive Community

This challenge is part of Topcoder Cognitive Community challenge series. Along with cash prizes, you will win Cognitive points towards the Leaderboard and the leader at the end of the challenge series wins an all expenses paid trip to TCO17.

The placement you earn in these challenges (non-F2F) will determine how many Cognitive points will be added to your total on the Leaderboard:
1st place = 500 pts
2nd place = 350 pts
3rd place+ = 100pts

If you have not already, go to http://cognitive.topcoder.com/ and join the Topcoder Cognitive Community.

Challenge Scope

In this challenge you will prepare services for
- IBM Bluemix Weather Company Data
- IBM Bluemix Retrieve and Rank

And you will use them to implement the following staff:
1. Pull historic weather data / forecast for the specified locations / periods of time.
2. Based on historic weather data generate mock sales data and upload them to Retrieve and Rank.
3. Use Retrieve and Rank to pull historic data / forecasts / alerts.

Weather Data

We want to use real weather data all around. This seems to be quite straightforward, we just need to prepare a convenient service wrapper around IBM Bluemix Weather Company Data for getting weather history / forecasts / alerts. In case of any doubts don't hesitate to ask about details in the forum.

Sales Data

We will mock sales data. As we want to further use them to demostrate some machine intellegence in hihgligthing correlations between sales and weather, we should generate mock data in somewhat smart way. While the actual implementation is up to you to elaborate, here is the rought idea:
1. We configure a set of locations we are working with, and a timespan for generated data.
2. We configure a list of sale articles, for each article config will include:
  - name
  - average sale rate (like items sold per average day)
  - whether the good or bad weather benefits / spoils / have no impact on sales of this item.
3. You pull real wether data for locations / dates from (1), and for each day, location, item you generate the sold amount based on weather and config from (2). You use random function to make generated data somewhat fluctuating, but they should follow the config, i.e. the average sale rate should be achieved, on average, for days with moderate weather, somewhat worse / better sales should be achieved on days with better / worse weather.
Again, feel free to ask about details in the forum.

Retrieving Data

We want to upload generated sales data into IBM Bluemix Retrieve and Rank service, and further use R&R service both to pull historic sales, and to make some predictions about further sales depending on the weather forecast. This part of the task, especially in its forecast part, is really up to you for investigate what can be done. Probably, some simple forecasting, like finding historic data from sales in the same location on a day with similar weather will be fine. The focus in this challenge is on making described services and logic working technically reasonably well for the demo purposes, on not on making the best forecast ever (i.e. the focus now is on development, not on a serious data-science).

Technical Requirements

The plan is, in subsequent challenges, to integrate prepared services and logic into ReactJS / Redux App. We will base that ReactJS App on our Topcoder Community App setup. Though this challenge is focused on the services only, please follow the coding style from Community App: use the same eslint / babel configuration, keep your implementation of services isomorphic, etc.


Final Submission Guidelines

Submit your code, with verification and deployment instructions, and a brief demo video.


Topcoder will compensate members in accordance with our standard payment policies, unless otherwise specified in this challenge. For information on payment policies, setting up your profile to receive payments, and general payment questions, please refer to ‌Payment Policies and Instructions.


Final Review:

Community Review Board


User Sign-Off

ID: 30058053