During brain storm sessions, the identified lead may want to initiate the necessary tools for each participant to bring along including a piece of paper and pencils to take down notes.

  • Usually, these sessions should last an hour. The first 30 minutes will be open-ended questions and answers from the group.
  • The next 15 minutes should be elimination of similar suggested questions or identified attributes by multiple participants.
  • The last 12 minutes is to finalize the necessary needed questions and newly identified attributes to include into the existing systems.
  • The last 3 minutes is use for addressing questions if not mentioned during the entire session. These questions if any, will be documented and discuss during the consecutive sequential schedule meetings for this project.

Brain storming is one of the tools recommended by 6-Sigma on how to reduce cluttering in order to accelerate with the documentation of the necessary agreeable requirements after presentations to Stakeholders of this project.

1.1 Causes and Solutions

Brainstorming is a method for generating ideas in a group situation. Teams and departments should use brainstorming when:

  • Determining possible causes and / or solutions to problems.
  • Planning out the steps of a project.
  • Deciding which problem (or opportunity) to work on.
1.1.1 Running a Brainstorming Session

Provide a time limit for the session. Generally 30 minutes is sufficient. Identify one or more recorders to take down notes during the session. The recorders’ job is to write all ideas down (where everyone can see them, such as on a flipchart or overhead transparency) as they are voiced.

Choose either:

  • a freewheeling format (share ideas all at once, list all ideas as they are shouted out) or
  • a round robin format (everyone takes a turn offering an idea, anyone can pass on a turn, continue until there are no more ideas, all ideas are listed as they are offered).
  • Filling and sharing feedback / questionnaire forms.

1.2 Establish the ground rules

1.2.1 Ground Rules
  1. Don’t edit what is said and remember not to criticize ideas.
  2. Go for quantity of ideas at this point; narrow down the list later.
  3. Encourage wild or exaggerated ideas (creativity is the key).
  4. Build on the ideas of others (e.g. one member might say something that “sparks” another member’s idea.

End the session when – everyone has had a chance to participate, no more ideas are being offered, you have made a “last call” for ideas, remember to thank all the participants.

1.2.2 Next steps
  • Prioritize your ideas to help you decide where to start.
  • Sort large amounts of information according to common themes (use post-its, one idea on each, all generated by individuals in response to a goal statement, within a limited time frame, and sorted into groupings).
  • Remember brainstormed ideas may be based on opinion and data may need to be gathered to support or prove ideas.
  • Some of these issues discussed may be miniscule very microscopic  that the group would be able to finalize their analysis for those particular issues and ready to meet next to go through the expected results by comparing display values to what is produce by the application systems.
  • The design efforts in enhancing existing related reports, modifies the process to generate such requested reports. 

1.3 Identifying the Need of Applying Changes to COMMERCIAL ACCOUNT SYSTEMS

During brain storming sessions, it’s always prudent and necessary to capture suggestions and feedbacks which might be related to existing or identified problems from our users’ population including internal customers to these applications.

I recently ran across a tenacity, persistence, intransigence and inflexible condition which existed within COMMERCIAL ACCOUNT SYSTEMS that needed to be address immediately to reduce and avoid misunderstanding, misleading, miscommunication within the entire BANKING SYSTEMS and other partnership or business-to-business INVENTORY SYSTEMS where the naming of tables schemas within their RDBMS created abnormalities how the data, transaction threads were processed.

At first the problem appeared to be easy and solvable but the more I thought about the definition of the tables and operating sources where these data would be coming from, I realized it was going to involve multiple parties and experts from different subject areas of BANKING ACCOUNTING SYSTEMS.

Stepping through the process, the necessary requirements and data collections were the initial phase to identify where to start and also, how we could easily provide and satisfy our customer’s needs using JIT while the rest of the project is handled in a full lifecycle methodology when faced with issues like this.

In this situation a CHANGE MANAGEMENT (Maintenance Request) record and subsequence records were necessary, and meetings held with top management to scope, plan, dissect and forecast the project.

Within the IMS group, the following tables were identified for table names and definitions changes to reflect the actual nature of the data.

COMMERCIAL ACCOUNT SYSTEM consist of profitable, invested, credited, debited, assets and liabilities records including book entries and ledger transaction records.

The table names are misleading and have been interruptive, disturbing and a nuisance to business users who have been given the exposure of EIS nomenclature, categorization and architectural infrastructure without the complete understanding of why, where, and when the transactions actually occurred.

The reasoning behind this change is to eliminate misunderstanding both in their users’ communities and IMS groups. The architecture team should be aware of these changes and Management Initiatives should include, involve the planning, scoping, forecasting and implementation schedules of the project.

This project would need to use the normal full life cycle through implementation; and all necessary metadata changes should be reflective and maintained within the DATA DICTIONARY REPOSITORY accordingly following the DATA STANDARDS requirements.

Majority of the effort would occur in the Design phase of the project, coordinated by a dedicated Data Architect assigned to the project.

The COMMERCIAL_LOAN_TH tables needs change along with the ACCT_TYPE_CD value reflecting the nature of the data stored within these tables in the COMMERCIAL ACCOUNT SYSTEMS.

In the interim, JIT adhocs should be applied to apprehend the necessary changes.


In short, the word LOAN should be removed and drop out of the identified table names.

No record length data should be affected with this MR(Maintenance Request). But ALL of the systems where these table names and ACCT_TYPE_CD are stated as those under the OLD column should be changed as recommended to reflect the names and values under the NEW column.

Initial research work is needed to take place to identify ALL the affected tables while team meetings are scheduled, organized and led by team leaders to make sure all necessary requirements are met, identified and captured by developers performing these search. The preliminary data investigation should include and involve database analysts and Database Administrators to go through all the connectivity systems and platforms, making sure all necessary tables, databases, extracts, ETLs are listed on the requirement documentation.

Possible extension of this project may result in cases where certain commercial threads (transaction records) as listed on the table definitions are not past into the COMMERCIAL ACCOUNT SYSTEMS. Extracts should be sources from those operating systems into the COMMERCIAL ACCOUNT SYSTEMS using the new ACCT_TYPE_CD as CMA.    

Figure 1.3.1 Related IO of Commercial Banking Systems

Definitions for Aggregating Online Transactions as related to Commercial Account Systems (CMA).

By collecting input from online transactions systems such as SUNGUARD, FINTECH, COINBASE and other PAYMENT Systems.

Summarizing transaction records:

Amount values should reflect POSITIVE or NEGATIVE as reported on the INPUT datafiles. These may generate NEW COLUMNS and an EXPANSION of RECORD LENGTH resulting to CHANGE on TABLESPACE sizing and STORAGE capabilities.

Both Design and Production teams were notified, alert and scheduled recurring meetings to mitigate any such changes coming down the pipe (Waterfall methodology) during R&D (Research and Development). 

Apply scheduled RUNS on summarized records to Extract – Transform – Load and ADD to CUSTOMER ACCOUNTS depending on the ACCT_TYPE_CD. ETL input transaction records from SUNGUARD, FINTECH, COINBASE depending on the CUSTOMER. Input data may be received DAILY; WEEKLY; BIWEEKLY; MONTHLY.

Both AMOUNT and CHARGES should be summarized before scheduled RUNS.

Deduct CHARGES from summarize AMOUNTS. SEND INPUT files INTO ACH DEPARTMENT depending on the ACCT_TYPE_CD. Records are then stored on the following tables – PI, DDA, TDA, CMA, INV based on the specific account type.

Keep in mind that as we walked through the different phases of the project, we all realized, it was very close to home as had originally imagined. Another condition to the puzzle was, with ANY BALANCE to the client, customer, entity or institution record, a MONTHLY STATEMENT should be sent to the rightful OWNERS.

These processes would help to limit the number of accounts per USER. Again, ACCOUNT NUMBER REUSE is to allow previous OWNERS to have their same ACCOUNT NUMBERS.

1.3.1 Distribution of Securities

 As we drill down to the dying issue, I discovered some of their systems did not have either these columns SECURITY_TYPE_CD, SECURITY_CODE_NM nor the following code and name values for the above corresponding columns.

These classification and categorization of investment products were very important to derive with the mapping of these accounts as depicted in figure 1.3.1.

 ACHAutomated Clearing House
 ICSInvestment Credit Securities
 WMDWinning Money Distribution
 SPGStructured Product Group
 CCOCollateralized Credit Obligations
 IPNIndex Profitability Notes
 PPPProfitability Pass-thru Payments
 MBSOMonetary Bypass Systems to Owners
 CDOCredit Deductible Obligations

Table Security Type Code valid values.

1.3.2 Decision Making During Corporation Share Split

Most corporations rely, depend and thrust subtle resolutions to their corporate financial statements without actually taken the burden to reflect on certain factors such as dividends when their company stocks (shares) splits.

Splits do not occur in most cases on regulated timing / scheduled but base on their corporation, company or incorporation’s performance / merger procedures such as convergence, absorption, mergence or combination of multiple corporations to restructure overheads by the owner(s), reducing the number of officers hence busting the overall performance by identifying newly improve methodology to accumulate profitability per investors / owners of either or companies or shares.

Resolutions generally indicated by Financial Adaptive Finite Quantitative (FAFQ) platforms may not indicate the In-House Financial Statements for such corporations.

  1. Many as often, the most debated, disputed column value amongst Economists, savvy IT specialists with an incline to actuate / accrued [of sums of money or benefits) be received by someone in regular or increasing amounts over time] logics or Financial Mathematicians have always been the DEBT amount.

The DEBT amount on total number of available shares multiplied by the price per share (P/S) should NOT be regarded when considering performance of any corporation. Neither should the company’s bottom line performance be evaluated by considering the outstanding shares.

When considering the total number of shares including outstanding shares, the figure associated with or display on the “DEBT” column should be regarded as positive. In this case, trailing issues regarding the distribution of profitability’s should not be apparent or questionable to its holders.

During corporations, companies, or incorporated stock (shares) splits, the dividend is usually the inverse (vice versa) of the split ratio. In case the value is very high compare to the value per share, an additional amount of share could be distributed per holders / employees.

Let’s go through a simple example for instance GOOGLE, Inc with a share price of $2260.00 and had to split 20:1; the resulting table is a typical example on how the dividends would be reflected and further distributed.


The shareability, distribution and usability of the resulting dividend value would eventually drop down the final reporting value. At that instance, the board of directors is deemed to decide what value to agree on as dividend which should not be ≤ $2.00/20 at a minimum.

It’s always interesting when such minimal arithmetic consumes our precious time, while socializing over the latest pastries, traveling from unnecessary distance just to decide when to publicize such crucial information as pertinent to stock holders as well as employees.                    

Using Google Data Studio for Data Visualization and Exploration

Data Studio is use for data visualization and as a reporting tool. It was created by Google in 2016. And it has gained a lot of traction from Data Scientists, Analysts, and Sales and Marketing Experts.

Data Studio is completely free. There’s no paid version of it. You can use it as an alternative to paid reporting tools such as Tableau and Power BI.

Data Studio is cloud-based:

It’s accessible through any browser and an internet connection. The reports you create are saved automatically into Google Data Studio framework, so they’re available anytime and anywhere. No worries about losing the files.

There are many pre-built templates in Data Studio, allowing you to create beautiful dashboards full of charts quickly and easily. It’s very easy to share reports and dashboards with your internal / external teams if they have a Google account. It enables collaboration within business groups.

With Data Studio, you can connect, analyze, and present data from different sources. You don’t even need to be tech-savvy or know programming languages to get started with Data Studio.

Google Data Studio: Data sources and connectors:

Every time you want to create a report, first, you’ll need to create a data source. It’s important to note that data sources are not your original data. To clarify and avoid confusion, see the explanation below:

  • The original data, such as data in a Google spreadsheet, MySQL database, LinkedIn, YouTube, or data stored in other platforms and services, is called a dataset.
  • To link a report to the dataset, you need a data connector to create a data source.
  • The data source maintains the information of the connection credential. And it keeps track of all the fields that are part of that connection.  
  • You can have multiple data sources connected to a dataset, and this may come in handy when collaborating with different team members. For example, you may want to share data sources with different connection capabilities for different team members.

When Data Studio was first released, there were only six Google-based data sources you could connect to. But a lot has changed since then! 

As of this writing, there are 400+ connectors to access your data from 800+ datasets. Besides Google Connectors, there are also Partner Connectors (third-party connectors). 

In the example below we’ll go through US Office Equipment Sample Dataset to visualize different charts representing the data.

  • Open Google Data Studio from your browser by using this link.
  • Click Create button on the left
  • Open a connection to the data source of interest. In our case, we’ll use this link to the CSV file Dataset.

File Upload / Locate File:

  • Upload CSV file
  • On the next screen, you will be presented with a data file schema for the uploaded CSV file.
  • The data types can be changed on existing fields within the data file schema and new calculated fields added if needed.

CSV files are called Unmapped data because their contents are unknown in advance.

Analyze and Visualize the Data:

  • Add the data source and you will end up in the report canvas.
  • Use the appropriate charts from the Add Charts tool bar menu above to select the desire charts as shown below to create data visualization reports.

Quick Steps to Set Up Data Visualization on Google Data Studio:

  1. Open Data Studio.
  2. Familiarize yourself with the dashboard.
  3. Connect your first data source.
  4. Create your first report.
  5. Add some charts.
  6. Customize the formatting and add a title and captions.
  7. Share the report.


Congratulations! We just went through how to create a Business Intelligence BI dashboard using Google Data Studio for visualizing and exploring a sample Office Equipment dataset.

Data Studio allows you to create beautiful dashboards full of charts quickly and easily. It’s very easy to use for sharing reports and dashboards with your internal/external teams if they have a Google account. It enables collaboration within business groups.

With Data Studio, you can connect, analyze, and present data from different sources. You don’t even need to be tech-savvy or know programming languages to get started with Data Studio.

The difference between Machine Learning (ML) and Artificial Intelligence (AI)

Cloud ML:

The Cloud ML Engine is a hosted platform to run machine learning training jobs and predictions at scale. The service can also be used to deploy a model that is trained in external environments. Cloud ML Engine automates all resource provisioning and monitoring for running the jobs.

The cloud makes intelligent capabilities accessible without requiring advanced skills in artificial intelligence or data science. AWS, Microsoft Azure, and Google Cloud Platform offer many machine learning options that don’t require deep knowledge of AI, machine learning theory, or a team of data scientists.

  • The cloud’s pay-per-use model is good for bursty AI or machine learning workloads.
  • The cloud makes it easy for enterprises to experiment with machine learning capabilities and scale up as projects go into production and demand increases.
  • The cloud makes intelligent capabilities accessible without requiring advanced skills in artificial intelligence or data science.
  • AWS, Microsoft Azure, and Google Cloud Platform offer many machine learning options that don’t require deep knowledge of AI, machine learning theory, or a team of data scientists.

Cloud AI:

The AI cloud, a concept only now starting to be implemented by enterprises, combines artificial intelligence (AI) with cloud computing. An AI cloud consists of a shared infrastructure for AI use cases, supporting numerous projects and AI workloads simultaneously, on cloud infrastructure at any given point in time.

Artificial intelligence (AI) assists in the automation of routine activities within IT infrastructure, which increases productivity. The combination of AI and cloud computing results in an extensive network capable of holding massive volumes of data while continuously learning and improving.

  • Data Mining.
  • Agile Development.
  • Reshaping of IT Infrastructure.
  • Seamless Data Access.
  • Analytics and Prediction.
  • Cloud Security Automation.
  • Cost-Effective.
Cloud MLCloud AI
The Cloud ML Engine is a hosted platform to run machine learning training jobs and predictions at scale.An AI cloud consists of a shared infrastructure for AI use cases, supporting numerous projects and AI workloads simultaneously, on cloud infrastructure at any given point in time.
The service can also be used to deploy a model that is trained in external environments. Cloud ML Engine automates all resource provisioning and monitoring for running the jobs.Enterprises use the power of AI-driven cloud computing to be more efficient, strategic, and insight-driven. AI can automate complex and repetitive tasks to boost productivity, as well as perform data analysis without any human intervention. IT teams can also use AI to manage and monitor core workflows.
The pay-per-use model further makes it easy to access more sophisticated capabilities without the need to bring in new advanced hardware.Cloud AI Platform is a service that enables user to easily build machine learning models, that work on any type of data, of any size.
This storage service provides petabytes of capacity with a maximum unit size of 10 MB per cell and 100 MB per row. 1024 Petabytes of data.1024 Petabytes of data. The larger the RAM the higher the amount of data it can handle hence faster processing. 16GB RAM and above is recommended for most deep learning tasks.
High Flexibility and Cost Effective.Seamless Data Access. High Flexibility and Cost Effective.
Cloud ML Engine is used to train machine learning models in TensorFlow and other Python ML libraries (such as scikit-learn) without having to manage any infrastructure.In Artificial Intelligence, the Decision Tree (DT) model is used to arrive at a conclusion based on the data from past decisions. 
Cloud DLP – Data Loss Prevention provides tools to classify, mask, tokenize, and transform sensitive elements to help you better manage the data that you collect, store, or use for business or analytics.Cloud DLP – Data Loss Prevention provides tools to classify, mask, tokenize, and transform sensitive elements to help you better manage the data that you collect, store, or use for business or analytics.
The cloud makes intelligent capabilities accessible without requiring advanced skills in artificial intelligence or data science.  The cloud makes intelligent capabilities accessible without requiring advanced skills in artificial intelligence or data science.  
Google, Amazon, Microsoft, and IBMGoogle, Amazon, Microsoft, and IBM
ML’s aim is to improve accuracy without caring for success.

The goal of AI is to increase the chances of success.
ML is the way for the computer program to learn from experience.AI is a computer program doing smart work.
The ML’s goal is to keep learning from data to maximize the performance.The future goal of AI is to stimulate intelligence for solving highly complex programs.
ML allows the computer to learn new things from the available information.AI involves decision-making.
ML looks for the only solution.AI looks for optimal solutions.

ML and AI:

Even though many differences exist between ML and AI, they are closely connected. AI and ML are often viewed as the body and the brain. The body collects information, the brain processes it. The same is with AI, which accumulates information while ML processes it.


AI involves a computer executing a task a human could do. Machine learning involves the computer learning from its experience and making decisions based on the information. While the two approaches are different, they are often used together to achieve many goals in different industries.

Correlation Measures The Relationship Between Two Variables

What is Correlation?

Correlation is a statistical measure that expresses the extent to which two variables are linearly related (meaning they change together at a constant rate). It’s a common tool for describing simple relationships without making a statement about cause and effect.

Why is Correlation important?

Once correlation is known it can be used to make predictions. When we know a score on one measure we can make a more accurate prediction of another measure that is highly related to it. The stronger the relationship between/among variables the more accurate the prediction.

Related Articles:

How to Calculate Correlation

Data Visualization Using Python

In this example we’ll perform different Data Visualization charts on Population Data. There’s an easy way to create visuals directly from Pandas, and we’ll see how it works in detail in this tutorial.

Install neccessary Libraries

To easily create interactive visualizations, we need to install Cufflinks. This is a library that connects Pandas with Plotly, so we can create visualizations directly from Pandas (in the past you had to learn workarounds to make them work together, but now it’s simpler) First, make sure you install Pandas and Plotly running the following commands on the terminal:

Install the following labraries in the this order – on Conda CMD prompt pip install pandas pip install plotly pip install cufflinks

Import the following Libraries

import pandas as pd
import cufflinks as cf
from IPython.display import display,HTML

In this case, I’m using the ‘ggplot’ theme, but feel free to choose any theme you want. Run the command cf.getThemes() to get all the themes available. To create data visualization with Pandas in the following sections, we only need to use the syntaxdataframe.iplot().

The data we’ll use is a population dataframe. First, download the CSV file from, move the file where your Python script is located, and then read it in a Pandas dataframe as shown below.

#Format year column to number with no decimals
df_population = pd.read_csv('documents/population/population.csv')
#use a list of indexes:
   country    year    population
0    China  2020.0  1.439324e+09
10   China  1990.0  1.176884e+09
  country    year    population
0   China  2020.0  1.439324e+09
1   China  2019.0  1.433784e+09
2   China  2018.0  1.427648e+09
3   China  2017.0  1.421022e+09
4   China  2016.0  1.414049e+09
5   China  2015.0  1.406848e+09
6   China  2010.0  1.368811e+09
7   China  2005.0  1.330776e+09
8   China  2000.0  1.290551e+09
9   China  1995.0  1.240921e+09

This dataframe is almost ready for plotting, we just have to drop null values, reshape it and then select a couple of countries to test our interactive plots. The code shown below does all of this.

# dropping null values
df_population = df_population.dropna()
# reshaping the dataframe
df_population = df_population.pivot(index="year", columns="country", values="population")
# selecting 5 countries
df_population = df_population[['United States', 'India', 'China', 'Nigeria', 'Spain']]
country  United States         India         China      Nigeria       Spain
1955.0     171685336.0  4.098806e+08  6.122416e+08   41086100.0  29048395.0
1960.0     186720571.0  4.505477e+08  6.604081e+08   45138458.0  30402411.0
1965.0     199733676.0  4.991233e+08  7.242190e+08   50127921.0  32146263.0
1970.0     209513341.0  5.551898e+08  8.276014e+08   55982144.0  33883749.0
1975.0     219081251.0  6.231029e+08  9.262409e+08   63374298.0  35879209.0
1980.0     229476354.0  6.989528e+08  1.000089e+09   73423633.0  37698196.0
1985.0     240499825.0  7.843600e+08  1.075589e+09   83562785.0  38733876.0
1990.0     252120309.0  8.732778e+08  1.176884e+09   95212450.0  39202525.0
1995.0     265163745.0  9.639226e+08  1.240921e+09  107948335.0  39787419.0
2000.0     281710909.0  1.056576e+09  1.290551e+09  122283850.0  40824754.0


Let’s make a lineplot to compare how much the population has grown from 1955 to 2020 for the 5 countries selected. As mentioned before, we will use the syntax df_population.iplot(kind=’name_of_plot’) to make plots as shown below.

df_population.iplot(kind='line',xTitle='Years', yTitle='Population',
                    title='Population (1955-2020)')


We can make a single barplot on barplots grouped by categories. Let’s have a look.

Single Barplot

Let’s create a barplot that shows the population of each country by the year 2020. To do so, first, we select the year 2020 from the index and then transpose rows with columns to get the year in the column. We’ll name this new dataframe df_population_2020 (we’ll use this dataframe again when plotting piecharts)

df_population_2020 = df_population[df_population.index.isin([2020])]
df_population_2020 = df_population_2020.T

Now we can plot this new dataframe with .iplot(). In this case, I’m going to set the bar color to blue using the color argument.

df_population_2020.iplot(kind='bar', color='blue',
                         xTitle='Years', yTitle='Population',
                         title='Population in 2020')

Barplot grouped by “n” variables

Now let’s see the evolution of the population at the beginning of each decade.

# filter years out
df_population_sample = df_population[df_population.index.isin([1980, 1990, 2000, 2010, 2020])]
# plotting
df_population_sample.iplot(kind='bar', xTitle='Years',

Naturally, all of them increased their population throughout the years, but some did it at a faster rate.


Boxplots are useful when we want to see the distribution of the data. The boxplot will reveal the minimum value, first quartile (Q1), median, third quartile (Q3), and maximum value. The easiest way to see those values is by creating an interactive visualization. Let’s see the population distribution of the China.

df_population['China'].iplot(kind='box', color='green', 

Let’s say now we want to get the same distribution but for all the selected countries.

df_population.iplot(kind='box', xTitle='Countries',

As we can see, we can also filter out any country by clicking on the legends on the right.


A histogram represents the distribution of numerical data. Let’s see the population distribution of the USA and Nigeria.

df_population[['United States', 'Nigeria']].iplot(kind='hist',


Let’s compare the population by the year 2020 again but now with a piechart. To do so, we’ll use the df_population_2020 dataframe created in the “Single Barplot” section. However, to make a piechart we need the “country” as a column and not as an index, so we use .reset_index() to get the column back. Then we transform the 2020 into a string.

# transforming data
df_population_2020 = df_population_2020.reset_index()
df_population_2020 =df_population_2020.rename(columns={2020:'2020'})
# plotting
df_population_2020.iplot(kind='pie', labels='country',
                         title='Population in 2020 (%)')


Although population data is not suitable for a scatterplot (the data follows a common pattern), I would make this plot for the purposes of this guide. Making a scatterplot is similar to a line plot, but we have to add the mode argument.

df_population.iplot(kind='scatter', mode='markers')

Whaola! Now you’re ready to make your own beautiful interactive visualization with Pandas.

Python Libraries to Generate Synthetic Data

Generate data might be important, but collecting data manually that meets our needs would take time. For that reason, we could try to synthesize our data with programming language. This article will outline my top 3 python package to generate synthetic data. All the generated data could be used for any data project you want. Let’s get into it. Click here for more info.