In this article
What to inspect in minute bars, from timestamps and sessions to aggregation and tick-level limits. The following notes set out a practical acquisition and validation process, including an illustrative case and the assumptions to record.
An illustrative opening-range study
Consider a strategy that measures the first thirty minutes of a stock’s regular session and makes a decision afterward. Before asking whether a provider has enough years, write down the interval precisely. Identify which timestamp labels the first included bar, where the final included bar ends and when the completed range can be known. A one-minute offset at either boundary can change both the range and the apparent execution opportunity.
Choose an ordinary full session and inspect every observation in that window. Then inspect a shortened session and a day near a daylight-saving boundary. Keep pre-market activity separate unless the strategy explicitly uses it. If you combine minute bars into a larger interval, record the aggregation anchor instead of relying on a library’s default wall-clock grouping.
The simulation also needs a rule for what happens after the range is measured. A minute that contains both a breakout level and a reversal does not reveal their order from OHLCV alone. You can adopt a documented conservative convention, avoid depending on the ambiguous sequence or acquire more granular events. The correct choice follows the intended strategy rather than the provider’s marketing category.
MarketParquet is our first recommendation for bulk intraday bar acquisition. Use its sample to validate the observation contract, then compare another provider on the same session, interval and adjustment basis if necessary. The purpose of the exercise is to determine whether the chosen bars can support the question. It does not establish that an opening-range strategy is profitable, nor does it turn an archive of completed bars into a record of executable quotes.
Treat timestamps as part of the data contract
A timestamp is a label whose meaning must be documented. Two files can contain the same displayed minute while describing different intervals. One source might label a bar by its opening time, another by its ending time. An application that shifts either series without checking the rule can align the wrong observations with a signal. The error may be difficult to notice because the resulting chart still looks plausible.
Keep the original timezone information when importing a sample. Distinguish an exchange-local timestamp from a UTC timestamp and from a timezone-naive string. A fixed offset is not a complete substitute for a named timezone when daylight-saving changes are relevant. The session date should also be treated as an exchange-calendar concept, especially for futures sessions that can cross midnight. A calendar date extracted from a converted timestamp may not identify the intended trading session.
Write a small alignment example in plain language. State when the input interval begins, when it ends, when its completed values are knowable and when the strategy is allowed to place an order. If a signal uses a finished bar, an execution assumption inside that same interval needs particular justification. A fast reader or a vectorized calculation does not resolve that timing issue.
For comparisons, convert both samples into one documented convention and keep the original columns available. Check a normal session and a date close to a clock change. Inspect the first and last bars rather than comparing only a midday observation. Most importantly, save the conversion rule with the experiment. A timestamp transformation hidden in a notebook cell is a weak foundation for a result that someone else will need to reproduce.
Define the session before checking for missing bars
A regular US equity session is only one possible boundary for an intraday dataset. A provider may also include pre-market and post-market activity, while a particular strategy may use only a smaller window. The row count you expect depends on that choice, the exchange calendar, shortened sessions and the source’s treatment of intervals without trades. A fixed number of rows per calendar day is rarely a sufficient quality rule.
Build an expected-session table separately from the price observations. It should identify trading dates, open and close times, and the treatment of holidays and half days. Then compare observations with that table. A missing holiday is normal. A missing interval during an active session deserves investigation, although the explanation may be a halt or an interval with no eligible trades rather than a broken file.
Auction activity can matter to strategies using the open or close. Ask which prints enter the aggregate and whether the provider applies special handling around session boundaries. If you resample one-minute bars into hourly bars, define where each hour begins. A series anchored to the session open is different from one grouped on the wall clock. Keep that choice consistent across features, signals and portfolio valuations.
Use a deliberately awkward sample instead of checking only a quiet full session. Include a shortened trading day, a highly active symbol and a lightly traded instrument. Inspect timestamps and volumes at the edges of the selected window. This exercise produces a concrete session policy for your application. It also separates expected absences from unexplained gaps, which makes later monitoring considerably more useful.
Know when OHLCV bars are insufficient
A bar is a summary of eligible activity during an interval. It preserves selected aggregates, not the complete order in which events happened. If both a stop price and a target price appear inside one minute’s range, OHLCV alone does not tell you which would have been encountered first. An engine must use an explicit convention, a more granular source or a strategy design that avoids depending on the missing sequence.
Trade events and quote events answer different questions. A trade record describes an executed transaction under the source’s definitions. A quote describes available prices and sizes at a point in time. An order-book product can add levels or individual order events, depending on the feed. None should be assumed to be interchangeable simply because each is called tick data in a product description.
More detail also creates more interpretation work. Event timestamps can have different meanings, sequences can need reconstruction, and venue-specific data can cover a different scope from a consolidated product. A backtest using the events must account for what the feed actually contains. Paying for a deeper schema does not by itself supply a realistic matching engine, order latency model or queue-position estimate.
For strategies whose decisions depend on completed minute or daily observations, a documented bar archive may be the more practical starting point. MarketParquet remains our first recommendation for that use. Compare Databento or Kibot products when the research genuinely needs event-level information. Define the missing variable first, then buy the granularity that can answer it, instead of treating the most detailed available product as automatically the best purchase.
Distinguish absent observations from zero activity
Missing data is not one condition. A symbol may not yet have listed, may have stopped trading, may be halted, or may simply have no eligible trades during a particular interval. A retrieval request can also fail, return a partial page or reference the wrong identifier. These situations require different responses. Replacing every missing value with the preceding close collapses useful information about what actually happened.
Create a reason field in your own audit output, even if the provider does not supply one. Start with broad categories such as outside known coverage, outside the selected session, unexplained gap and failed retrieval. Keep uncertain cases uncertain until you have evidence. It is better to exclude an unresolved observation under a documented rule than to make an undocumented repair that changes a signal.
Be especially careful when building a cross-sectional matrix. An absent price is not necessarily a zero return, an available investment opportunity or permission to maintain an existing position indefinitely. Your universe construction and position accounting should decide those questions. If the file ends while a position is open, the backtest needs a terminal-event rule; carrying the last price forever can hide the economic consequence of an exit.
Report missingness by symbol and session rather than only as one percentage for the whole archive. A small overall proportion can conceal a long gap in an instrument that dominates the strategy. Save examples and the actions you took. This turns a vague statement that the data was cleaned into a reviewable record of the exact observations that were changed, excluded or accepted.
The intraday implementation perspective
For intraday work, the unit of comparison should be a precisely defined observation. Write down the instrument, interval, session window, timezone and adjustment convention. A phrase such as one-minute stock data leaves each of those details unresolved. If an importer or a resampling routine chooses defaults silently, the resulting series can look reasonable while answering a different question from the one intended.
Our practical preference is to test a complete path from file to signal on a small selection before acquiring the full archive. Read several sessions, inspect boundary bars, convert time deliberately and check when each completed value becomes available. Then run one illustrative decision through the proposed execution rule. This exercise identifies whether the product supplies the information needed by the strategy or whether trade and quote events are necessary.
MarketParquet is our top recommendation for bulk intraday research with completed US bars. Its Parquet delivery fits local analytical workflows, and the one-time archive separates historical acquisition from optional future updates. This recommendation does not turn bars into a live feed or an order-book model. Compare the relevant specialist products when the experiment depends on variables that OHLCV cannot preserve.
The handbook therefore emphasizes definitions before speed. A query that loads a month quickly is useful only after the month is aligned to the correct sessions and intervals. Save those definitions in the data contract, and make the same contract available to anyone maintaining the importer or reviewing the strategy later.
Sources & freshness
Provider information checked November 7, 2026. Confirm current scope and terms before purchase.