The Report Designer provides an intuitive, hybrid environment for building data pipelines and analytical reports. It combines the accessibility of a visual, drag-and-drop workflow with the power of dynamic SQL and custom post-processing formulas (API and Fn utilities).
Reports are structured visually without requiring complex custom scripts from scratch. Designers can drag fields, metrics, dimensions, and visual elements onto the canvas, building complex report layouts and transformations modularly.
When a report is generated, data passes through a two-step execution engine to ensure optimal performance and flexibility:
+-------------------------------------------------------+
| STEP 1: Data Editor (Database Level) |
| Compiles SQL query & evaluates initial API context |
+-------------------------------------------------------+
|
v
Fetches Data Frame (DF)
|
v
+-------------------------------------------------------+
| STEP 2: Executor (In-Memory Level) |
| Applies Fn formulas, transformations & aggregations |
+-------------------------------------------------------+
SQL Compilation & Pushdown: The Data Editor generates and compiles an optimized SQL query against your underlying data source.
Metal-Level Execution: You can leverage arbitrary, native SQL functions directly in the query (e.g., database-native JSON parsing, window functions, complex joins, or heavy filtering). This pushes intensive compute logic down to the "metal" level (the database engine) for maximum query performance.
Context Injection: You can seamlessly mix and match SQL with report context utilities (such as API.dt() or API.isoweek()) to pass dynamic parameters—like execution dates, dynamic offsets, or environment variables—directly into the query.
Output: The result of this stage is a raw, tabular Data Frame (DF).
Post-Processing: The engine passes the Data Frame (DF) to the formula executor.
Formula Evaluation: Row-level operations, conditional logic (Fn.when), custom grouping (Fn.Sum), forecasting (Fn.forecast), and structural table transformations (Fn.Subtotal, Fn.Unpack) are evaluated in-memory over the fetched dataset.
Output: The fully transformed dataset is rendered into the final report layout or visual dashboard.
Connect & Query: Use the Data Editor to build SQL statements—leveraging native database SQL functions for heavy logic alongside API context functions.
Design Layout: Drag and drop elements onto the canvas to construct the report structure.
Apply Logic: Define business logic, aggregations, and calculations across dataset rows using Fn formulas.
Preview & Publish: Run the report to trigger the execution engine, review the processed data, and publish for end-users.