left_visible_bar_time / right_visible_bar_time — In TradingView these reflect the user’s UI viewport (what’s scrolled into view). PineTS is renderer-agnostic, so by default they fall back to the first/last bar of the loaded marketData (i.e. “the full loaded range is the viewport”). Hosts that render PineTS output and want to model a true zoom/pan can override via PineTS.setVisibleRange(left, right). Use PineTS.usesVisibleRange() to skip viewport-change re-runs for indicators that don’t reference these built-ins; PineTS.update(code) is a smart re-run helper that gates on this tag automatically.