The short answer
The timing pattern is the thin alternating dark-and-light module line that runs between the finder patterns — the “dashed line” you can see crossing the top and down the left side of every QR code. It looks like decoration, but it is a clock: each transition from dark to light is one tick the scanner counts to work out the module size and grid spacing, so it knows how big a single module is and how far apart the data dots sit. Without it the scanner can find the code but cannot sample it.
It is a dashed line rather than a solid one because the alternation is the signal — a solid bar gives the scanner no spacing information at all. That is also why you generally cannot restyle it the way you restyle the finder eyes or the data modules: it must stay the alternating dark/light pattern for scanners to decode. This page is the third in the structural-marker trilogy that began with our qr finder pattern and qr alignment pattern guides; our how does a QR code work guide covers the whole scan pipeline and our qr code styling and qr code design guides cover what you can and cannot change.
What the timing pattern actually is
There are two timing patterns on every QR code, one horizontal and one vertical. The horizontal timing pattern is the single row of modules that runs between the top-left and top-right finder patterns, along the bottom edge of those eyes; the vertical timing pattern is the single column of modules that runs between the top-left and bottom-left finder patterns, along the right edge of those eyes. They meet at the top-left corner and form an L-shape of alternating modules laid over the grid.
Each one is just a row (or column) of modules that strictly alternate dark, light, dark, light, dark, light, all the way across, starting and ending with a dark module against the finder eye. That is the entire structure — a 1-module-wide line whose only property is its alternation. It is not a nested square like the finders or alignment pattern; it is a linear clock rail. The reason the standard chose a 1-module line of alternating colors is that the scanner can measure the width of any single module along it (one dark + one light = one full cycle) and from that derive the pitch of the whole grid, which is the unit the data modules are then sampled against.
Why it is a dashed line, not a solid one
It is tempting to ask why the timing pattern is not a solid line — a solid bar would be simpler to draw and easier to see. The answer is that a solid line carries no spacing information. A scanner looking at a solid dark bar across the top of the code learns that something is there, but it cannot tell whether the bar is one module wide, two modules wide, or ten; the transitions are the data. By alternating dark and light on every single module, the timing pattern gives the scanner a rising edge and a falling edge for each module, so it can count off the width of one module directly from the image and treat that as the sampling unit for the rest of the grid.
This is the same idea as a clock signal in electronics — a steady square wave whose edges mark the ticks, not a constant high level. The alternation is not a side effect of the design; the alternation is the design. Break the alternation (stretch one module, merge two of the same color, or replace the line with a solid bar) and the scanner loses its clock and cannot decide where one data module ends and the next begins, so it reads the wrong cells even though the finders located the code perfectly.
How a scanner uses it with the finders and the alignment pattern
The three structural markers divide the work. First the scanner finds the three finder patterns by their fixed 1:1:3:1:1 ratio, which locates the code and fixes its rotation — that step tells it where the code is but nothing about the module pitch. Then it reads the timing pattern between the finders to derive the module size: it measures the width of one full dark-light cycle along the line, and that single number becomes the grid spacing used to sample every data module. Finally, in versions that have one, the alignment pattern gives the scanner an extra reference point so it can correct perspective distortion and map a tilted or curved scan back onto that ideal grid.
Put together: the finders fix position and orientation, the timing pattern fixes the scale (how big a module is), and the alignment pattern fixes the shape (how a distorted image maps onto the ideal square grid). Each is a different coordinate the scanner needs to read the data, and the timing pattern is the one that supplies the grid scale — without it the scanner cannot turn a found code into a readable grid at all. Our qr error correction guide covers the separate redundancy that repairs damaged data modules; the timing pattern, like the finders, is functional structure that has to survive intact.
The customization trade-off
Unlike the finder eyes or the data modules, the timing pattern is the one part of a QR code you generally cannot restyle. It must stay the strict alternating dark/light pattern, module for module, or the scanner loses its clock. You cannot round it, dot it, gap it, or replace it with a solid band the way you can reshape a finder eye or a data module, because any of those changes either removes a transition the scanner counts or stretches a transition so the measured module size is wrong.
The one latitude you do have is color: as long as every dark module in the timing line stays clearly darker than every light module, you can tint the dark modules toward your brand color the same way you tint the rest of the code, and the scanner still reads the alternation. The moment the contrast along the timing line drops, the scanner miscounts the ticks and the grid scale comes out wrong, which fails the whole read even when the data area is intact. The practical rule is to leave the timing pattern alone — it is the structural rail the rest of the code is measured against, and our qr code styling and qr code design guides treat it as the line you do not touch. Keep a centered logo in the middle of the data area (our qr code with logo guide covers the 20–22% width rule) and leave the finders, the timing line, and the four-module quiet zone untouched.
Timing pattern at a glance
The table below summarizes the parts of the timing pattern, what each does, and the customization rule that keeps it scannable.
| Part | What it does | Customization rule |
|---|---|---|
| Horizontal timing line | Alternating dark/light row between the top-left and top-right finders; sets the horizontal module pitch. | Leave the alternation intact; do not stretch, merge, or replace modules with a solid bar. |
| Vertical timing line | Alternating dark/light column between the top-left and bottom-left finders; sets the vertical module pitch. | Same rule — keep every transition; the scanner counts them to derive the grid spacing. |
| Alternating dark/light pattern | The actual signal: one rising and one falling edge per module the scanner reads as a clock tick. | Must stay strictly alternating; a solid line or a merged pair removes the timing the scanner needs. |
| Dark/light contrast along the line | Lets the scanner distinguish each tick; low contrast reads as a blurred rail and miscounts the pitch. | Keep dark modules clearly darker than light ones; tinting toward brand color is fine, dropping contrast is not. |
| 1-module width | Keeps the timing line thin so it occupies the minimum grid space while still supplying the clock. | Never widen or thicken it; a thicker line eats data modules and still must alternate module-by-module. |
How QRForge handles the timing pattern
QRForge generates the timing pattern automatically at the positions the QR standard requires, so it just appears in the right place for whatever payload and error-correction level you choose — you never place or draw it by hand. The per-eye and per-module styling controls shape the finder eyes and the body; the timing pattern keeps its strict alternation by construction, so a default code keeps its clock by default and the rest of your styling is free to roam around it. If you restyle aggressively (a brand color that drops contrast, or a frame that creeps into the timing line), run the final exported SVG, PNG, or EPS through the free /decode helper to confirm the payload round-trips, and scan-test on a real phone before a print run.
When you add a centered logo, keep it in the middle of the data area with level H and the 20–22% width rule from our qr code with logo guide, and leave the finder eyes, the timing line, and the four-module quiet zone untouched. Pair the decode check with the contrast and quiet-zone habits in our qr best practices guide — the timing pattern is the rail the whole grid is measured against, so keeping its alternation intact is what lets the scanner turn your styled code into a correct read.
Frequently asked questions
What is the QR code timing pattern?
It is the thin alternating dark-and-light module line that runs between the finder patterns (across the top and down the left). Each transition is a clock tick the scanner counts to work out the module size and grid spacing the data is sampled against.
Why is the timing pattern a dashed line and not a solid one?
The alternation is the signal. A solid bar tells the scanner something is there but not how wide a module is; the alternating dark/light pattern gives a rising and falling edge per module, which is what the scanner measures to derive the grid pitch.
Can I restyle the timing pattern?
Generally no — it must stay the strict alternating dark/light pattern. You can tint the dark modules toward your brand color as long as contrast holds, but you cannot round, dot, gap, or replace the line with a solid band, or the scanner loses its clock and the read fails.
Can a logo cover the timing pattern?
Keep a centered logo in the middle of the data area on a level-H code (the 20–22% width rule), away from the finder eyes and the timing line. Covering the timing pattern removes the clock the scanner needs to sample the grid, so leave it untouched.