Home > Overview cumulative-revenue trend chart with comparators + band
Returns the cumulative-revenue trend chart that sits below the header tiles on the Home > Overview tab. One payload holds the current month’s daily line, two comparator curves (vs last month, vs last year), and a DOW-derived expected-range band — the frontend toggles between comparators locally without a second fetch.
The plan-overlay line and the ”+$X vs plan” annotation from
the design depend on the not-yet-migrated revenue_budgets
table and are not returned here; the frontend renders without
them until that table lands (spec decision D-1).
curl --request GET \
--url https://api.fluid.app/api/v202604/analytics/dashboard/trend \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.fluid.app/api/v202604/analytics/dashboard/trend"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.fluid.app/api/v202604/analytics/dashboard/trend', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.fluid.app/api/v202604/analytics/dashboard/trend",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.fluid.app/api/v202604/analytics/dashboard/trend"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.fluid.app/api/v202604/analytics/dashboard/trend")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/v202604/analytics/dashboard/trend")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"current_month": [
{
"date": "2026-09-01",
"revenue": "3120.4",
"cumulative_revenue": "3120.4"
},
{
"date": "2026-09-02",
"revenue": "2874.15",
"cumulative_revenue": "5994.55"
},
{
"date": "2026-09-03",
"revenue": "3342.9",
"cumulative_revenue": "9337.45"
},
{
"date": "2026-09-04",
"revenue": "2988.0",
"cumulative_revenue": "12325.45"
},
{
"date": "2026-09-05",
"revenue": "2410.55",
"cumulative_revenue": "14736.0"
},
{
"date": "2026-09-06",
"revenue": "2655.2",
"cumulative_revenue": "17391.2"
},
{
"date": "2026-09-07",
"revenue": "3518.75",
"cumulative_revenue": "20909.95"
},
{
"date": "2026-09-08",
"revenue": "3904.1",
"cumulative_revenue": "24814.05"
},
{
"date": "2026-09-09",
"revenue": "4218.75",
"cumulative_revenue": "29032.8"
},
{
"date": "2026-09-10",
"revenue": "1987.35",
"cumulative_revenue": "31020.15"
}
],
"last_month": [
{
"date": "2026-08-01",
"cumulative_revenue": "3002.35"
},
{
"date": "2026-08-02",
"cumulative_revenue": "5808.15"
},
{
"date": "2026-08-03",
"cumulative_revenue": "8940.05"
},
{
"date": "2026-08-04",
"cumulative_revenue": "11679.45"
},
{
"date": "2026-08-05",
"cumulative_revenue": "14606.9"
},
{
"date": "2026-08-06",
"cumulative_revenue": "17609.25"
},
{
"date": "2026-08-07",
"cumulative_revenue": "20415.05"
},
{
"date": "2026-08-08",
"cumulative_revenue": "23546.95"
},
{
"date": "2026-08-09",
"cumulative_revenue": "26286.35"
},
{
"date": "2026-08-10",
"cumulative_revenue": "29213.8"
},
{
"date": "2026-08-11",
"cumulative_revenue": "32216.15"
},
{
"date": "2026-08-12",
"cumulative_revenue": "35021.95"
},
{
"date": "2026-08-13",
"cumulative_revenue": "38153.85"
},
{
"date": "2026-08-14",
"cumulative_revenue": "40893.25"
},
{
"date": "2026-08-15",
"cumulative_revenue": "43820.7"
},
{
"date": "2026-08-16",
"cumulative_revenue": "46823.05"
},
{
"date": "2026-08-17",
"cumulative_revenue": "49628.85"
},
{
"date": "2026-08-18",
"cumulative_revenue": "52760.75"
},
{
"date": "2026-08-19",
"cumulative_revenue": "55500.15"
},
{
"date": "2026-08-20",
"cumulative_revenue": "58427.6"
},
{
"date": "2026-08-21",
"cumulative_revenue": "61429.95"
},
{
"date": "2026-08-22",
"cumulative_revenue": "64235.75"
},
{
"date": "2026-08-23",
"cumulative_revenue": "67367.65"
},
{
"date": "2026-08-24",
"cumulative_revenue": "70107.05"
},
{
"date": "2026-08-25",
"cumulative_revenue": "73034.5"
},
{
"date": "2026-08-26",
"cumulative_revenue": "76036.85"
},
{
"date": "2026-08-27",
"cumulative_revenue": "78842.65"
},
{
"date": "2026-08-28",
"cumulative_revenue": "81974.55"
},
{
"date": "2026-08-29",
"cumulative_revenue": "84713.95"
},
{
"date": "2026-08-30",
"cumulative_revenue": "87641.4"
},
{
"date": "2026-08-31",
"cumulative_revenue": "90643.75"
}
],
"last_year": [
{
"date": "2025-09-01",
"cumulative_revenue": "2244.9"
},
{
"date": "2025-09-02",
"cumulative_revenue": "4743.3"
},
{
"date": "2025-09-03",
"cumulative_revenue": "7074.05"
},
{
"date": "2025-09-04",
"cumulative_revenue": "9251.15"
},
{
"date": "2025-09-05",
"cumulative_revenue": "11496.05"
},
{
"date": "2025-09-06",
"cumulative_revenue": "13994.45"
},
{
"date": "2025-09-07",
"cumulative_revenue": "16325.2"
},
{
"date": "2025-09-08",
"cumulative_revenue": "18502.3"
},
{
"date": "2025-09-09",
"cumulative_revenue": "20747.2"
},
{
"date": "2025-09-10",
"cumulative_revenue": "23245.6"
},
{
"date": "2025-09-11",
"cumulative_revenue": "25576.35"
},
{
"date": "2025-09-12",
"cumulative_revenue": "27753.45"
},
{
"date": "2025-09-13",
"cumulative_revenue": "29998.35"
},
{
"date": "2025-09-14",
"cumulative_revenue": "32496.75"
},
{
"date": "2025-09-15",
"cumulative_revenue": "34827.5"
},
{
"date": "2025-09-16",
"cumulative_revenue": "37004.6"
},
{
"date": "2025-09-17",
"cumulative_revenue": "39249.5"
},
{
"date": "2025-09-18",
"cumulative_revenue": "41747.9"
},
{
"date": "2025-09-19",
"cumulative_revenue": "44078.65"
},
{
"date": "2025-09-20",
"cumulative_revenue": "46255.75"
},
{
"date": "2025-09-21",
"cumulative_revenue": "48500.65"
},
{
"date": "2025-09-22",
"cumulative_revenue": "50999.05"
},
{
"date": "2025-09-23",
"cumulative_revenue": "53329.8"
},
{
"date": "2025-09-24",
"cumulative_revenue": "55506.9"
},
{
"date": "2025-09-25",
"cumulative_revenue": "57751.8"
},
{
"date": "2025-09-26",
"cumulative_revenue": "60250.2"
},
{
"date": "2025-09-27",
"cumulative_revenue": "62580.95"
},
{
"date": "2025-09-28",
"cumulative_revenue": "64758.05"
},
{
"date": "2025-09-29",
"cumulative_revenue": "67002.95"
},
{
"date": "2025-09-30",
"cumulative_revenue": "69501.35"
}
],
"expected_band": [
{
"date": "2026-09-01",
"cumulative_lower": "2450.0",
"cumulative_median": "2980.0",
"cumulative_upper": "3560.0"
},
{
"date": "2026-09-02",
"cumulative_lower": "4940.0",
"cumulative_median": "6015.0",
"cumulative_upper": "7190.0"
},
{
"date": "2026-09-03",
"cumulative_lower": "7470.0",
"cumulative_median": "9105.0",
"cumulative_upper": "10750.0"
},
{
"date": "2026-09-04",
"cumulative_lower": "9920.0",
"cumulative_median": "12250.0",
"cumulative_upper": "14380.0"
},
{
"date": "2026-09-05",
"cumulative_lower": "12410.0",
"cumulative_median": "15230.0",
"cumulative_upper": "17940.0"
},
{
"date": "2026-09-06",
"cumulative_lower": "14940.0",
"cumulative_median": "18265.0",
"cumulative_upper": "21570.0"
},
{
"date": "2026-09-07",
"cumulative_lower": "17390.0",
"cumulative_median": "21355.0",
"cumulative_upper": "25130.0"
},
{
"date": "2026-09-08",
"cumulative_lower": "19880.0",
"cumulative_median": "24500.0",
"cumulative_upper": "28760.0"
},
{
"date": "2026-09-09",
"cumulative_lower": "22410.0",
"cumulative_median": "27480.0",
"cumulative_upper": "32320.0"
},
{
"date": "2026-09-10",
"cumulative_lower": "24860.0",
"cumulative_median": "30515.0",
"cumulative_upper": "35950.0"
}
],
"currency": "USD",
"meta": {
"request_uuid": "c47d9e12-0b3a-4f5e-8a26-7d1c93e5b048",
"timestamp": "2026-09-10T15:42:07Z"
}
}{
"error": {
"message": "<string>",
"details": {}
},
"meta": {
"timestamp": "2023-11-07T05:31:56Z",
"request_id": "<string>",
"request_uuid": "<string>"
}
}{
"message": "<string>"
}{
"message": "<string>",
"error": "<string>"
}{
"error": {
"message": "<string>",
"details": {}
},
"meta": {
"timestamp": "2023-11-07T05:31:56Z",
"request_id": "<string>",
"request_uuid": "<string>"
}
}Authorizations
Query Parameters
ISO alpha-2 code of one of the requesting company's configured
countries (see GET /countries). When present, every service
on this endpoint filters its data to that country and reports
money in the country's own currency. Omit (or send "all")
for the aggregate-across-countries view, which is the default
and matches pre-Phase-004 behavior. Unknown ISO codes or ones
the company is not configured for return 400.
"US"
Response
Trend chart payload
curl --request GET \
--url https://api.fluid.app/api/v202604/analytics/dashboard/trend \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.fluid.app/api/v202604/analytics/dashboard/trend"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.fluid.app/api/v202604/analytics/dashboard/trend', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.fluid.app/api/v202604/analytics/dashboard/trend",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.fluid.app/api/v202604/analytics/dashboard/trend"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.fluid.app/api/v202604/analytics/dashboard/trend")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/v202604/analytics/dashboard/trend")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"current_month": [
{
"date": "2026-09-01",
"revenue": "3120.4",
"cumulative_revenue": "3120.4"
},
{
"date": "2026-09-02",
"revenue": "2874.15",
"cumulative_revenue": "5994.55"
},
{
"date": "2026-09-03",
"revenue": "3342.9",
"cumulative_revenue": "9337.45"
},
{
"date": "2026-09-04",
"revenue": "2988.0",
"cumulative_revenue": "12325.45"
},
{
"date": "2026-09-05",
"revenue": "2410.55",
"cumulative_revenue": "14736.0"
},
{
"date": "2026-09-06",
"revenue": "2655.2",
"cumulative_revenue": "17391.2"
},
{
"date": "2026-09-07",
"revenue": "3518.75",
"cumulative_revenue": "20909.95"
},
{
"date": "2026-09-08",
"revenue": "3904.1",
"cumulative_revenue": "24814.05"
},
{
"date": "2026-09-09",
"revenue": "4218.75",
"cumulative_revenue": "29032.8"
},
{
"date": "2026-09-10",
"revenue": "1987.35",
"cumulative_revenue": "31020.15"
}
],
"last_month": [
{
"date": "2026-08-01",
"cumulative_revenue": "3002.35"
},
{
"date": "2026-08-02",
"cumulative_revenue": "5808.15"
},
{
"date": "2026-08-03",
"cumulative_revenue": "8940.05"
},
{
"date": "2026-08-04",
"cumulative_revenue": "11679.45"
},
{
"date": "2026-08-05",
"cumulative_revenue": "14606.9"
},
{
"date": "2026-08-06",
"cumulative_revenue": "17609.25"
},
{
"date": "2026-08-07",
"cumulative_revenue": "20415.05"
},
{
"date": "2026-08-08",
"cumulative_revenue": "23546.95"
},
{
"date": "2026-08-09",
"cumulative_revenue": "26286.35"
},
{
"date": "2026-08-10",
"cumulative_revenue": "29213.8"
},
{
"date": "2026-08-11",
"cumulative_revenue": "32216.15"
},
{
"date": "2026-08-12",
"cumulative_revenue": "35021.95"
},
{
"date": "2026-08-13",
"cumulative_revenue": "38153.85"
},
{
"date": "2026-08-14",
"cumulative_revenue": "40893.25"
},
{
"date": "2026-08-15",
"cumulative_revenue": "43820.7"
},
{
"date": "2026-08-16",
"cumulative_revenue": "46823.05"
},
{
"date": "2026-08-17",
"cumulative_revenue": "49628.85"
},
{
"date": "2026-08-18",
"cumulative_revenue": "52760.75"
},
{
"date": "2026-08-19",
"cumulative_revenue": "55500.15"
},
{
"date": "2026-08-20",
"cumulative_revenue": "58427.6"
},
{
"date": "2026-08-21",
"cumulative_revenue": "61429.95"
},
{
"date": "2026-08-22",
"cumulative_revenue": "64235.75"
},
{
"date": "2026-08-23",
"cumulative_revenue": "67367.65"
},
{
"date": "2026-08-24",
"cumulative_revenue": "70107.05"
},
{
"date": "2026-08-25",
"cumulative_revenue": "73034.5"
},
{
"date": "2026-08-26",
"cumulative_revenue": "76036.85"
},
{
"date": "2026-08-27",
"cumulative_revenue": "78842.65"
},
{
"date": "2026-08-28",
"cumulative_revenue": "81974.55"
},
{
"date": "2026-08-29",
"cumulative_revenue": "84713.95"
},
{
"date": "2026-08-30",
"cumulative_revenue": "87641.4"
},
{
"date": "2026-08-31",
"cumulative_revenue": "90643.75"
}
],
"last_year": [
{
"date": "2025-09-01",
"cumulative_revenue": "2244.9"
},
{
"date": "2025-09-02",
"cumulative_revenue": "4743.3"
},
{
"date": "2025-09-03",
"cumulative_revenue": "7074.05"
},
{
"date": "2025-09-04",
"cumulative_revenue": "9251.15"
},
{
"date": "2025-09-05",
"cumulative_revenue": "11496.05"
},
{
"date": "2025-09-06",
"cumulative_revenue": "13994.45"
},
{
"date": "2025-09-07",
"cumulative_revenue": "16325.2"
},
{
"date": "2025-09-08",
"cumulative_revenue": "18502.3"
},
{
"date": "2025-09-09",
"cumulative_revenue": "20747.2"
},
{
"date": "2025-09-10",
"cumulative_revenue": "23245.6"
},
{
"date": "2025-09-11",
"cumulative_revenue": "25576.35"
},
{
"date": "2025-09-12",
"cumulative_revenue": "27753.45"
},
{
"date": "2025-09-13",
"cumulative_revenue": "29998.35"
},
{
"date": "2025-09-14",
"cumulative_revenue": "32496.75"
},
{
"date": "2025-09-15",
"cumulative_revenue": "34827.5"
},
{
"date": "2025-09-16",
"cumulative_revenue": "37004.6"
},
{
"date": "2025-09-17",
"cumulative_revenue": "39249.5"
},
{
"date": "2025-09-18",
"cumulative_revenue": "41747.9"
},
{
"date": "2025-09-19",
"cumulative_revenue": "44078.65"
},
{
"date": "2025-09-20",
"cumulative_revenue": "46255.75"
},
{
"date": "2025-09-21",
"cumulative_revenue": "48500.65"
},
{
"date": "2025-09-22",
"cumulative_revenue": "50999.05"
},
{
"date": "2025-09-23",
"cumulative_revenue": "53329.8"
},
{
"date": "2025-09-24",
"cumulative_revenue": "55506.9"
},
{
"date": "2025-09-25",
"cumulative_revenue": "57751.8"
},
{
"date": "2025-09-26",
"cumulative_revenue": "60250.2"
},
{
"date": "2025-09-27",
"cumulative_revenue": "62580.95"
},
{
"date": "2025-09-28",
"cumulative_revenue": "64758.05"
},
{
"date": "2025-09-29",
"cumulative_revenue": "67002.95"
},
{
"date": "2025-09-30",
"cumulative_revenue": "69501.35"
}
],
"expected_band": [
{
"date": "2026-09-01",
"cumulative_lower": "2450.0",
"cumulative_median": "2980.0",
"cumulative_upper": "3560.0"
},
{
"date": "2026-09-02",
"cumulative_lower": "4940.0",
"cumulative_median": "6015.0",
"cumulative_upper": "7190.0"
},
{
"date": "2026-09-03",
"cumulative_lower": "7470.0",
"cumulative_median": "9105.0",
"cumulative_upper": "10750.0"
},
{
"date": "2026-09-04",
"cumulative_lower": "9920.0",
"cumulative_median": "12250.0",
"cumulative_upper": "14380.0"
},
{
"date": "2026-09-05",
"cumulative_lower": "12410.0",
"cumulative_median": "15230.0",
"cumulative_upper": "17940.0"
},
{
"date": "2026-09-06",
"cumulative_lower": "14940.0",
"cumulative_median": "18265.0",
"cumulative_upper": "21570.0"
},
{
"date": "2026-09-07",
"cumulative_lower": "17390.0",
"cumulative_median": "21355.0",
"cumulative_upper": "25130.0"
},
{
"date": "2026-09-08",
"cumulative_lower": "19880.0",
"cumulative_median": "24500.0",
"cumulative_upper": "28760.0"
},
{
"date": "2026-09-09",
"cumulative_lower": "22410.0",
"cumulative_median": "27480.0",
"cumulative_upper": "32320.0"
},
{
"date": "2026-09-10",
"cumulative_lower": "24860.0",
"cumulative_median": "30515.0",
"cumulative_upper": "35950.0"
}
],
"currency": "USD",
"meta": {
"request_uuid": "c47d9e12-0b3a-4f5e-8a26-7d1c93e5b048",
"timestamp": "2026-09-10T15:42:07Z"
}
}{
"error": {
"message": "<string>",
"details": {}
},
"meta": {
"timestamp": "2023-11-07T05:31:56Z",
"request_id": "<string>",
"request_uuid": "<string>"
}
}{
"message": "<string>"
}{
"message": "<string>",
"error": "<string>"
}{
"error": {
"message": "<string>",
"details": {}
},
"meta": {
"timestamp": "2023-11-07T05:31:56Z",
"request_id": "<string>",
"request_uuid": "<string>"
}
}