Skip to content

Progress & Metrics

Visualize KPIs, completion rates, performance scores, and comparisons using dynamic chart elements.


Perfect for:

  • KPIs and performance tracking
  • Completion rates and progress indicators
  • Sales metrics and revenue comparisons
  • Goal attainment visualization
  • Performance scores across categories
  • Before/after comparisons
  • Benchmark comparisons

Create horizontal bars that automatically adjust width based on data values. Ideal for comparing multiple items side-by-side.

Main Bar:

  • Element type: <rect>
  • ID format: lc_bar_* (e.g., lc_bar_revenue, lc_bar_q1-sales)

Background Bar (Optional):

  • Element type: <rect>
  • ID format: lc_bar_bg_* (must match main bar name)
  • Automatically creates a semi-transparent background track at 30% opacity

Simple Format - Value Only:

"40"

Sets bar width to 40%

JSON Format - Value with Color:

{
"value": 45,
"color": "yellow"
}

JSON Format - Full Options:

{
"value": 75,
"color": "#34A853",
"showDisplayValue": "true",
"displayValue": "$75K"
}
Property Type Default Description
value number Percentage (0–100). Clamped automatically.
color string Hex, CSS name, or RGB color for the bar fill.
showDisplayValue string "false" Set "true" to show the value text on the bar (case-insensitive).
displayValue string null Custom text to show instead of the auto-rounded percentage. Requires showDisplayValue: "true".

Color Options:

  • Hex codes: "#FF5722"
  • CSS names: "royalblue", "yellow", "green"
  • RGB: "rgb(255, 87, 34)"

Value Text (Background Bars):

lc_bar_bg_* elements can display the percentage value as split-color text on the bar — dark text on the unfilled track and contrast-based text on the filled portion. The text is right-aligned inside the bar and the font size scales to 80% of the bar height. Text is hidden by default and must be opted into.

  • To show the value text, set showDisplayValue to "true"
  • To show a custom label (e.g. "$75K"), set both showDisplayValue: "true" and displayValue: "$75K"
  • Range: 0% to 100%
  • Values above 100% → clamped to 100%
  • Negative values → not processed (no change)

{% raw %}

<!-- In your SVG -->
<rect id="lc_bar_bg_revenue" width="100" height="20" fill="#ccc" />
<rect id="lc_bar_revenue" width="100" height="20" fill="#2196F3" />
<!-- Simple value — bar at 75%, no text shown (default) -->
{{ revenue }} = "75"
<!-- With color — bar fill is green, no text shown -->
{{ revenue }} = '{"value": 75, "color": "#4CAF50"}'
<!-- Show value text — displays "75" as split-color text on the bar -->
{{ revenue }} = '{"value": 75, "color": "#34A853", "showDisplayValue": "true"}'
<!-- Custom display value — shows "$75K" instead of "75" -->
{{ revenue }} = '{"value": 75, "color": "#34A853", "showDisplayValue": "true", "displayValue": "$75K"}'

{% endraw %}


Create vertical columns that automatically adjust height based on data values. Perfect for time series or rankings.

Main Column:

  • Element type: <rect>
  • ID format: lc_column_* (e.g., lc_column_jan, lc_column_q3)

Background Column (Optional):

  • Element type: <rect>
  • ID format: lc_column_bg_*
  • Creates semi-transparent background at 30% opacity

Simple Format - Value Only:

"60"

Sets column height to 60%

JSON Format - Value with Color:

{
"value": 75,
"color": "yellow"
}

Color Options: Same as bar charts (hex, CSS names, RGB)

  • Range: 0% to 100%
  • Values above 100% → clamped to 100%
  • Negative values → not processed

{% raw %}

<!-- In your SVG -->
<rect id="lc_column_bg_q1" width="40" height="200" fill="#ccc" />
<rect id="lc_column_q1" width="40" height="200" fill="#FF5722" />
<!-- In your dataset -->
{{ q1 }} = "85"
<!-- OR with color -->
{{ q1 }} = '{"value": 85, "color": "green"}'

{% endraw %}

Result: Column displays at 85% height from bottom, growing upward


Display single percentages or completion status with circular progress indicators.

Main Circle:

  • Element type: <circle>
  • ID format: lc_circle_* (e.g., lc_circle_completion, lc_circle_score)

Background Circle (Optional):

  • Element type: <circle>
  • ID format: lc_circle_bg_*
  • Creates semi-transparent background at 30% opacity

Simple Percentage:

"50"

Sets circular progress to 50%

  • Range: 1% to 100%
  • Values above 100% → clamped to 100%
  • Negative values → not processed
  • 0 values → converted to 1% (minimum)

{% raw %}

<!-- In your SVG -->
<circle id="lc_circle_bg_completion" cx="50" cy="50" r="40" fill="none" stroke="#ccc" />
<circle id="lc_circle_completion" cx="50" cy="50" r="40" fill="none" stroke="#4CAF50" />
<!-- In your dataset -->
{{ completion }} = "68"

{% endraw %}

Result: Circular progress displays at 68% around the circle


Show min-max values or data ranges with adjustable position and width.

Main Range:

  • Element type: <rect>
  • ID format: lc_range_* (e.g., lc_range_temperature, lc_range_pricing)

Background Track (Optional):

  • Element type: <rect>
  • ID format: lc_range_bg_*
  • Creates background track at 30% opacity

Position and Width:

"10,40"
  • First value (10): Starting position at 10%
  • Second value (40): Width of 40%
  • Position (X): 1% to 100%
  • Width: 0% to (100% - position)
  • Combined values cannot exceed 100%
  • Negative values → not processed

{% raw %}

<!-- In your SVG -->
<rect id="lc_range_bg_price" width="200" height="10" fill="#ccc" />
<rect id="lc_range_price" width="200" height="10" fill="#FF9800" />
<!-- In your dataset -->
{{ price }} = "20,50"

{% endraw %}

Result: Range indicator starts at 20% and spans 50% of total width

Common Use Cases:

  • Price ranges ($20K - $70K)
  • Temperature ranges (20°C - 35°C)
  • Time windows (9am - 5pm)
  • Age demographics (25-65 years)

Issue Solution
Bar/column not showing Check that element is <rect> and ID has correct prefix
Circle not animating Verify element is <circle>, not <rect> or <ellipse>
Value not updating Ensure dataset variable name matches ID (after lc_bar_)
Color not applying Use JSON format: {"value": 75, "color": "blue"}
Range extends beyond 100% Position + Width must not exceed 100
Value text not appearing Text is hidden by default. Use "showDisplayValue": "true" in JSON format. Only works on lc_bar_bg_* elements.
Want custom text on bar Use "showDisplayValue": "true", "displayValue": "$75K" in JSON format

← Back to Custom Overview