How to Create a Weekly Crypto Market Report: Step by Step

A weekly market report is a different job from watching the market. One is a document with a fixed window, the other is a habit with no end state.
This guide covers how to build the document. It walks through the window to fix, the fields to pull, and how to structure the movers table. It also covers how to make next week's crypto market report cost minutes instead of an afternoon.
This is a reporting workflow, not investment or tax advice. Nothing here forecasts prices, and no figure below should be read as a recommendation to buy or sell anything.
What a weekly crypto market report is for
The purpose is narrow, and keeping it narrow is what makes the report readable.
A weekly crypto market report answers one question. What changed in the last seven days, and by how much?
It does not answer what happens next. Prediction is a different document with different obligations. Mixing the two makes both halves less trustworthy.
The audience matters too. A crypto market report that circulates on Monday morning is read in ninety seconds, so it needs a fixed shape people learn once.
What you need before you start
Four decisions, made once and then reused every week.
The universe. Which assets are in scope, and by what rule. Top 25 by market capitalisation is a rule; a hand-picked list is a preference that drifts.
The window. Seven days ending when, exactly. A report labelled "this week" without a cutoff cannot be reproduced.
The base currency. All figures in one currency, stated on the page.
The data source. One source, named, with its own timestamp captured alongside the numbers.
That last point is the one people skip. Two sources will disagree at the margins, and a reader who spots the gap will stop trusting the whole page.
Fix the window and the as-of time
Pick a cutoff and never move it. Sunday 23:59 UTC works because it is unambiguous across time zones.
Write the as-of time on the report itself. "Week ending Sunday 24 August 2026, 23:59 UTC" is reproducible, and "last week" is not.
Then record the source's own timestamp separately. Market data APIs report a per-asset update time, and that is not the same as the moment you ran the pull.
CoinGecko's market endpoint returns a last_updated value on every asset. Storing it next to your figures is what lets you answer "why does this differ from the exchange" a month later.
Pull the market data
The CoinGecko API documents a single endpoint that covers almost everything a weekly report needs. Its coins list with market data endpoint is described as a way to query supported coins "with price, market cap, volume and market related data."
The response carries the weekly view directly. Alongside current_price, market_cap, market_cap_rank, and total_volume, it returns percentage changes over several windows.
The field you want is named for the job. price_change_percentage_7d_in_currency is the seven-day move in your chosen base currency, and sparkline_in_7d carries the shape of that week.
Getting access is a short setup. CoinGecko's guide to setting up your API key describes signing up, opening the Developer Dashboard, and adding a new key.
Authentication then depends on your plan. CoinGecko documents a Pro route for paid plans including Basic, Analyst, Lite, Pro, Pro+, and Enterprise, and a separate Demo route for the free plan.
Build two error habits before you automate anything. CoinGecko's errors and rate limits page documents 429 as "Rate limit exceeded. Reduce call frequency or upgrade your plan," and 401 as a missing or invalid API key.
The 503 entry is the one worth reading twice. It points you at the public status page, which means an empty report is sometimes an outage rather than a bug in your code.
Build the movers table
The table is the crypto market report. Everything else is framing.
Six columns carry it, and adding a seventh usually costs more than it earns.
| Column | Source field | Why it belongs |
|---|---|---|
| Asset | name and symbol |
Readers scan symbols, not ids |
| Rank | market_cap_rank |
Distinguishes a large move from a small coin's noise |
| Price | current_price |
The anchor figure, in one stated currency |
| 7-day change | price_change_percentage_7d_in_currency |
The actual subject of a weekly report |
| Volume | total_volume |
A move on thin volume is a different fact |
| Market cap | market_cap |
Gives the move a sense of scale |
Sort by the seven-day change and show both ends. The top five and bottom five tell a fuller story than a top ten.
That choice matters more than it looks. A one-sided list reads as a highlight reel, and a weekly crypto market report is supposed to describe the whole window.
Two rules keep the table honest. Show the rank so nobody mistakes a micro-cap swing for a market event, and show volume so nobody reads a thin move as conviction.
Round consistently. Two decimal places on percentages and whole units on market cap is enough for a document people read in ninety seconds.
Write the three sentences that carry the report
A table without a written lead gets skimmed and misremembered. Three sentences fix that, and three is the limit.
Sentence one: the aggregate. Total market capitalisation for your universe, and its seven-day change.
Sentence two: the dispersion. How wide the gap was between the best and worst performers in scope.
Sentence three: the exception. The single asset whose move does not fit the pattern, with the volume figure attached.
Write them from the table, not from memory. Every number in the three sentences should be traceable to a cell above it.
Resist a fourth sentence explaining why. Attribution is a research task, and a weekly report that speculates is a weekly report that ages badly.
Automate the weekly refresh
The first edition takes an afternoon. Editions two onward should take minutes, and that only happens if you freeze the shape of the crypto market report.
Three things need to be fixed before automation helps. The universe rule, the window, and the column list.
Once those are frozen, the weekly work is a data pull and a review. Scheduled tasks handle the pull, and your job shrinks to reading the table before it goes out.
Powerdrill Bloom publishes its scheduling limits per plan. The free tier lists one scheduled task, and Pro lists 20, which is enough for a weekly report plus a set of other recurring jobs.
Keep a review step regardless. An automated report that nobody reads before sending is how a stale timestamp reaches an audience.
Getting started with Powerdrill Bloom
Step 1: Upload the market data export
Drop in the file you pulled. Powerdrill Bloom profiles the columns on arrival, so missing assets, mixed types, and duplicate symbols surface before any table is drawn.
Step 2: Describe the report in natural language
State the deliverable rather than the query. Name the universe rule, the window, the base currency, and the six columns you want.
Then push on it. Ask which assets were dropped for missing data, and ask what the aggregate market capitalisation reconciles to.
Step 3: Export the table and the three sentences
Take out the movers table and the written lead together. Our guide to analysing a crypto exchange CSV export covers the same discipline applied to your own trading history.
Start on the free tier before comparing plans on the pricing page. If it fits, try Powerdrill Bloom on a real pull rather than a sample.
Conclusion
A weekly crypto market report is a reproducibility exercise wearing a market-data costume. Fix the universe, fix the window, name the source, and the document writes itself.
The two habits that matter most are unglamorous. Store the source's own timestamp next to your figures, and never let the report speculate about next week.
Do that and the second crypto market report costs minutes. Our guides to analysing a crypto portfolio CSV and tracking crypto wallet transactions in a spreadsheet cover the own-data side. The AI crypto analyst page covers the tooling.
Frequently asked questions
What window should a weekly crypto market report use?
Pick a fixed cutoff and keep it, such as Sunday 23:59 UTC. A stated cutoff makes the report reproducible, and "last week" does not.
Which fields do I actually need?
Asset name and symbol, market cap rank, current price, the seven-day percentage change, total volume, and market cap. CoinGecko's market endpoint returns all of them in one response.
Why do my numbers differ from an exchange?
Aggregated market data and a single exchange's order book are different measurements. Storing the source's own last_updated timestamp alongside your figures lets you explain the gap rather than argue about it.
Should the report include a price outlook?
We would keep it out. A weekly report describes a closed window, and mixing in forecasts makes the factual part harder to trust.
How do I handle an empty or partial data pull?
Check the status code before assuming a bug. CoinGecko documents 429 for rate limiting, 401 for a missing or invalid key, and 503 with a pointer to its status page for outages.