---
title: nexyron.global_time_range
url: https://nexyron.tech/docs/cypher/procedures/temporal-and-streaming/nexyron-global-time-range
description: Rank temporal subjects across the graph for a time range and optional tag.
---

# nexyron.global_time_range

## Generic Description

Rank temporal subjects across the graph for a time range and optional tag.

Simple example:

```cypher
CALL nexyron.global_time_range(0, 60000, 'heart_rate')
YIELD node_id, dominance, weight, contribution_count
RETURN node_id, dominance, weight, contribution_count
ORDER BY dominance DESC
```

Time bounds are `i64` epoch-millisecond integers. `currenttimestamp()`, `now()`, `timestamp()`, `date(...)`, and `datetime(...)` all produce that scalar format. Integer arithmetic shifts the value by milliseconds, so `currenttimestamp() - 2592000000` means "30 days ago".

## Consumer-Level Explanation

Use `nexyron.global_time_range` when you want to know which subjects dominate temporal activity in one window without first narrowing to one entity or series key. It does not return one row per event timestamp. If you need populated time buckets or an overview of the data range, use `nexyron.global_time_bins`. If you need raw timestamped rows for a known owner, use `nexyron.temporal_history` or `nexyron.entity_time_range`.

## Conceptual Explanation

This is the broadest subject-activity ranking in the procedure surface. It reads the global temporal index and aggregates matching contributions by subject, returning `node_id`, `dominance`, `weight`, and `contribution_count`. It is useful when the first question is "which subjects were most active in this interval?" rather than "what exact timestamps exist?"

## More Detailed Explanation

In practical queries, start by deciding the row grain you want after the call: one row per node, one row per path, one row per registry object, one row per artifact, or one row per summary. Then keep that grain explicit with `YIELD` and named projections. That is the difference between a useful planner-facing example and a vague call that downstream tooling cannot safely compose. For contract-driven procedures, the executable examples on these pages intentionally inspect procedure metadata unless the required named artifacts are created in the same example.

## Advanced Example

```cypher
CALL nexyron.global_time_range(currenttimestamp() - 86400000, currenttimestamp(), 'Reading')
YIELD node_id, dominance, weight, contribution_count
RETURN node_id, dominance, weight, contribution_count
ORDER BY weight DESC
LIMIT 20
```

## Real Use Cases

-   ranking the subjects with the most temporal activity in a selected window
-   finding dominant contributors before drilling into their exact history
-   feeding overview panels that need subject weight rather than raw event rows
-   compose the procedure output with `YIELD`, `WITH`, and `RETURN` rather than hiding follow-up logic outside Cypher

## Real Limitations And Tradeoffs

-   `global_time_range` does not yield `ts`, `start_ts`, or `end_ts`; use `global_time_bins`, `latest_global_temporal_event`, `entity_time_range`, or `temporal_history` when the query needs timestamp columns
-   broad windows can produce many ranked subjects quickly
-   filtering by tag still leaves all matching entities in scope
-   procedure calls are explicit contracts; missing state, unsupported parameters, or absent artifacts should fail rather than silently falling back
