Abstract
This paper explores weekly price patterns in meme coins compared to traditional cryptocurrencies using historical data from Binance. The research investigates the intuitive hypothesis of a “weekend dip”. Instead it uncovers a recurring pattern of early-week lows followed by weekend highs. Using normalized price and volume data, the study documents substantial weekly returns in meme coins. This in contrast with the more stable patterns of established cryptocurrencies. A z-score anomaly check validates the robustness of the observed patterns. These findings may inform future research and strategies in short-term crypto trading.
This Post has also been published on LinkedIn.
Is there really such a thing as a weekend dip?
For some time now, maybe the last 2 years, the author had the feeling that prices of cryptocurrencies, and in particularly those of the so called meme coins, tended to rise during the course of the week, stagnated in the weekend and then in the next week would rise again. A kind of cycle noticeable during ‘normal’, e.g. not especially bullish or bearish, market conditions. Imagining not being the only one who noticed this kind of price behavior, we started looking for research that describes this phenomenon… Only to find out that surprisingly little has been published on the subject.
Weekend volatility in cryptocurrencies indeed has been observed. A study titled Periodicity in Cryptocurrency Volatility and Liquidity by Hansen et al. notes systematic patterns in volatility and volume across days of the week and hours of the day. Some of these patterns they attribute to algorithmic trading and funding times in futures markets. In the search results also a Medium article pops up. In Why Do Crypto Markets Dip on Saturdays and Rebound on Sundays? A Phenomenon Explored cites factors like reduced institutional trading and market psychology as reasons behind weekend dips.
Older Research
A recurrent pattern within some period, such as a week, a day, or even an hour is formally called ‘periodicity’. The literature refers to such patterns in time series also as ‘seasonality’. A well-known example of time of-the-day volatility is the U-curve for US stock returns on a normal business day. Cryptocurrencies however differ from other markets by being open for trading 24 hours a day, seven days a week. In the past several examples of periodicity, recurrent patterns in cryptocurrency markets have been documented:
- trading volume is closely related to the trading times of the US and European stock markets (Dimpfl, 2017; Dyhrberg et al. 2018).
- intraday volatility and volume patterns differences for Europe-based and US-based exchanges related to the time-of-the-day in their respective locations (Catania & Sandholdt 2019).
A Weekly Pattern
With all due respect, not very spectacular insights. However interesting these findings may be, they don’t shed any light on our topic of a weekly pattern! Related to our subject however, are findings by Hansen, Kim & Kimbrough (2021). Although their main focus is intra-day patterns, measurements made on Binance, Coinbase Pro, and Uniswap of Bitcoin and Ethereum prices & volumes (in 2020 and early 2021) do seem to reveal a weekly price pattern. They warn about relatively small samples. Nevertheless they state: “However, both volatility and volume tend to be smaller on weekends, which is most pronounced on Saturdays”.

Hansen et al, 2021, Figure 3, p.15
Hansen et al provide us with a nice starting point but little more than that. Their graphs stand out for showing some very rare pictures of a weekly crypto price pattern! The lack of additional material makes it difficult to get any deeper insights relating to our intuitive hypothesis of the weekend dip. Furthermore our feeling was based on more recent experience with especially meme coins. Two factors not present in the study cited. The conclusion therefore is clear. If we want to gain factual knowledge relating to our hypotheses, we have to do the data driven research that is needed ourselves. That is the subject of this research paper.
Filling in the Gap: Recent Data on Meme Coins vs Traditional Crypto
To shed some light on recent weekly patterns for cryptocurrencies and to highlight differences that may exist between the relatively new phenomenon of meme coins and the settled cryptocurrencies we will research the weekly price development (and the volumes for added insights) for meme coins and compare those to that of traditional crypto.
Before we dive into the methodology of the research let’s first take a closer look at time zones and meme coins.
Relevance of taking into account Time Zones
We started with an experienced feeling of a ‘weekend’ dip in a weekly pattern. It is important however to realize that while markets are open 24/7 the weekend does not occur at the same moment in time for everybody on the planet. The research cited above did show that the time-of-the-day in different locations did matter. The table below makes it clear that when in Amsterdam and Paris the weekend is over and the new week starts at Monday 00:00 hours, at one part of the world it’s still Sunday morning while at another part of the world it’s already Monday afternoon.

For an illustration of the effect of time-zone shifting and the weekly low see the Appendix.
Meme coins
Meme coins are a category of cryptocurrencies that is based on internet memes and cultural trends. They sometimes lack the utility or technical innovation seen in cryptocurrencies like Bitcoin or Ethereum. Their value is largely driven by community enthusiasm, social media hype, and speculative trading. The first and most iconic meme coin is Dogecoin. It was already launched in 2013 as a parody of Bitcoin, featuring the Shiba Inu dog from the “Doge” meme. It took more than 6 years for Shiba to follow; after this in recent years a lot more appeared.
Between older meme coins like Dogecoin and Shiba Inu and newer ones like Bonk and Pepe there are notable differences. Not unlike those between meme and traditional coins. Dogecoin was created as a joke with no significant utility beyond being a medium of exchange. Shiba Inu, while also starting as a meme, has evolved into a utility-driven project with its own decentralized exchange. Both have established communities and are widely recognized. Their value is tied to long-term community support and celebrity endorsements. Older coins have relatively stable market caps and are considered “safer” meme coin investments due to their established presence.
Coins like Bonk and Pepe were launched with more specific narratives or blockchain ecosystems. They rely heavily on short-term hype, social media trends and speculative trading. Thus experiencing more rapid price surges and declines, making them more volatile. Dogecoin operates on its own blockchain, while Shiba Inu is an ERC-20 token on Ethereum. Bonk is built on Solana, which offers faster and cheaper transactions compared to Ethereum. The largest meme coins by market capitalization are show in the table below.

We consider the following traditional crypto coins to use as a ‘control group’.

Methodology
To test the reality of an intuitive sense of a ‘weekend dip’ with crypto currencies and in particular with meme coins, we took the following steps. Based on market capitalization, we selected the best known meme coins: TRUMP, SPX, WIF, FLOKI, FART, BONK, PEPE, SHIB, DOGE. We formed a control group of top recognized traditional crypto currencies: BTC, ETH, XRP.
The data for these assets we gather from the worlds biggest Cryptocurrency Exchange: Binance. It is also the major data source online for crypto currencies. We are looking for a pattern in the last 2 years. So a minimum requirement for analyzes is the availability of data for each asset from at least 1-jan-2024. These requirements mean we can’t use Trump, because it is too recent, nor SPX and Fart because these aren’t listed on Binance. This leaves us thus with 6 meme coins and 3 traditional or trad coins for the research.
Data collection
We collect the data from a Binance API in 2 steps. For each of the 9 coins:
First, we download the complete hourly price history and save this locally for later use. For this purpose we use the Python software we describe in this post.
When ready to analyze, we download the most recent data for this coin from the same source. We combine these with the pre-saved data. And create a complete and up-to-date dataset in the form of a Pandas Dataframe. This process we describe in detail in this post.
The Dataframe
The Dataframe we construct from so called candlestick or klines data from Binance in the following format:
1499040000000, // Open time
“0.01634790”, // Open Price
“0.80000000”, // High Price
“0.01575800”, // Low Price
“0.01577100”, // Close Price
“148976.11427815”, // Volume
1499644799999, // Close time
And 5 more fields you can ignore.
For our purpose we need:
- the first Unix timestamp, the opening datetime, which we convert to a time-zone aware Pandas datetime-index for our preferred time-zone (CET);
- the close price for this asset at this point in time;
- the volume traded at this at this point in time (not really needed, but nice for better heuristics).
Prices are all in USD. Actually in USDT, or Tether, that is closely tied to the Dollar value, the default at Binance. This base currency however is not really important because we work with normalized prices. Measuring only the price changes during the course of the week.
Normalizing
In order to test our intuition of the weekend dip as a working hypothesis we need to treat our data per currency in such a way that we are able to:
- form complete calendar weeks, starting at Monday 00:00 (CET), consisting of 168 hourly datapoints;
- normalize the price, setting the week start point to 100 with the rest of the data points in the price series reflecting the percentual change;
- normalize the volume in the same way.
Our data per coin comes in the form of a Pandas Dataframe with a datetime-index. It is time-zone aware and explicitly set to our preferred time-zone (CET). Thus we can work with a uniform measure of price changes made comparable over time and among different crypto currencies.
For this purpose we create research analyzes scripts, which we thoroughly tested until they work completely bullet proof. These scripts then are feed the complete and up-to-date data gathered in step 2, described above. With them we plot graphs that illustrate in how far our hypothesis resembles the factual historic reality. Also we extract the data needed to exactly describe the weekly patterns we find as .csv files.
A Standard Characteristic Weekly Pattern per Coin
We use the following Python method to assure we get correct average weekly profiles over the whole history of each cryptocurrency.
Analyze the weekly Pattern
def analyze_weekly_price_patterns(self, price_col='close'):
# Analyze normalized weekly price movements. Each week starts at Monday 00:00 with price normalized to 100.
# Returns a DataFrame with columns: ['hour_of_week', 'normalized_price', 'normalized_volume','week_start']
self.do_message("Analyzing weekly price patterns")
df = self.df.copy()
# Align week start to Monday 00:00 while preserving timezone
df['week_start'] = (df.index - pd.to_timedelta(df.index.weekday, unit='D')).normalize()
# Ensure the week_start is timezone-aware (same as df.index)
# tz_localize(..., ambiguous='NaT', nonexistent='shift_forward') safely handles daylight saving gaps or overlaps.
if df.index.tz is not None:
df['week_start'] = df['week_start'].dt.tz_localize(df.index.tz, ambiguous='NaT', nonexistent='shift_forward')
df['hour_of_week'] = (df.index.dayofweek * 24 + df.index.hour).astype(int)
weekly_profiles = []
for week_start, group in df.groupby('week_start'):
week_data = group.copy()
if len(week_data) < 168: # skip incomplete weeks
continue
base_price = week_data[price_col].iloc[0]
week_data['normalized_price'] = 100 * week_data[price_col] / base_price
base_volume = week_data['volume'].iloc[0]
week_data['normalized_volume'] = 100 * week_data['volume'] / base_volume
week_data['week_start'] = week_start
weekly_profiles.append(week_data[['hour_of_week', 'normalized_price', 'normalized_volume', 'week_start']])
profile_df = pd.concat(weekly_profiles)
self.do_message("Finished weekly pattern analysis")
return profile_df
PythonOnce we have the data in the desired format, we use another method add_weekly_high_low_annotations() to highlight the weekly extrema in the graph. We also compose a summary of the most important findings and add those as metadata to the weekly profile. The method export_weekly_profile_csv() produces an overview of the weekly price profile per coin, including the metadata.
Exporting Profiles
def export_weekly_profile_csv(self, avg_profile: pd.DataFrame, market_label: str, period_label: str, export_dir: Path):
# Export the weekly pattern dataframe to CSV with metadata and derived fields.
export_dir.mkdir(parents=True, exist_ok=True) # Ensure export directory exists
if avg_profile.empty or 'normalized_price' not in avg_profile:
print(f"⚠️ Cannot export CSV — 'normalized_price' missing for {market_label} {period_label}")
return
high_idx = avg_profile['normalized_price'].idxmax()
low_idx = avg_profile['normalized_price'].idxmin()
high_row = avg_profile.loc[high_idx]
low_row = avg_profile.loc[low_idx]
high_value = high_row['normalized_price']
low_value = low_row['normalized_price']
high_hour = int(high_row['hour_of_week'])
low_hour = int(low_row['hour_of_week'])
if low_hour < high_hour: # Compute directional return
return_directional = high_value - low_value
else:
return_directional = low_value - high_value
return_absolute = abs(high_value - low_value)
avg_profile = avg_profile.copy() # Add metadata columns to each row (for easy filtering/sorting)
avg_profile['weekly_high'] = high_value
avg_profile['weekly_low'] = low_value
avg_profile['high_hour'] = high_hour
avg_profile['low_hour'] = low_hour
avg_profile['return_directional'] = return_directional
avg_profile['return_absolute'] = return_absolute
avg_profile['direction'] = 'uptrend' if low_hour < high_hour else 'downtrend'
avg_profile['timestamp_exported'] = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
safe_label = market_label.replace("/", "").upper() # Define filename
filename = f"{period_label}_{safe_label}.csv"
file_path = export_dir / filename
avg_profile.to_csv(file_path, index=False)
print(f"✅ Exported CSV: {file_path}") # Write to CSV
PythonProfile Files
Here’s snapshot of the first 15 hours of the overall weekly pattern for Dogecoin with the added metadata columns, opened in Visual Studio Code.

And here’s the pattern that we found. Although not completely as expected it is a very clear pattern. Shown here below, Bonk, these days one of the archetypical meme coins, is among the most explicit. Instead of a weekend dip we actually see a start of the week low and a weekend high!

Summarizing
Summarizing the findings for the 9 coins, the 6 meme coins and the 3 trad coins in control group, the following table offers insight in the overall intra-week price development for cryptocurrencies, documenting as well the relative difference between meme coins and trad coins.

What we see here is a rather distinct weekly price pattern that all cryptocurrencies reviewed display over the normal weeks of their lifespan: an average week starts with dipping on Monday, Tuesday and recovers from this low over the course of the week rising to a high in the weekend (that for some already starts on Friday ;D) followed by dipping and then rising again.
Remarkable is that the steepness of the pattern, the volatility or the weekly return corresponds to the age of the asset: there is a (very) strong -inversely proportional- relationship between the age of a crypto currency and the (intra)weekly price volatility. The only ‘outlier’ in terms of age is Dogecoin, the original meme coin, that still exhibits remarkably youthful ‘young dog behavior’. In theory intra-weekly returns of 5% – 6% seem to offer opportunities for short-term investment using algorithmic bots. Top performers are meme coins like Pepe, Bonk, Dogecoin, Wif, Floki; only Shiba slightly disappoints. Notice the difference with ‘old’ cryptocurrencies: Bitcoin and Ethereum hardly manage a return of 1%, Ripple doing slightly better at 1.9%.
Patterns per Coin

The intuitive feeling of a ‘weekend dip’ thus needs correcting, nuancing into a ‘beginning of the week’ dip with an ‘end of the week’ peak pattern. This pattern does occur also in traditional cryptocurrencies but is less pronounced there.
In order to be able to be able to visibly compare the pattern for the both kinds of cryptocurrencies we show the average weekly meme pattern versus the average trad coin weekly pattern together in one graph below.

Bullish vs Bearish Market Conditions
We now have established the standard characteristic weekly pattern for more or less normal market conditions. But how about more extreme conditions, what does the weekly pattern during a typical bull or bear market look like? Spoiler, they actually look just like you would expect…
We use a rather simple but strict measure to define both more extreme market conditions applying technical indicators called moving price averages. On the one hand it is a very strong bullish signal when short-term moving price averages crossover (e.g. are rising above) the longer term ones. The reverse, with short term moving price averages dipping below the longer term averages is a strong indication of a bearish market situation. Exponential Moving Averages (EMAs) place greater weight on recent price data, making them more responsive to new information compared to Simple Moving Averages (SMAs). Using EMAs for 7, 50 and 100 price points of our hourly data, we define both market situations as follows:
- bullish: EMA7 > EMA50 > EMA100;
- bearish: EMA100 > EMA50 > EMA7.
Chances of this conditions being true for the full 168 hours of a week are very small. So in order to obtain the desired output we have had to relax the threshold for several coins to 90% – 80%. Especially for the meme coins the result of a pure bull week can be spectacular. Again Dogecoin displays extraordinary results, where several other meme coins push to a 50% return, it realizes a staggering 82.5%! As expected the results for the trad coins are much more moderate. Although the XRP performance, with a real high peak and a rather moderate low, does come close to the that of the meme coins.
Rising and Sinking
Here is a summary of the results under extreme market conditions with Ripple as the overall number 3 just behind Dogecoin and Pepe.


On the bearish side the differences are less pronounced than you might expect. The overall picture is of course that of a sinking market: The start of the week is the peak, the lowest point is at the end of the week. Surprisingly it is the solid Ethereum that shows the worst performance. See the graph below for Ethereum’s ‘nosedive’.

Zooming In on 2024
We have established the somewhat surprising standard weekly pattern under normal conditions and taken a quick look at the, much less surprising, patterns under extreme conditions. But remember, things started with developing an impression of a weekly pattern over the last 2 years and, apart from Dogecoin and Shiba, meme coins are a rather recent phenomenon. Given that 2024 is the first full year the whole group is present, we should also take a closer look at the weekly pattern for this year.
We use slightly different Python code to select and prepare the full normal weeks of 2024, export the weekly profile to a .csv file and plot the pattern as a graph to display, print and save it as an image.
Analyzing Code
def plot_yearly_avg_patterns(self, df, year: int, market_label: str):
df = df.copy()
tz = df.index.tz
df = df.sort_index()
print(f"🧪 Running yearly avg plot for {year}, tz={tz}")
# Align week start to calendar Mondays at 00:00
df['week_start'] = (df.index - pd.to_timedelta(df.index.weekday, unit='D')).normalize()
df['hour_of_week'] = (df.index.dayofweek * 24 + df.index.hour).astype(int)
# Prepare collection of full weekly profiles
weekly_profiles = []
for week_start, group in df.groupby('week_start'):
# print(df['week_start'].value_counts().sort_index())
if len(group) != 168:
# print(f"Incomplete week: {week_start} — {len(group)} rows")
continue
#if len(group) == 168:
# print(f"✅ Candidate week: {week_start}")
# Ensure week_start is timezone-aware
if week_start.tzinfo is None:
week_start = week_start.tz_localize(tz)
# Year-specific filtering
# print(f"Evaluating week: {week_start}, filter year: {year}")
if year == 2024:
if week_start < pd.Timestamp("2024-01-08", tz=tz) or week_start >= pd.Timestamp("2024-12-30", tz=tz):
continue # skip first and last weeks
elif year == 2025:
if week_start < pd.Timestamp("2025-01-06", tz=tz):
continue # start from second week onward
if 'close' not in group or group['close'].isna().all():
continue # skip if data is unusable
try:
base_price = group['close'].iloc[0]
group['normalized_price'] = 100 * group['close'] / base_price
if 'volume' in group.columns and group['volume'].iloc[0] != 0:
base_volume = group['volume'].iloc[0]
group['normalized_volume'] = 100 * group['volume'] / base_volume
else:
group['normalized_volume'] = np.nan
weekly_profiles.append(group[['hour_of_week', 'normalized_price', 'normalized_volume']])
except Exception as e:
print(f"⚠️ Skipping week {week_start}: {e}")
if not weekly_profiles:
print(f"No full weeks found for {year}")
return None
avg_df = pd.concat(weekly_profiles)
avg_profile = avg_df.groupby('hour_of_week')[['normalized_price', 'normalized_volume']].mean().reset_index()
if self.export_csv:
self.export_weekly_profile_csv(avg_profile, market_label=
self.mrkt, period_label=str(year), export_dir=Path(self.settings['export_dir']))
# Plot formatting
tick_hours = list(range(0, 168, 6))
tick_text = [f"{h % 24:02d}:00" for h in tick_hours]
day_labels = ['mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun']
annotations = [dict(x=i * 24, y=avg_profile['normalized_price'].max() + 0.3, xref='x',
yref='y', text=label, showarrow=False, font=dict(size=11), xanchor='left' ) for i, label in enumerate(day_labels)]
fig = make_subplots(specs=[[{"secondary_y": True}]])
fig.add_trace(go.Scatter(x=avg_profile['hour_of_week'], y=avg_profile['normalized_price'], name='Normalized Price',
line=dict(color='blue')), secondary_y=False)
fig.add_trace(go.Scatter(x=avg_profile['hour_of_week'], y=avg_profile['normalized_volume'], name='Normalized Volume',
line=dict(color='orange', dash='dot')), secondary_y=True)
self.add_weekly_high_low_annotations(fig, avg_profile, market_label=f"{market_label} {year}",
latest_date=df.index.max().strftime('%d-%b-%Y'))
fig.add_hline(y=100, line_dash='dot', line_color='gray')
fig.add_vrect(x0=120, x1=167, fillcolor="lightgray", opacity=0.3, layer="below", line_width=0)
fig.update_xaxes(tickmode='array', tickvals=tick_hours, ticktext=tick_text)
fig.update_layout(xaxis=dict(tickmode='array', tickvals=tick_hours, ticktext=tick_text, tickangle=0, tickfont=dict(size=10),
title=None ), yaxis=dict(title='Normalized Price'),
yaxis2=dict(title='Normalized Volume', overlaying='y', side='right'),
template='plotly_white', title=f'{market_label} — Avg Weekly Pattern for {year}')
fig.update_layout(annotations=annotations)
return fig
PythonThe Results
We have seen that the intuitive feeling of a ‘weekend dip’ needed nuancing into a pattern rising from a ‘beginning of the week’ dip to an ‘end of the week’ peak. This is indeed the pattern we recognize in the data for 2024 too. Here is the summary for all of the coins.

Several aspects of the image that appears from 2024 are remarkable. The first of these being the fact that the differences between meme and trad coins are less pronounced. The main reason: especially the volatility of traditional crypto in 2024. The pattern in itself is more uniform: the weekly low is without exception on Monday, almost for every coin at 03:00 or 04:00 AM; the weekly high we find almost without exception late at the Sunday evening at 23:00 PM.
The top 3 in terms of weekly return consists of younger meme coins only (Pepe, Bonk & Floki) with return percentages from almost 10% to just below 7%. A closer look however does reveal other remarkable circumstances: Ripple’s outperforming the other trad coins and Shiba’s less than suboptimal performance set them both apart from their respective categories! Consistently BTC is again the least volatile off all coins.

The pattern of the meme coins again is mimicked by the trad coins but definitely less pronounced. This is reflected in the graph below that shows the average weekly meme pattern versus the average weekly trad coin pattern over the year 2024 both in the same graph.

Recap & Lookout
In this research paper we started with an intuitive hypothesis of a weekend dip. Indeed some older literature underlined this notion but focused only on BTC and Ethereum, it does not even mention meme coins! To fill in the knowledge gap we decided to research the entire hourly price history of the 6 most prominent meme coins compared to a control group of the 3 top traditional cryptocurrencies.
We established the characteristic standard weekly pattern for normal market conditions with prices dipping at the start of the week then rising to an end of the week, weekend high! This pattern is also present for traditional coins, but less pronounced. Zooming in on the last full year, 2024, we see this pattern in an even more articulated form, particularly for meme coins as Pepe, Bonk and Floki.
Under extreme market conditions weekly patterns resemble, as expected, an overall rising, bullish, or sinking, bearish, pattern.
There are interesting aspects for further research that will be addressed in separate future studies. We found indications that the weekly volatility pattern is more dominant during the second half of a calendar year. At the end of this year, when we will be able to compare 2024 with 2025, we will elaborate on this subject.
Another intriguing theme: if we can establish a regular price pattern for cryptocurrencies, could that also be used for algorithmic trading? More on this subject will follow shortly.
Data Hygiene: Z-score Detection
As a statistical ‘sanity check’ we did a Z-score search on all our weekly time series. A z-score search is a statistical method to detect anomalies in time series data by measuring how far each data point deviates from the mean in terms of standard deviations. It is useful for detecting contextual anomalies: for example, in a retail data set a sudden spike in sales on an ordinary weekday might indicate a promotional event but also a data entry error. Z-score anomaly detection is most useful when applied to data with a distinct pattern.

The only z-score anomalies found are 6 and 8 data point around the extrema (low/high point) of the consolidated, averaged traditional coin graphs and 3 around the extrema (high/low point) of the consolidated, averaged meme coins with values all just above the threshold of 2.0.
Most important : we found no anomalies for the individual coin series.
A z-score > 2 means that the detected value is more than 2 standard deviations above the mean. Under a normal distribution this would occur about 2.5% of the time.
Conclusion: this few, hardly measurable anomalies that are all in the extrema of the constructed data series per cryptocurrency kind, none in the basic data. These finding strengthen the confidence in our data!
Literature
Hansen, Kim & Kimbrough, (2021), Periodicity in Cryptocurrency Volatility and Liquidity, arXiv
Coinmonk, (2024), Why Do Crypto Markets Dip on Saturdays and Rebound on Sundays?, Medium
Dimpfl, (2017), Bitcoin market microstructure, SSRN
Dyhrberg, Foley & Svec, (2018), How investible is bitcoin? analyzing the liquidity and transaction costs of bitcoin markets, Economics Letters
Catania & Sandholdt, (2019), Bitcoin at high frequency, Journal of Risk and Financial Management
Appendix 1: Weekly Lows vs Time-zone Shifts
Local times may appear on Sunday time in places far west of Europe (e.g. US West Coast, Hawaii) due to time-zone shifts but still represent the Monday CET time, the start of the analysis week.
All weekly patterns are analyzed within a 168-hour window starting at Monday 00:00 CET. Time conversions to other time zones may show the weekly low occurring on Sunday evening locally at time-zones removed further from the Central European Time. This does not imply the event occurred outside the analysis window — only that local calendar days differ across time zones.
