Facebook down
05 October 2021
In this article, we will get insight on Facebook outage impact on its stock price.
Yesterday, Facebook and its related applications Instagram and WhatsApp were unreachable. From 15:40 UTC to 21:40 UTC, nobody could reach any Facebook related website.
This outage was described at length by NY Times to get a global view of the situation
Technical parts of this outage were also very well described by Cloudflare
At last, Facebook itself issue a short blog post describing this outage.
Today's article will focus on getting an idea of Facebook outage on its stock price. Using our APIs within Ganymede, our web and cloud-based JupyterLab environment.
Getting started
The overall approach followed in this article is as follows:
- Get all Facebook trades on Nasdaq on October 4th 2021
- Split data in 3 parts: before the outage, during the outage and after the outage
- See if Facebook outage did change anything on its stock price
We will be using a set of Systemathics modules in addition to Opensource modules. For this sample, we chose to use Python with the following Systemathics package:
Get all Facebook trades on Nasdaq on October 4th 2021
# set instrument identifier: exchange + ticker
ticker = 'FB' # Facebook
exchange = 'XNGS' # Nasdaq
# create time intervals (we are using Google date format)
date_interval = dateinterval.DateInterval(
start_date = date.Date(year = 2021, month = 10, day = 4),
end_date = date.Date(year = 2021, month = 10, day = 4)
)
# generate constraints based on the date selection
constraints = constraints.Constraints(
date_intervals = [date_interval]
)
# generate the tick trades request
identifier = identifier.Identifier(exchange = exchange, ticker = ticker)
request = tick_trades.TickTradesRequest(
identifiers = [identifier],
constraints = constraints
)
We can now request all trades for Facebook using our API TickTradesService. All results are aggregated in a single pandas dataframe.
# instantiate the tick trades service
service = tick_trades_service.TickTradesServiceStub(channel)
# process the tick trades request
trades = []
metadata = [('authorization', token)]
for trade in service.TickTrades(request=request, metadata=metadata):
if trade.trade:
trades.append(trade.trade)
# prepare the dataframe content
dates = [datetime.fromtimestamp(t.time_stamp.seconds) for t in trades]
prices = [t.price for t in trades]
sizes = [t.size for t in trades]
# create a pandas dataframe with: dates, trades prices and sizes
d = {'Date': dates, 'Price': prices, 'Size': sizes}
df = pd.DataFrame(data=d)
The previous code snippet gives us the pandas dataframe containing all trades:
Note that time are UTC.
Split data in 3 parts: before the outage, during the outage and after the outage
Splitting data is very simple using pandas
outage = df[ (df['Date'] > datetime(2021,10,4,15,40,0)) & (df['Date'] < datetime(2021,10,4,21,40,0)) ]
before_outage = df[ (df['Date'] <= datetime(2021,10,4,15,40,0)) ]
after_outage = df[(df['Date'] >= datetime(2021,10,4,21,40,0)) ]
See if Facebook outage did change anything on its stock price
Data is now displayed on a graph.
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
fig,ax = plt.subplots(1,1,figsize=(25,10))
ax.plot('Date', 'Price', data=before_outage, marker='', color='blue', linewidth=2, label="Price")
ax.plot('Date', 'Price', data=outage, marker='', color='red', linewidth=2, label="Price")
ax.plot('Date', 'Price', data=after_outage, marker='', color='blue', linewidth=2, label="Price")
# twin x-axis for two different y-axis
ax2=ax.twinx()
ax2.plot('Date', 'Size', data=df, marker='', color='green', linewidth=2, label="Size")
# set graph title and axis label
ax.set_xlabel("Date",fontsize=14)
ax.set_ylabel("Price",color="blue",fontsize=14)
ax2.set_ylabel("Size",color="green",fontsize=14)
plt.title('Tick trades for {0}-{1}'.format(ticker, exchange))
plt.show()
We can conclude that:
- Facebook price decreased significantly before outage: initial blue part
- Price barely changed during the outage: red part
- We can conclude that Facebook outage did not affect its stock price. Initial decrease was likely due to whistle-blower Frances Haugen as explained by NY Times article.
- The Sun is wrong with its title Facebook, Instagram and WhatsApp down latest news – $50 BILLION wiped off FB’s value as huge global outage rocks world. Is it a news ? 😉
Reach out to try our solutions
In this article, we request tick data and use index components by calling a dedicated API service within Ganymede, our web and cloud-based JupyterLab environment, and our API. You can use it as-is and/or call directly our API within your internal tools and start immediately retrieving on-demand financial data.
To get the full sample and discover more data analytics samples and building blocks navigate to our public Github →