Performance and API plans
Date-range fetch vs filter, API plan tiers, open-task fetch toggle, and reuse settings.
Pulse minimizes API traffic while staying within provider rate limits.
Date range: fetch vs filter
| User action | What Pulse does |
|---|---|
| Widen date range | Fetches the union range from Jira/ClickUp |
| Narrow within already-loaded range | Recomputes metrics from cached tickets, no API calls |
| Compare to previous period | Uses cached data when the previous period falls inside the loaded window. otherwise shows a small “comparison unavailable” note (no extra fetch) |
The UI shows Filtering cached data… when narrowing. Loading metrics… when fetching.
API plan tiers
Set your subscription tier in config.yml. Defaults match free plans.
api:
clickup_plan: free # free | business | business_plus | enterprise
jira_plan: free # free | standard | premium | enterprise
| Plan | ClickUp workers | ClickUp rate reserve | ClickUp req/min (docs) | Jira search page size | Jira changelog workers |
|---|---|---|---|---|---|
| free (default) | 4 | 10 | 100 | 50 | 4 |
| business / Unlimited | 6 | 10 | 100 | - | - |
| business_plus | 12 | 50 | 1,000 | - | - |
| enterprise | 16 | 100 | 10,000 | - | - |
| jira standard | - | - | - | 100 | 6 |
| jira premium | - | - | - | 100 | 8 |
| jira enterprise | - | - | - | 100 | 10 |
What this controls:
- ClickUp workers, parallel list fetches and
bulk_time_in_statusbatches - ClickUp rate reserve, pause when
X-RateLimit-Remainingdrops below this (adaptive throttling before 429) - Jira page size, issues per search page (100 on paid plans = fewer pages)
- Jira changelog workers, parallel per-issue changelog fetches
If ClickUp returns 429 during sync, the dashboard shows a warning banner. Wait for the rate-limit window to reset, then refresh. On a paid ClickUp plan, set api.clickup_plan to match your workspace.
PULSE_CLICKUP_PARALLEL can only reduce workers below the plan cap (never raise it). PULSE_JIRA_CHANGELOG_WORKERS=0 (default) uses the plan default.
Skip open-task fetch (ClickUp)
metrics:
clickup:
fetch_open_tasks: false # default true
When false, Pulse skips open-task list calls (~half of ClickUp list API traffic). Open bug backlog metrics become incomplete. a health warning appears in the UI.
Reuse toggles (performance)
All default on. Disable when squads need fully independent fetches or use different Jira field configs.
performance:
reuse_fetch_window: true # filter cached tickets when narrowing dates (no API call)
reuse_api_responses: true # TTL cache for Jira/ClickUp HTTP responses (see PULSE_CACHE_TTL_SECONDS)
jira_shared_field_cache: true # share /rest/api/3/field lookups across squads on the same site
| Setting | When true (default) | When false |
|---|---|---|
reuse_fetch_window | Narrowing the date range recomputes from memory | Every date change refetches from the provider |
reuse_api_responses | Repeat API calls within TTL return cached responses | Every request hits Jira/ClickUp (slower, freshest) |
jira_shared_field_cache | One field lookup per Jira site + configured field names | Each squad fetch calls /rest/api/3/field separately |
Set jira_shared_field_cache: false when squads use different custom_fields names and you want isolation. When true, the cache key includes the configured field names so "Story Points" and "T-Shirt Size" do not collide.
Restart Pulse after changing performance settings.
Shared Jira field metadata cache
When performance.jira_shared_field_cache is true (default), Jira custom fields (Story Points, Priority, etc.) are resolved via GET /rest/api/3/field. Pulse caches that response once per Jira site and field-name pair for PULSE_CACHE_TTL_SECONDS (default 300s), shared across squads on the same site, not one call per squad per load.
