Subject: MAQL Support Needed — Dormant Customer KP...
# gooddata-cloud
k
Subject: MAQL Support Needed — Dormant Customer KPI with Dashboard Date Filter Integration Product: GoodData Cloud Business Context We are building a Dormant Customer KPI on a sales orders dataset with the following fields: Customer Number Order Date Order ID Amount Business Definition A Dormant Customer is defined as:
A buyer who has placed at least one order historically, but has placed no order within a defined inactivity window of 90 days, measured from the FROM date of the dashboard date filter.
Example: Dashboard date filter = Jan 1, 2024 → Dec 31, 2024 FROM date = Jan 1, 2024 Inactivity window = Oct 3, 2023 → Jan 1, 2024 • Dormant = COUNT DISTINCT customers who ordered before Oct 3, 2023 and placed no order between Oct 3, 2023 and Jan 1, 2024 KPI Requirements 1. Dormant Buyers Count • COUNT DISTINCT Customer Number • Where customer has no order in the 90 days prior to the dashboard filter FROM date • Should respect the dashboard date filter for scoping the buyer population 2. Dormant Buyers — This Year • Same logic scoped to current year 3. Dormant Buyers — Last Year • Same logic scoped to previous year 4. Dormant Buyers — YoY % Change
(This Year - Last Year) / Last Year
Core Technical Problem We have been unable to find a native MAQL pattern that allows a metric to read the FROM date of the dashboard date filter to anchor the 90-day inactivity window dynamically.
k
This is a well-structured use case, but unfortunately it runs directly into a known platform limitation in GoodData Cloud. Core Limitation: MAQL Cannot Access Dashboard Filter Boundaries The fundamental blocker for your Dormant Customer KPI is that MAQL metrics cannot read the FROM date (or any boundary) of the dashboard date filter as a variable. You cannot dynamically compute "90 days before the filter's FROM date" and use that as a parameter inside a metric definition. [Overlap dates] This means the anchor point for your inactivity window (
FROM date - 90 days
) cannot be derived dynamically from the dashboard filter in MAQL. This is not a configuration gap — it is a documented product limitation that has been raised by multiple community members and logged as product feedback. [Filter boundaries] Additionally, GoodData does not support
>=
/
<=
operators on date filters, which would otherwise be needed to express "no order between Oct 3, 2023 and Jan 1, 2024" dynamically. [No / < filters>] Impact on Each KPI Requirement Practical Workarounds The knowledge sources suggest the following approaches for similar limitations: 1. Precompute the logic at the data source level: Add a column or flag in your database (e.g.,
is_dormant_as_of_period
) that marks whether a customer is dormant for a given period. GoodData can then simply COUNT DISTINCT on that pre-flagged column, and the dashboard date filter would scope the population normally. This is the most robust and scalable approach. [Precompute at source] 2. Hardcode the inactivity window: Define metrics with a static
WHERE
clause for a fixed 90-day window. This is not dynamic and requires manual updates when the period changes, but it is technically feasible in MAQL using the
WHERE
clause with fixed date values. [WHERE clause] 3. Submit as product feedback: The ability to reference dashboard filter boundaries (e.g.,
filter.from_date
) as variables inside MAQL has been explicitly requested by other community members and GoodData support has been logging these as product feedback items. [Product feedback] Recommendation The most scalable BI-layer solution given current platform capabilities is to precompute dormancy flags in your data warehouse (e.g., a snapshot table with
customer_number
,
period
,
is_dormant
), then build your KPIs in GoodData as simple COUNT DISTINCT metrics filtered on that flag. This sidesteps the MAQL limitation entirely and keeps your metrics maintainable. If a native dynamic solution is critical to your use case, I would recommend reaching out to GoodData support to formally log this as product feedback and inquire about professional services options. 👍 0 button 👎 0 button ℹ️ Tip: Mention @kapa.ai in the thread for follow-ups. 👀 Our Support team monitors all messages and will jump in if needed., with interactive elements
k
Most BI solution provide valuable feature called filter as variable/parameter can be added in Metric definition.
y
Hello Krishti, I understand this limitation is not ideal information for your use case, and I’m sorry for the inconvenience it’s causing. I will go ahead and raise this as product feedback to our team for consideration. In the meantime, if you need more flexibility or a workaround, we recommend using the GoodData.UI SDK. It allows you to build fully custom dashboards and visualizations with complete control over layout, behavior, and styling, so you’re not limited by the current functionality.
k
GoodData UI SDK is too much to customize for BI team. I will need some BI level solution.
y
Hello Krishti, Thank you for getting back to us. Feedback has been submitted to our product team.
👍 1