Applies to:
- Plan -
- Deployment -
Summary
Issue: In the Logs view for the Traces row type, the basic “Created between” filter can return traces whose “Created” column shows an older date (for example, matches from July under an August filter). Cause: In the Traces view, “Created between” matches if any span in the trace falls in range, which could include human reviews, scorer, or later chat spans, while the “Created” column shows the root span only. Resolution: To exclude any new spans and only filter by the root’s created date, use a custom SQL query withis_root AND created …, or switch to the Spans row type to see which spans match the filter condition.
What is happening
In the Traces row type, a “Created between” chip is equivalent toany_span(created >= '…' AND created <= '…'). Braintrust automatically wraps Basic and SQL filters in any_span(...) unless they target metrics.* or scores.*. The trace list shows one row per trace and the “Created” column is always the root span’s created timestamp, rather than the timestamp of the individual child span that matched the filter.
Common child spans that can match a later date range:
- Review spans (
span_attributes.type = 'review', often withpurpose = 'scorer'). - Later chat turns or tool spans added after the root was created.
- Scorer or automation spans written back into an existing trace.
Fix
In the SQL filter tab on Logs, filter by the root span’s created date withis_root AND created >= '2026-08-01T00:00:00Z' AND created < '2026-08-07T00:00:00Z'.
Use UTC (Z) or date-only bounds. This may be auto-wrapped as any_span(is_root AND created …). This still works because only the root has is_root = true.
To investigate a date discrepancy:
- Open the trace and expand user reviews or other child groups.
- Switch to the Spans row type and filter with
root_span_id = '…', then check each span’s created.
Review spans often have null
metrics.start and metrics.end values. Use the created field rather than metrics.start when inspecting these spans.