QA How-To
Testing an image generation feature (2026)
Learn testing an image generation feature for prompt adherence, visual quality, safety, editing, metadata, accessibility, reliability, cost, and drift.
20 min read | 3,527 words
TL;DR
Testing an image generation feature requires deterministic request and file checks plus repeated semantic and visual evaluations. Build a prompt and edit suite with atomic labels, score adherence and defects separately, enforce safety and privacy as hard gates, and monitor quality, latency, cost, and drift by use case.
Key Takeaways
- Separate request validation, policy, generation, editing, post-processing, storage, delivery, and UI contracts.
- Use atomic prompts with labeled objects, attributes, relations, text, composition, forbidden elements, and acceptable variations.
- Evaluate prompt adherence, visual defects, safety, and usability independently rather than hiding them in one quality score.
- Run multiple retained samples for stochastic behavior and compare distributions, severe failures, and slice regressions.
- Validate actual decoded files, dimensions, transparency, color mode, metadata, provenance, URLs, and deletion behavior.
- Test uploads and prompts as untrusted input, with strict tenant isolation, moderation, resource limits, and human escalation.
Testing an image generation feature means validating far more than whether a picture looks attractive. QA must prove that the result follows the user's prompt, preserves required references during edits, avoids prohibited content, decodes into the promised file, remains accessible and private, and arrives within reliable latency and cost boundaries. Because generation is stochastic, one appealing sample cannot establish quality.
A modern image feature may accept text, uploaded images, masks, style references, dimensions, transparency, and conversation context. It may moderate inputs and outputs, generate several candidates, post-process them, store artifacts, and expose download or sharing links. This guide turns that system into testable layers and provides a practical dataset design, runnable image-integrity checks, visual oracles, adversarial cases, and an interview-ready release strategy.
TL;DR
| Area | Primary oracle | Why it is separate |
|---|---|---|
| Request contract | schema and option validation | catches deterministic input defects |
| Prompt adherence | labeled objects, attributes, relations, text | measures requested content |
| Visual quality | defect taxonomy and human rubric | measures usability and artifacts |
| Editing | change target plus preservation regions | detects collateral changes |
| Safety | policy categories and escalation | prevents prohibited output |
| File delivery | decoded format, size, metadata, URL | validates the actual artifact |
| Operations | latency, errors, cost, storage, drift | protects production reliability |
Create a versioned prompt and reference-image suite with clear atomic expectations and risk labels. Retain every sample across repeated runs, use deterministic assertions where possible, calibrate visual judges against human review, and investigate individual severe failures rather than averaging them away.
1. Scope Testing an Image Generation Feature
Define supported workflows first: text-to-image, variation, inpainting, outpainting, background removal or replacement, style transfer, product mockups, character consistency, image-to-image transformation, or conversational editing. Each workflow needs a distinct oracle. A text-to-image result has broad acceptable variation, while an edit may require pixel-stable preservation outside a mask.
Document request options and guarantees. These can include output formats, dimensions, aspect ratios, transparency, number of candidates, quality modes, seed behavior if exposed, maximum prompt and upload size, supported input types, storage duration, and moderation. Stay precise about what is a preference versus a guarantee. If the UI labels an option transparent background, the alpha-channel contract should be explicit.
Define the policy boundary with safety, legal, privacy, and product stakeholders. QA needs versioned allowed, disallowed, and escalation examples, including ambiguous cases. Applicable rights, consent, likeness, trademark, and disclosure requirements depend on use case and jurisdiction, so record the approved internal policy rather than inventing a universal rule.
A complete generation trace should connect request ID, user and tenant authorization, normalized options, prompt version, referenced artifact IDs, model and safety versions, moderation decisions, generation attempts, selected artifact, post-processing, storage object, and deletion state. Restrict access and redact sensitive prompts in routine telemetry.
2. Decompose Generation, Editing, and Delivery Layers
Map the lifecycle so a visual symptom has an owner. Input validation handles schema and files. Moderation applies policy. Prompt processing may expand or structure intent. The model generates candidates. Post-processing resizes, compresses, composites, strips or adds metadata, and creates thumbnails. Storage signs URLs. The UI renders, edits, downloads, shares, and deletes.
| Layer | Example defect | Isolated oracle |
|---|---|---|
| Request validation | unsupported ratio silently accepted | status and error schema |
| Input decoding | rotated upload loses orientation | canonical input pixels |
| Prompt processing | without text becomes with text |
normalized structured intent |
| Generation | wrong object count | atomic prompt labels |
| Editing | unmasked face changes | preservation comparison |
| Moderation | blocked request bypassed by encoding | policy fixture |
| Post-processing | alpha channel flattened | decoded file properties |
| Storage | another tenant can open URL | authorization and signed URL tests |
| UI | preview differs from downloaded image | artifact ID and pixel digest |
Use component tests for large matrices. Feed fixed normalized requests to orchestration, known bytes to file processing, controlled decisions to moderation UI, and generated fixture images to storage. A smaller end-to-end suite should submit representative text and edits through the real service and verify the resulting artifact.
Keep all candidate attempts in protected evaluation artifacts. If the product generates four images and automatically selects one, evaluate both candidate distribution and selection policy. A strong chosen image does not erase unsafe or severely defective hidden candidates if they affect cost, exposure, or future ranking.
3. Build an Atomic Prompt and Reference Suite
A useful prompt fixture is decomposable. Store the raw prompt, requested objects, counts, attributes, spatial relationships, action, scene, style, camera or composition cues, exact rendered text, forbidden elements, acceptable variations, safety class, locale, and use case. Each label should be observable enough that reviewers can agree.
Start with simple prompts that isolate one property, then combine properties. Examples include one red mug on a white table, three blue circles above one yellow square, a bicycle to the left of a tree, or a poster containing an exact short phrase. Add negation such as no people and exclusions such as plain background without a shadow. Count and relation failures often disappear inside a broad beauty score.
Include hard but realistic slices: hands and small objects, text rendering, diagrams, maps, product geometry, repeated patterns, transparent assets, dark scenes, diverse skin and hair, culturally specific content, long prompts, underspecified prompts, conflicting requirements, multilingual text, and unusual aspect ratios. Do not use benchmark prompts without understanding their rights and relevance to the product.
For editing, retain the source image, mask, instruction, expected changed region or semantic property, protected regions, and acceptable variation. Use synthetic images for exact geometry checks and licensed or internally created images for realism. Split prompt families so paraphrases or near-identical source images do not leak across tuning and release sets. Version every reference and annotation.
4. Define Prompt Adherence and Composition Oracles
Score atomic dimensions independently. Object presence, count, color, material, relative position, action, setting, style, composition, and exact text can each pass or fail. Report the vector plus severe violations. A weighted composite may support comparison, but its weights are product choices and the underlying components must remain visible.
Use deterministic computer vision only where the fixture supports it. Solid-color geometric scenes can be checked through color masks and connected components. Metadata and dimensions are exact. For open-ended scenes, use calibrated human review or a vision model judge with a clear rubric. Validate any judge against expert labels, randomize candidate order, and monitor whether it prefers verbosity, brightness, or a particular style.
Test relations carefully. A judge may detect both a cat and chair but miss that the cat is supposed to be under the chair. Ask separate questions for entities and relationships. For counts, include crowded and occluded scenes but distinguish model limitation from ambiguous annotation. Exact text requires transcription plus visual legibility review, not only OCR similarity.
Use metamorphic prompts. Harmless punctuation, polite phrasing, and sentence order should not cause dramatic semantic changes. Adding one attribute should change that attribute while preserving unrelated requirements. Removing an object should not introduce a different unwanted object. These comparisons expose instruction binding and are often more stable than an absolute aesthetic label.
5. Evaluate Visual Quality Without a Vague Beauty Score
Visual quality should use a defect taxonomy tied to the product. Categories can include malformed anatomy, broken object geometry, unintended merging, inconsistent lighting, impossible reflections, aliasing, banding, compression, seams, tiling, repeated texture, cut-off subjects, poor focal hierarchy, illegible text, and low local detail. Product mockups may add logo fidelity, packaging shape, and background cleanliness.
Reviewers should label severity and affected region. A tiny background artifact differs from a deformed primary product. Define usability levels such as unusable, usable after substantial edit, usable after minor edit, and ready for the intended workflow. Provide examples and adjudicate disagreement. Do not call a result objectively beautiful. Align the rubric with whether a designer, marketer, teacher, or ordinary user can complete the intended task.
Automated signals such as blur, clipping, entropy, duplicate images, or aesthetic models can triage, but they are not universal truth. A deliberately soft-focus image can be correct. Compare automated thresholds with human outcomes for each use case and monitor false positives.
Retain full-resolution outputs for evaluation. A small preview can hide defects, while browser scaling can invent apparent blur. Compare preview, editor canvas, downloaded file, thumbnail, and shared link by artifact identity and decoded properties. Review important regions at native size and test color management on representative devices.
6. Test Stochastic Outputs and Regression Distributions
If a seed is supported as a product contract, verify repeatability only under the documented model, configuration, and infrastructure conditions. Do not assume seeds guarantee identical pixels across model upgrades. If no deterministic mode exists, run multiple samples per fixture and compare distributions of adherence, defect severity, safety, latency, and cost.
Choose the run count from decision risk and observed variance, not a ritual number. A cheap daily smoke set may use fewer repeats, while a release evaluation for a critical product workflow uses enough samples to estimate instability. Publish denominators and confidence intervals when making statistical claims. Preserve every sample and avoid regenerating only failed cases until the suite looks green.
Compare candidate and baseline on paired prompt fixtures. Use case-level deltas and bootstrap summaries where appropriate, then inspect regressions. A small average gain may hide a new severe failure on text rendering or a subgroup. Define non-inferiority gates for must-not-regress slices and hard gates for policy violations or corrupted files.
Control surrounding versions: prompt preprocessing, model, safety classifier, post-processing, reference images, masks, and judge. Randomize review order and hide model identity from human reviewers when possible. The AI-powered visual testing guide offers additional guidance on calibrating semantic visual comparison.
7. Validate Image Editing, Masks, and Preservation
Editing requires two simultaneous assertions: the requested change occurred and protected content remained stable. For inpainting, test empty masks, full masks, soft edges, tiny regions, disconnected regions, inverted masks, masks with different dimensions, and orientation metadata. Reject or normalize mismatches explicitly. Never silently edit the opposite region.
Use synthetic grids and color blocks to check mask alignment exactly through resize, crop, EXIF orientation, and aspect-ratio conversions. A one-pixel or scaled offset can become a visible halo. Verify feathering rules and alpha handling. For real images, compare protected regions using tolerant pixel or perceptual metrics plus semantic checks, because compression can alter unchanged pixels slightly.
Create instructions that change one property: background color, shirt color, object removal, added shadow, or text replacement. Assert the target property and label protected identities, pose, product shape, logo, camera framing, and lighting as required. Conversational edits should reference the correct previous artifact, not the latest image in another tab or user's session.
Test undo, redo, branches, regeneration, and cancellation. An edit history should use immutable artifact IDs and parent links. A failed edit must not overwrite the source. When a user changes the mask after submitting, the in-flight request should keep its original version or cancel clearly. Downloads and shares must point to the selected branch, not a stale preview.
8. Check Real Image Files With Pillow
Do not trust the filename, HTTP content type, or preview alone. Decode the returned bytes and validate format, dimensions, mode, alpha behavior, frame count, size limits, metadata policy, and pixel sanity. A service can return an HTML error page with a .png name or a truncated image that a permissive preview partly renders.
The following runnable Python script uses Pillow's current public APIs to create a controlled RGBA image, save it, reopen and verify it, then assert dimensions, format, transparency, and nonempty pixels. Install Pillow with python -m pip install Pillow, save the code as image_contract_check.py, and run it.
from io import BytesIO
from pathlib import Path
from PIL import Image, ImageStat
output = Path('generated-fixture.png')
source = Image.new('RGBA', (256, 128), (30, 90, 180, 0))
for x in range(64, 192):
for y in range(32, 96):
source.putpixel((x, y), (240, 120, 40, 255))
source.save(output, format='PNG')
raw = output.read_bytes()
with Image.open(BytesIO(raw)) as candidate:
candidate.verify()
with Image.open(BytesIO(raw)) as candidate:
candidate.load()
assert candidate.format == 'PNG'
assert candidate.size == (256, 128)
assert candidate.mode == 'RGBA'
alpha = candidate.getchannel('A')
assert alpha.getextrema() == (0, 255)
rgb = candidate.convert('RGB')
means = ImageStat.Stat(rgb).mean
assert max(means) - min(means) > 10
print({'bytes': len(raw), 'format': 'PNG', 'size': [256, 128]})
For service tests, replace raw with authenticated response bytes and assert the product's promised contract. Run decoding in a constrained environment for untrusted files. Add JPEG, WebP, animation, large-dimension, decompression-limit, ICC profile, and EXIF cases only when supported. If metadata is stripped for privacy, verify that intentionally rather than assuming it.
9. Test Safety, Bias, Privacy, and Provenance
Safety evaluation needs versioned policy categories and case-level expected behavior. Cover allowed benign requests, disallowed content, borderline transformation, educational or news context if supported, obfuscation, multilingual prompts, typographic variants, image-based instructions, and attempts to continue a blocked request through edits. Measure false blocks as well as misses. A safe product that blocks ordinary work indiscriminately is not useful.
Evaluate outputs, not only prompts. A benign request may produce a prohibited result, and an adversarial prompt may pass input moderation through encoding. Moderation should handle generated candidates before exposure according to the product policy. Test escalation, user messaging, audit records, retries, and whether a blocked image can still appear in thumbnails, history, cache, notifications, or shared URLs.
Bias testing should use product-relevant representation and stereotyping rubrics created with appropriate stakeholders. Vary occupations, activities, settings, and underspecified people, then analyze output distributions across repeated samples. Also test equal prompt adherence and defect rates for varied skin tones, hair, cultural clothing, ages, body types, and assistive devices where relevant. Report sample sizes and avoid universal claims from a narrow prompt set.
Uploaded references may contain people, private locations, documents, or hidden metadata. Test consent flows, minimization, tenant isolation, encryption, vendor boundaries, retention, deletion, and derived artifacts. Prompts and images are untrusted input that may contain injection or parser attacks. The LLM guardrails testing guide provides a broader adversarial framework.
Provenance features such as generation labels, content credentials, or metadata must be tested according to the product promise. Verify presence, correctness, persistence through supported edits and downloads, and clear behavior when an external tool strips metadata. Do not claim a provenance mechanism proves factual truth. It records an origin assertion under a defined trust model.
10. Verify API, UI, Storage, and Accessibility
API tests should cover authentication, authorization, schemas, option combinations, unknown fields, idempotency, cancellation, rate limits, timeouts, partial candidate failure, status polling or streaming, and stable error codes. A retried request should not charge or create duplicate artifacts contrary to the documented contract. Terminal states must remain terminal.
Test upload validation using content signatures, decoded dimensions, format, size, animation frames, orientation, alpha, corrupted bytes, oversized metadata, and decompression risk. Sanitize file names and render untrusted metadata safely. Signed artifact URLs should expire, bind to the correct tenant and object, and resist ID guessing. Cache headers must match privacy and revocation requirements.
The UI should preserve prompt, options, progress, cancellation, candidate selection, edit history, and errors across the intended navigation. Test multiple tabs, simultaneous generations, late responses, refresh, back and forward, retry, offline transitions, and quota exhaustion. A late completion must not replace the currently selected image or attach to the wrong prompt.
Accessibility includes labeled prompt and upload controls, keyboard editing and candidate selection, visible focus, understandable progress, error announcements, zoom, contrast, and non-color selection cues. Generated images need an alt-text workflow appropriate to their use. Automatically proposed alt text should be editable and tested for factual support, sensitive inference, and concise utility. Canvas-based mask tools need keyboard or alternative mechanisms if the product claims accessible editing.
11. Load, Reliability, Cost, and Production Drift
Image jobs are resource intensive and often asynchronous. Model realistic mixes of small and large dimensions, text generation, editing, candidate counts, and safety review. Measure queue wait, generation, moderation, post-processing, upload, first preview, and final download separately. Report percentiles, timeout, cancellation, and abandoned-job cleanup.
Inject failures at each boundary: moderation unavailable, model timeout, partial candidate output, invalid bytes, post-processing crash, object-store error, expired signed URL, lost status event, and database conflict. Define whether jobs retry, fail, or return partial results. Retries must preserve idempotency and user quota. Cancellation should stop avoidable work and never delete an artifact already used by another authorized workflow.
Track cost per request, completed candidate, accepted candidate, and edited workflow, with retries and hidden candidates included. Apply input, dimension, candidate, iteration, storage, and concurrency limits. Test quota races and reset boundaries. A cost reduction is valid only if prompt adherence, safety, file quality, and latency gates remain satisfied.
Production monitoring can include error categories, queue times, cancellations, policy blocks and appeals, repeated regenerations, edit success, accepted-candidate rate, file-decoding errors, storage failures, and versioned probe quality. User selection is a useful product signal but not a universal quality label. Detect drift by prompt slice, language, workflow, output format, and model version, then reproduce confirmed incidents with rights-safe fixtures.
12. A Release Checklist for Testing an Image Generation Feature
Confirm supported workflows, inputs, formats, dimensions, transparency, candidate behavior, editing semantics, retention, sharing, safety policy, provenance, accessibility, and limits. Version prompts, reference images, masks, model configuration, preprocessing, moderation, post-processing, and judges. Define semantic preferences separately from hard guarantees.
Run request contracts, prompt adherence, composition, text rendering, visual defects, stochastic repeats, edit and preservation checks, real file decoding, metadata, UI state, storage, deletion, and accessibility. Review every policy miss, corrupted artifact, cross-tenant exposure, and severe visual failure. Inspect distribution changes and the worst cases within each critical slice.
Complete adversarial coverage for prompt obfuscation, malicious uploads, parser limits, prompt injection in images, unsafe output, hidden thumbnails, metadata leakage, object authorization, signed URLs, resource exhaustion, and quota bypass. Complete reliability and load tests for queues, cancellation, retries, partial results, late events, rollback, latency, and cost.
Publish dataset and rubric versions, sample counts, model and policy versions, slice results, human-review agreement, severe cases, latency percentiles, cost, known limits, and rollback thresholds. After release, run fixed probes and investigate production signals. The feature is ready when its variability is measured, its deterministic boundaries are enforced, and a user can understand, edit, control, and remove the artifacts it creates.
Interview Questions and Answers
Q: How would you test an image generation feature?
I would separate request validation, moderation, prompt processing, generation, editing, post-processing, storage, and UI. A versioned prompt and reference suite would label atomic requirements and safety risk. I would combine deterministic file checks, repeated semantic evaluation, visual defect review, and representative end-to-end workflows.
Q: How do you test a nondeterministic image model?
I would run multiple retained samples per fixture, compare distributions and case-level regressions, and report denominators and uncertainty. Hard contracts such as dimensions, access, safety policy, and file decoding remain deterministic. I would never regenerate failed samples until one passes.
Q: What is the oracle for image quality?
There is no universal beauty oracle. I would split prompt adherence into atomic labels and use a product-specific defect and usability rubric for visual quality. Automated signals can triage, while calibrated human or vision-model review handles semantic judgments. Severe failures remain visible outside any composite.
Q: How would you test inpainting?
I would assert both target change and preservation outside the mask. Synthetic grids reveal alignment errors through resize and orientation, while real images test semantic preservation. Empty, full, soft, tiny, disconnected, inverted, and mismatched masks cover boundary behavior.
Q: How do you test safety without blocking benign requests?
I would build allowed, disallowed, and borderline suites across languages and obfuscations, then measure both policy misses and false blocks. I would evaluate inputs and generated outputs, including thumbnails, histories, caches, and edit continuations. Ambiguous cases follow the approved escalation process.
Q: What file-level checks matter?
I decode actual response bytes and verify format, dimensions, color mode, alpha, animation frames, metadata policy, pixel sanity, and size limits. I also compare preview, download, and shared artifacts by immutable ID or digest. Filenames and HTTP headers alone are insufficient.
Q: How would you monitor production quality?
I would combine fixed versioned probes with error, queue, cancellation, regeneration, edit, policy, decode, storage, latency, and cost signals. I would slice by workflow, prompt type, language, format, and model version. User selection informs investigation but does not become automatic ground truth.
Common Mistakes
- Approving a model after viewing a few attractive samples. Stochastic quality needs repeated, retained evaluation.
- Combining adherence, aesthetics, safety, and file validity into one score. Their failure severity and owners differ.
- Comparing screenshots only. Decode the delivered bytes and validate dimensions, mode, alpha, metadata, and identity.
- Testing edits only for the requested change. Unmasked content, identity, layout, and other protected regions can regress.
- Moderating prompts but not outputs. Benign input can still produce disallowed content or expose it in a thumbnail.
- Retrying failed generations until green. This hides the real output distribution, latency, and cost.
- Using an automated aesthetic score as objective truth. Calibrate signals to the product workflow and human rubric.
- Forgetting cancellation, storage, sharing, and deletion. Artifact lifecycle defects can be privacy or cost incidents.
Conclusion
Testing an image generation feature requires a dual mindset. Deterministic engineering verifies requests, files, authorization, storage, and lifecycle, while statistical and human-centered evaluation measures prompt adherence, visual defects, editing preservation, and safety across variable outputs. Neither side can replace the other.
Start with atomic prompts and simple synthetic edit fixtures, then add realistic use cases, repeated sampling, calibrated review, malicious uploads, and operational failure injection. Preserve every attempt and every version. That evidence lets the team distinguish artistic variation from regression, protect users and their images, and release a feature whose limits are as observable as its creative strengths.
Interview Questions and Answers
How would you test an image generation feature end to end?
I would separate request, moderation, prompt processing, generation, editing, post-processing, storage, and UI contracts. A versioned suite would label atomic prompt requirements, reference preservation, and safety. Deterministic file and access checks combine with repeated semantic and visual evaluation.
How do you handle nondeterminism in image tests?
I retain multiple outputs per fixture and compare distributions, severe failures, and slice regressions with stated denominators. I control all surrounding versions and preserve every attempt. Deterministic properties such as dimensions, decoding, policy, and authorization do not receive retries to green.
What oracle would you use for visual quality?
I avoid a universal beauty score. Atomic prompt labels measure adherence, while a product-specific defect and usability rubric measures visual quality. Automated signals triage cases, and calibrated human or vision-model review handles semantic judgment with severe errors shown separately.
How would you test an inpainting feature?
I assert the target semantic change and preservation outside the mask. Synthetic geometric images expose mask alignment through resize, crop, and orientation, while realistic fixtures test identity and scene preservation. I include empty, full, soft, tiny, disconnected, and invalid masks.
How do you balance safety and false positives?
I maintain versioned allowed, disallowed, and borderline cases across languages and attack variants. I measure both misses and false blocks at input and output stages and review ambiguous cases under the approved policy. Hidden candidates, thumbnails, histories, and edit chains remain in scope.
Which artifact checks would you automate?
I decode the actual bytes and assert format, size, dimensions, mode, transparency, frames, metadata, and pixel sanity. I verify immutable artifact identity across preview, editor, download, and share. I also test corrupted content, decompression limits, URL expiry, authorization, and deletion.
How would you monitor image quality in production?
I combine fixed probes with versioned errors, queue times, cancellations, regeneration, edit outcomes, moderation, decoding, storage, latency, and cost. I slice by use case, prompt type, language, format, and model version. User choices are diagnostic signals that require case review, not automatic quality labels.
Frequently Asked Questions
How do you test an image generation feature?
Test request validation, safety, prompt adherence, visual defects, editing, post-processing, storage, delivery, and UI as separate layers. Use a versioned prompt and reference suite, repeated outputs, decoded file checks, and representative end-to-end workflows.
How can QA test nondeterministic generated images?
Generate multiple retained samples for each controlled fixture and compare quality distributions, severe failures, and slice-level regressions. Keep deterministic contracts such as dimensions, file validity, access control, and safety as hard assertions.
What metrics measure prompt adherence?
Label objects, counts, attributes, relations, actions, setting, composition, exact text, and forbidden elements separately. Report these components and severe errors rather than relying on one broad similarity or aesthetic score.
How do you test image editing and inpainting?
Verify that the requested target changed and that protected content remained stable. Test mask alignment, empty and full masks, soft edges, orientation, different dimensions, edit history, cancellation, and immutable parent artifact references.
What image file checks should be automated?
Decode response bytes and validate format, dimensions, color mode, transparency, frame count, metadata policy, size limits, and pixel sanity. Confirm that preview, download, edit, and shared links refer to the intended artifact.
How do you test AI image safety?
Use allowed, disallowed, and borderline prompts across languages and obfuscations, then evaluate both inputs and outputs. Measure policy misses and false blocks, and check thumbnails, history, caches, shares, and edit continuations.
How should image generation quality be monitored after launch?
Run fixed versioned probes and monitor error, queue, cancellation, regeneration, edit, moderation, decode, storage, latency, and cost signals. Slice by workflow, prompt category, language, format, and model version.