Cumulative reports are not so easy to create. You should be patient and learn how to copy and paste some formulas. I'll try to explain how you can create a Cumulative Flow digram, Burn Up chart, and Burn Down chart.
Let's say, we have a Space with Releases, User Stories, and Bugs, here is the schema:

In this video I show how to create CFD and Burn Down charts:
Cumulative Flow Diagram (CFD)
Cumulative Flow Diagram is handy to understand how Cycle Time changes and get the feel of the whole process. We are going to build a CFD for Bugs and User Stories in our Space:

Step 1. Select Report type
Create a new Report and select "Cumulative, Burn Up & Down charts". Select required entities (User Stories and Bugs in our case):

Step 2. Set X-axis using Timeline function
Timeline
is a special date function used for grouping data by date period, defined by start and end. Here is the detailed description.
TIMELINE(
start date expression,
end date expression,
stop on current date (true or false, optional),
timeline start field (optional),
timeline end field (optional))
Optional
stop on the current date
can be true or false to indicate if a timeline should be stopped at the current date.Optional
timeline start and end fields
are used to get min and max dates for date scale.Date expression: Date calculation created using date functions, data fields, or constants.
For our needs we should use this code:
AUTO(
TIMELINE(
[Modification Date],
[Modification Valid To],
TRUE)
)
Here is how you do it:

Step 3. Set Y-axis as count of entities
Click + sign in Y axis and set the formula like this:
COUNT([Id])
It will calculate the number of entities in some states for some date.
Step 4. Set Chart Type and States as colors
Now you should set State
field as a color to calculate state transitions and set a chart type. You can also change the time group to Weeks or Days for X-axis:

Burn Down Chart
Let's create a Burn Down Chart for Release 1.0. It will be a chart that shows the remaining effort of Bugs and User Stories in a release and shows Ideal and Forecast lines:

Step 1. Filter data by Release 1.0
We want to see Stories and Bugs from Release 1.0 only, so we will create a Filter, like this:

Step 2. Set X-axis Timeline function
Now we should set a TIMELINE function like this (note that two last values cut chart by release dates):
AUTO(
TIMELINE(
[Modification Date],
[Modification Valid To],
TRUE,
MIN([Release Dates Start]),
MAX([Release Dates End])
)
)
Step 3. Set Y-axis and chart type
In a Burn Down we calculate the remaining Effort, so in Y-axis we will set a basic formula
Sum(Effort To Do)
And we'll set Line as a chart type:

Step 4. Add an Ideal line
The ideal line should just move from the first to the last day of the release and from the top effort to zero. It can be created as an Annotation, use this IDEAL_LINE function:
IDEAL_LINE(
FIRST([SUM(Effort To Do)]),
0
)
Here is how you add a new Annotation line:

Step 5. Add a forecast line
The forecast line shows basic prediction about release completion date based on team velocity. We'll use FORECAST_LINE function:
FORECAST_LINE(
[Sum(Effort To Do)],
0
)

Burn Up Chart (by Effort)
Burn Up Chart is somewhat more informative than Burn Down, since it shows how scope changes over time. For example, in this chart, we see that the release scope was increased twice (blue line). Red line shows completed effort, so you can create a forecast line that will show when the whole scope will be completed:

Step 1. Filter data by Release 1.0
We want to see Stories and Bugs from Release 1.0 only, so we should create a Filter, like this:

Step 2. Set X-axis Timeline function
Now we will set a TIMELINE function like this (note that two last values cut chart by release dates):
AUTO(
TIMELINE(
[Modification Date],
[Modification Valid To],
TRUE,
MIN([Release Dates Start]),
MAX([Release Dates End])
)
)
Click on + in X axis and set a calculation like this:

Step 3. Set Total and Completed Efforts on Y-axis
Y-axis will show two things:
Total Effort
Effort Completed
We'll calculate Effort Completed like this:
SUM([Effort] - [Effort To Do])
Let's set both efforts in the chart:

Step 4. Add Ideal Line and Forecast Line
The ideal line goes from 0 to the last date of the release, basically. Here is the formula:
IDEAL_LINE(
FIRST([Effort Completed]),
LAST([Total Effort])
)
Forecast Line shows when the scope of the Release can be completed:
FORECAST_LINE(
[Effort Completed],
LAST([Total Effort])
)
Click on Total Effort settings and add these two annotations:

Historical Data Structure
We always used [Modification Date]
and [Modification Valid To]
fields in cumulative charts, but what the structure of the historical data? Let's check this raw data to understand that.
This data shows changes for a single entity ("Full Text Search" Feature) from 15 to 19 April:

For example, the first row shows that State was set to Open on 15 April 2021 and this information was valid till 15 April 2021. It also means that "Full Text Search" Feature was changed again on 16 April and something changed here.
Basically, this is a list of events that indicate what was changed, when and for how long these changes are valid.