Small businesses have been one of the biggest casualties of the COVID19 pandemic in America- in fact, 41.3% have temporarily closed as a result. But in a world filled with data and forecasting technology, there’s no reason that they shouldn’t have an idea of the impact of a disaster ahead of time and be able to plan accordingly.

After interviewing small business owners, we found that simple, user-friendly, and streamlined accounting and financial planning software was one of the most important tools owners lacked. Financial literacy and planning is currently one of the most convoluted and unnecessarily difficult processes owners spend their precious time and energy on.

After compiling a list of features that would be helpful to business owners, we set out to build software that would empower them to expedite their work flow and focus on what’s important: growing their business and serving their customers while being able to predict and account for potentially catastrophic events such as the COVID19 pandemic. We used the Finastra API in order to create a centralized app that would allow small business owners to connect their banking information to RainyDay to allow for a streamlined workflow as well as personalized predictions.

What it Does

RainyDay is the new solution to streamlining financial planning for businesses. Through RainyDay, owners will be able to use the following features:


  • A user friendly and interactive dashboard that lets small business owners input data about their business
  • Users can upload excel spreadsheets that they were previously using to keep track of financial data
  • Users can edit directly on the dashboard in order to modify any revenue or costs information.

Predictive modeling for financial planning with machine learning

  • Through machine learning models built by yours truly, business owners will be able to predict their estimated revenue, costs, and profits for their particular industry or business type, such as essential businesses like grocery stores and medical centers, beauty, tourism, and more.
    • Our predictive model was formed with the help of a K-Nearest Neighbor machine learning model we built to classify these business types
  • Users can link RainyDay with their bank account with Finastra, and be able to get personalized predictions by pulling information from Finastra.
  • Users will be able to view this data based on any percentage of population estimated to be vaccinated at any given time in the near future.
  • We implemented a regression model to figure out the relationship between costs and revenue for each individual business, so that each user could receive a model that was fine tuned to their own Finastra data.
  • For instance, if users want to see what they predicted financial status will look like in the next few months if half of the population is vaccinated, they will be able to view their projected revenue, profit margins, and more. This projection will have been educated by our regression model.

Loan Info

  • Use a form to input specifications about your business (location, size, revenue), the importance of which were identified by our customer research efforts.
  • Get a table of results for government centers in your vicinity dedicated to helping small businesses of your size thrive.

How We Built It

First, we identified the issues that business owners would face on a day to day basis in relation to accounting management, and financial planning. We did some research on the internet, as well as interviewed some small business owners. We were able to narrow down the scope of the problem, and we decided to focus on features that would address 3 major problems: (1) the difficulty in simplifying and analyzing large amounts of accounting data and (2) the difficulty in predicting how to prepare for rainy days amidst the COVID-19 pandemic and (3) finding and learning about various governmental and local relief funds.

We hosted several brainstorming sessions, and after several very bad ideas, came up with the idea for Rainy Day along with an initial design.

Rainy Day mock up

To implement an authentication system, we used OAuth 2.0 to login through Finastra. We use Redux to manage the user state on the React app and MongoDB to store user data and associate users with their previous spreadsheets and prediction models.

After logging in, the small business owner can upload existing financial data from Excel or pull bank account statements directly using the Finastra API. When the data is loaded, the application asks the owner which account to use from the corporate accounts and balances API for the predictive model. The application sends the corresponding account statement data from March (the start of the pandemic) to the present to develop the machine learning model.

To enable state of the art data analysis for business owners, we also built our very own machine learning predictive models to analyze historical data of various businesses. With the help of Python libraries like Numpy, we built models with the capability business types based on this past year’s revenue and profit margins. This classification algorithm enabled our main predictive modeling feature, which allows businesses to prepare for rainy days and plan ahead of possible effects of COVID such as possible shutdowns, stay-at-home orders, and vaccination rates. Using historical data to project how future financial disasters can be caused by COVID-19, we enabled predictive modeling to forecast how a business can expect to perform based on an estimated proportion of the population expected to be vaccinated. To account for the ever changing nature of COVID-19 and vaccination availability, we provided our users the capability to tune this vaccination rate and see where they stand should a rainy day happen in the future.

The predictive models are then displayed in a user-friendly way by displaying bar graphs showing the predicted revenue, costs, and profit over the course of 2021. These numbers rely on the banking information pulled from the Finastra client as well as the vaccination rates. Therefore, this model is adaptive and flexible- it will be able to change and provide helpful predictions based on the numbers in your bank account.

We also implemented a dashboard view where users could import in a pre-existing excel sheet to start populating their dashboard. Here, users can keep track of their expenses as well as their income. This easy to use UI has flexible row addition and deletion, and makes it easy for small business owners to keep track of all book-keeping in one place.

The smart loans page was implemented by web scraping a government website that offered loan help information. The page gets information about the user’s business, such as the size and the income of the business. Then, we query the difficult to use government website and display the information relevant to the user in our easy to use website! This may help users find places to help get loans from, a task that can be daunting to those who are just starting off with their business.

Challenges We Ran Into

Wrangling with various Node modules was quite difficult given how often dependencies were changing throughout the development process.

During our brainstorming phase, researching and learning about how local businesses operate and how they utilize and rely on accounting and financial data to survive was much more complex than we had imagined. We interviewed various business owners and struggled to understand how they kept track of their finances. We faced our first roadblock when we were trying to scope our project. We wanted to create software that would be simple and elegant, while addressing the crux of the problems that business owners face. In order to do this, we spent many Zoom sessions discussing and outlining pain points these owners face on a day to day.

With regards to technical issues, we faced difficulties when all team members attempted to access our MongoDB database and server at the same time. The overload meant that our connections were refused.

Since Finastra used OAuth 2.0, we expected our servers to perform the code/token exchange and have the client directly query the Finastra server. However, the Finastra API servers were not set up to handle CORS so the preflight requests were refused. To get around this issue, we proxied the client requests through a Node.js Express server.

There were also instances where the Finastra API would return strange error codes like a 400 instead of a 401 when inputting certain invalid access tokens and a 404 instead of a 400 when it did not receive certain required parameters.

A development pain involved writing React code without pre-planning. We expected a larger codebase/application and imported Redux to keep track of the global user state. However, the Redux code caused some spaghetti code and wacky navbar issues. We also had a different design originally and changed it at the last minute so our React file organization does not reflect the true app pathing and organization.

Accomplishments we are proud of

We are most proud of creating relevant and easy to use software with a powerful financial API like Finastra. We believe that as software engineers, we should be empowering people to do more in the world, and we are proud to have overcome various technical and non technical difficulties in order to build a functional and relevant product. We are happy we were able to use our technical skills to solve real life problems and help those struggling most during this pandemic.

What We Learned

  • Difference between asynchronous and synchronous functions in JavaScript
  • How to break down a large task into smaller components
  • User research and analysis with real life business owners for product design
  • Time management
  • Integrating accounting information with the Finastra API
  • Collaborating with a team in a virtual environment
  • Communicating effectively through a virtual platform
  • More React 😍 and how to deal with CORS (again) 😡
  • How to parse hundreds of data points and visualize them efficiently in the browser
  • Applying machine learning theory to real world applications

What is next

We are hoping that our product can be deployed to small business owners around the world. If this deployment were to happen, we would sort and recommend certain business centers as an improvement on simply displaying data. We are excited to further integrate the Finastra service into our app in order to help small buisness owners with the power of fintech and breaking edge technology. We hope to enhance our machine learning models to have the ability to tailor recommendations and tips to business owners based on the industry they currently work in. With personalized machine learning algorithms, users will be able to get ahead of their finances and bookkeeping in a way that is perfectly suited for their business needs. We are committed and excited to making a difference in the world through building software that empowers businesses around the world to do what they do best: serving their customers.

Share this project: