Skip to content

CONCEPT Cited by 1 source

Visually Complete

Definition

Visually Complete is an operational predicate marking the moment a user has "seen the content they came for" on a given surface / page. It is per-surface-different — the done-state condition depends on what content the surface is fundamentally about. Visually Complete is the concrete predicate that timestamps User Perceived Latency.

Pinterest's framing: "Among all the performance metrics, the user perceived latency is a crucial one. It measures how much time the user spends since they perform an action until they see the content. This is also called Visually Complete." (Source: sources/2026-04-08-pinterest-performance-for-everyone).

Per-surface definitions — worked examples

From the 2026-04-08 post, each surface has its own Visually Complete rule:

Surface Visually Complete definition
Video Pin Closeup "the full-screen video starts playing"
Home Feed "all the images rendered and videos playing"
Search Auto Complete Page "the search autocompleted suggestions' text rendered along with the avatar images"

The variety is the point: Visually Complete is not a single algorithm, it's a family of predicates sharing the shape "all the content-critical views on this screen have transitioned to their user-visible state."

The hardness — and why platforms exist

"Given this dynamic nature of Visually Complete, engineers had to create customized measurement logic for each surface and that takes a lot of engineering effort and maintenance cost." (Source: sources/2026-04-08-pinterest-performance-for-everyone). Two engineer-weeks per surface on Android (see concepts/instrumentation-engineering-cost).

Pinterest's platform-level solution — build view-tree walk into BaseSurface + factor the readiness predicate into PerfImageView / PerfTextView / PerfVideoView marker interfaces — turns "write N per-surface detectors" into "tag N views with one of three interfaces."

Compositional structure

Across surfaces, Visually Complete is computed the same way:

  1. Enumerate the content-critical views on the surface.
  2. For each, define a per-type ready state ("drawn" for image/text, "playback started" for video).
  3. Conjunction: Visually Complete fires when all enumerated content-critical views are ready.
  4. Visibility-filter: restrict to views currently on-screen (via geometry inspection) so off-screen but tree-resident views don't block completion.

The view-tree substrate (Android view tree, iOS UIKit / SwiftUI hierarchy, DOM) provides (1); the marker-interface pattern externalises (2); the conjunction is (3); the geometry filter is (4).

Relationship to adjacent vocabulary

  • User Perceived Latency — the metric; Visually Complete is the predicate used to time-stamp the metric.
  • Largest Contentful Paint (LCP) (web) — a browser-computed heuristic for Visually Complete based on rendered element size.
  • Time to First Contentful Paint (FCP) (web) — when any contentful element renders; an earlier, looser predicate.
  • Time to Interactive (TTI) (web) — when the page is responsive, not when it's visually done — distinct axis.

Caveats

  • Visually Complete is not a formal specification — Pinterest describes it in prose ("all images rendered" etc.) but doesn't publish a full decision procedure (threshold fraction of visible views? temporal window for stability? fallback timeout?).
  • Tagging correctness is the failure mode — Visually Complete is only as accurate as the product engineer's labelling of views as PerfImageView / PerfTextView / PerfVideoView. False negatives (missing the hero image) let completion fire too early; false positives (tagging a decorative shimmer) can prevent completion forever.
  • Discovery cost — on a new surface, the set of content-critical views has to be decided by a human. The platform automates measurement, not which views are content-critical.

Seen in

Last updated · 319 distilled / 1,201 read