This prompt is designed for data governance teams and data quality engineers who need to assign a reliability score to contact records produced by model pipelines, extraction workflows, or multi-source reconciliation jobs. The core job-to-be-done is not just flagging bad records, but producing a calibrated, explainable trust score that downstream systems—such as CRM ingestion, identity resolution, or customer data platforms—can use to make automated routing decisions. The ideal user is someone who already has contact records with associated metadata (source freshness, validation results, completeness metrics) and needs a repeatable, auditable method to convert that evidence into a single trust signal.
Prompt
Contact Data Trust Score Assignment Prompt Template

When to Use This Prompt
Define the job, the ideal user, required inputs, and the operational boundaries for assigning trust scores to contact records generated by AI pipelines.
You should use this prompt when you have per-record provenance and validation context available. Required inputs include the contact record itself, a source identifier, a timestamp indicating data freshness, a completeness ratio, and the results of any prior validation checks (email syntax, phone number format, address parsability). The prompt is most effective when these inputs are provided as structured fields rather than free-text descriptions, allowing the model to reason over concrete signals. It is not a replacement for upstream validation—if you haven't yet normalized emails or canonicalized phone numbers, run those repair prompts first. The trust score output is a downstream synthesis step, not a data cleaning step.
Do not use this prompt when you lack provenance metadata or when the contact records have not passed through basic format validation. Without source freshness and completeness signals, the model will be forced to guess, producing unreliable scores that erode trust in the pipeline. This prompt is also inappropriate for real-time user-facing flows where latency constraints prevent the inclusion of rich context; it belongs in batch processing or asynchronous ingestion paths. If the contact data contains regulated PII that cannot be sent to an external model, ensure you are using a private deployment or have redacted sensitive fields before invoking this prompt. Finally, if your downstream system requires a binary accept/reject decision rather than a continuous score, pair this prompt with a threshold calibration step based on your own ground-truth evaluation set—do not rely on the model's raw score boundaries without tuning.
Use Case Fit
Where the Contact Data Trust Score Assignment prompt works and where it introduces unacceptable risk.
Good Fit: Post-Validation Scoring
Use when: You have already extracted, normalized, and validated contact fields. The prompt adds a trust layer on top of clean data. Guardrail: Feed the prompt structured input with explicit validation pass/fail flags per field, not raw model text.
Good Fit: Multi-Source Provenance
Use when: Contact records are assembled from multiple pipelines, APIs, or manual entries with conflicting values. Guardrail: Include source freshness timestamps and source reliability weights in the prompt context so the model can reason about provenance.
Bad Fit: Real-Time Decisioning
Avoid when: The trust score directly gates a real-time action such as blocking a transaction or denying service without human review. Guardrail: Use the score as a routing signal to a review queue, not as an automated decision. Always pair with a human-in-the-loop threshold.
Bad Fit: Sparse or Missing Evidence
Avoid when: The contact record has fewer than two populated fields or no validation results. Guardrail: Implement a pre-check that counts non-null fields. If below minimum, assign a default low-confidence score and skip the model call entirely.
Required Inputs
Must provide: Structured contact record with field-level validation status, source identifiers, last-updated timestamps, and completeness flags. Guardrail: Build a strict input schema and validate it before calling the prompt. Missing required fields should abort the scoring attempt.
Operational Risk: Score Drift
What to watch: Trust scores drifting over time as model behavior changes or input distributions shift. Guardrail: Log every scored record with its input snapshot and score. Run a weekly calibration eval against a held-out ground-truth set and alert on drift beyond 5%.
Copy-Ready Prompt Template
A reusable prompt template for assigning per-record trust scores to contact data based on source freshness, completeness, validation results, and provenance.
The following prompt template is designed to be copied directly into your prompt management system, evaluation harness, or orchestration layer. It accepts a batch of contact records along with their metadata—source, extraction timestamp, validation results, and completeness profile—and returns a trust score for each record with structured reasoning. Use square-bracket placeholders to inject your specific inputs, output schema, constraints, and risk thresholds before sending the prompt to the model.
textYou are a contact data quality analyst. Your task is to assign a trust score to each contact record based on the evidence provided. ## INPUT Contact records with metadata: [CONTACT_RECORDS] ## SCORING CRITERIA Evaluate each record on these dimensions (0.0 to 1.0 scale): 1. **Source Freshness**: How recently was this record extracted or updated? Newer sources get higher scores. Consider [FRESHNESS_WINDOW_DAYS] as the recency threshold. 2. **Completeness**: What percentage of [REQUIRED_FIELDS] are populated with non-null, non-empty values? 3. **Validation Results**: How many fields passed their respective validators? Use [VALIDATION_RESULTS] for per-field pass/fail data. 4. **Provenance Strength**: Is the source system authoritative (e.g., CRM, HRIS) or inferred (e.g., email signature extraction)? Use [SOURCE_AUTHORITY_MAP] to weight sources. ## OUTPUT SCHEMA Return a JSON array of objects with this exact structure: [OUTPUT_SCHEMA] ## CONSTRAINTS [CONSTRAINTS] ## EXAMPLES [EXAMPLES] ## INSTRUCTIONS - Compute a weighted trust score for each record using the formula: (freshness * [FRESHNESS_WEIGHT]) + (completeness * [COMPLETENESS_WEIGHT]) + (validation_pass_rate * [VALIDATION_WEIGHT]) + (provenance * [PROVENANCE_WEIGHT]). - Include a `reasoning` field that explains the score breakdown for each record. - Flag any record with a trust score below [LOW_TRUST_THRESHOLD] with `requires_review: true`. - If [RISK_LEVEL] is "high", also flag records where any single dimension score is below [CRITICAL_DIMENSION_THRESHOLD]. - Do not invent or infer missing field values. If a field is absent, treat it as incomplete. - Return only valid JSON. No markdown, no commentary outside the JSON structure.
To adapt this template for your pipeline, replace each placeholder with concrete values. [CONTACT_RECORDS] should be a JSON array of contact objects with their metadata attached. [OUTPUT_SCHEMA] must define the exact fields you expect in the response—typically record_id, trust_score, dimension_scores, reasoning, and requires_review. [CONSTRAINTS] can include field-specific rules like "email must pass RFC validation to count as complete" or "records from source X always require human review." [EXAMPLES] should include at least two few-shot demonstrations: one high-trust record and one low-trust record with annotated reasoning. Before deploying, run this prompt through your eval harness using ground-truth trust scores to calibrate the weights and thresholds. If the workflow feeds into automated CRM ingestion, require human review for all records below the low-trust threshold rather than silently accepting them.
Prompt Variables
Required inputs for the Contact Data Trust Score Assignment prompt. Each variable must be populated before the prompt is assembled and sent. Missing or malformed inputs will cause the trust scoring logic to fail silently or produce uncalibrated scores.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[CONTACT_RECORD] | The full contact record object to be scored, including all fields extracted or generated by upstream model pipelines. | {"email": "j.doe@example.com", "phone": "+14155551234", "first_name": "Jane", "last_name": "Doe", "source": "web_form", "extracted_at": "2025-01-15T10:30:00Z"} | Must be valid JSON. Null or empty object triggers abort. Validate parse before prompt assembly. Missing fields are allowed but will lower completeness sub-score. |
[SOURCE_METADATA] | Provenance information about where the contact record originated, including source system, extraction method, and confidence from upstream pipeline. | {"source_system": "web_form_v2", "extraction_model": "gpt-4o-2024-08-06", "extraction_confidence": 0.92, "pipeline_version": "3.1.0"} | Must include source_system and extraction_confidence fields. Confidence must be a float between 0.0 and 1.0. Missing provenance defaults to source_trust penalty. |
[VALIDATION_RESULTS] | Output from the contact validation step showing which fields passed format, domain, and completeness checks. | {"email_valid": true, "phone_valid": true, "name_complete": true, "address_valid": false, "errors": ["address missing postal_code"]} | Must be valid JSON with boolean flags per field. Absence of validation results triggers maximum uncertainty penalty. Null allowed only if validation step was skipped, which must be logged. |
[FRESHNESS_TIMESTAMP] | ISO-8601 timestamp indicating when the contact data was last updated or verified. Used to compute recency decay in the trust score. | "2025-01-15T10:30:00Z" | Must parse as valid ISO-8601. Future timestamps trigger a warning and cap freshness score at 0.0. Missing timestamp defaults to staleness penalty with explicit flag in output reasoning. |
[REFERENCE_TRUST_THRESHOLDS] | Optional configuration object defining score bands and actions. If omitted, default thresholds are used. | {"high_trust": 0.8, "medium_trust": 0.5, "low_trust": 0.3, "auto_ingest_threshold": 0.7, "human_review_threshold": 0.4} | All threshold values must be floats between 0.0 and 1.0. high_trust must be greater than medium_trust, which must be greater than low_trust. Schema check before prompt injection. Null allowed; defaults applied. |
[GROUND_TRUTH_HINTS] | Optional known-good values for key fields, used to calibrate the trust score against verified data when available. | {"email": "j.doe@example.com", "company": "Acme Corp"} | Null allowed. If provided, must be valid JSON with field-to-value mapping. Mismatched fields between hints and record lower trust score but do not abort. Used only for calibration, not for field correction. |
[OUTPUT_SCHEMA] | The expected JSON schema for the trust score output, including required fields and their types. | {"type": "object", "properties": {"trust_score": {"type": "number"}, "confidence": {"type": "number"}, "factors": {"type": "object"}, "recommendation": {"type": "string"}}, "required": ["trust_score", "confidence", "factors", "recommendation"]} | Must be valid JSON Schema. Schema is injected into the prompt as a constraint. If null, a default schema is used. Validate schema parse before prompt assembly to avoid model output contract drift. |
Implementation Harness Notes
How to wire the trust score assignment prompt into a production data pipeline with validation, retries, and human review gates.
The Contact Data Trust Score Assignment prompt is designed to be called as a post-extraction scoring step inside a data pipeline, not as a standalone interactive prompt. After your extraction or normalization pipeline produces a contact record, pass that record—along with its provenance metadata, validation results, and freshness timestamps—into this prompt to receive a structured trust score object. The output should be consumed programmatically: parse the JSON, validate the score range (0.0–1.0), and write the result to your data catalog or feature store alongside the record. Do not treat this as a user-facing chat interaction; it is a machine-to-machine scoring function implemented via an LLM call.
Input assembly requires five placeholders: [CONTACT_RECORD] (the full record as JSON), [SOURCE_METADATA] (origin system, ingestion timestamp, update frequency), [VALIDATION_RESULTS] (field-level pass/fail from your schema validator), [COMPLETENESS_STATS] (filled vs. total fields, critical field presence), and [PROVENANCE_CHAIN] (upstream transforms applied). Build these inputs from your pipeline context before calling the model. Model choice matters: use a model with strong JSON-following behavior (GPT-4o, Claude 3.5 Sonnet, or equivalent). Set temperature=0 to minimize score variance across identical inputs. Enable structured output mode if your provider supports it, binding the response to a schema with trust_score (float), confidence (float), scoring_factors (array of objects with factor, score, weight, evidence), and flags (array of strings for human review triggers).
Validation and retry logic should be implemented in the application layer, not left to the model. After receiving the response, validate that trust_score is a number between 0 and 1, that scoring_factors contains at least the required dimensions (freshness, completeness, validation, provenance), and that weights sum approximately to 1.0. If validation fails, retry once with the same input and an explicit error message appended to [CONSTRAINTS]. If the second attempt fails, log the failure and route the record to a human review queue with the raw model output attached. For high-throughput pipelines, implement a circuit breaker: if the failure rate exceeds 5% in a rolling window, pause automated scoring and escalate. Log every scoring call with the input hash, model version, response, validation result, and latency for auditability.
Human review integration is critical because trust scores downstream gate access to CRM updates, identity resolution merges, and compliance reporting. Any record with a trust_score below your calibrated threshold (start with 0.6 and adjust based on eval results) should be flagged for review. Additionally, any record where the model sets a flag value indicating conflicting signals—such as high completeness but low provenance—should route to a review interface that displays the original record, the scoring breakdown, and an override control. Store both the model-assigned score and the human-adjusted score with timestamps and reviewer identity. Use these overrides to calibrate future scoring thresholds and to build a ground-truth dataset for evaluating prompt changes.
Testing before production requires a golden dataset of contact records with known trust characteristics: records with intentionally stale sources, incomplete fields, failed validation, and broken provenance chains. Score this dataset with your prompt and compare against expected score ranges. Measure score stability by running the same record through the prompt five times; scores should not vary by more than 0.05. If variance is higher, tighten your prompt instructions or switch to a model with lower temperature support. Before shipping a prompt update, run the new version against the golden dataset and compare score distributions—a significant shift without a corresponding change in scoring logic indicates prompt drift that needs investigation.
What to avoid: do not call this prompt on every record in a high-volume stream without batching and cost controls. Do not use the trust score as the sole gate for destructive operations (deletes, merges) without human review for scores in the ambiguous middle range. Do not skip logging—without per-call traces, you cannot debug scoring anomalies or demonstrate audit readiness. Finally, do not assume the model will correctly weight factors without calibration; run the eval rubric from the companion playbook regularly and adjust your [CONSTRAINTS] placeholder to correct systematic over- or under-weighting of specific dimensions.
Common Failure Modes
Trust scores are only as good as their calibration. These failure modes surface when the prompt treats all signals equally, ignores missing evidence, or produces scores that drift from ground truth.
Score Inflation from Recency Bias
What to watch: The model overweights last_updated timestamps and assigns high trust to recently touched records even when validation results are poor or provenance is unknown. Guardrail: Require the prompt to decompose the score into sub-factors (freshness, completeness, validation, provenance) and apply explicit weights. Validate score distributions against a held-out set of known-good and known-bad records.
Missing Provenance Treated as Neutral
What to watch: Records with no source lineage or unknown origin receive mid-range scores instead of being penalized or flagged. The model assumes absence of evidence is evidence of safety. Guardrail: Add a provenance_penalty rule in the prompt that caps the maximum trust score when source is unknown or null. Require the output to include a provenance_flag field.
Completeness Masking Validation Failures
What to watch: A record with all fields populated but multiple validation errors (e.g., invalid email format, mismatched country code) still receives a high trust score because completeness dominates the calculation. Guardrail: Structure the prompt to evaluate validation results as a gating factor—any critical validation failure should cap the score below a defined threshold regardless of completeness.
Score Calibration Drift Across Batches
What to watch: Trust scores shift in meaning across different batches or model versions—a score of 0.7 in one run means something different than 0.7 in another. Guardrail: Include a calibration reference set in the prompt with scored examples that anchor the scale. Run periodic eval using the Contact Canonicalization Eval Rubric to detect drift and trigger recalibration.
Hallucinated Justifications for Arbitrary Scores
What to watch: The model assigns a score and then fabricates plausible-sounding reasoning that doesn't match the actual evidence in the record. Guardrail: Require the prompt to cite specific field values and validation results in the justification. Add a post-generation check that verifies each cited reason maps to actual input data, not invented details.
Staleness Ignored When Freshness Is Unknown
What to watch: Records with missing last_updated timestamps are scored as if they're current rather than being treated as potentially stale. Guardrail: Add an explicit rule: when last_updated is missing, apply a staleness penalty and set a maximum freshness sub-score. Flag these records for human review if they cross a trust threshold.
Evaluation Rubric
Use this rubric to test the Contact Data Trust Score Assignment prompt before shipping. Each criterion targets a specific failure mode observed in trust score generation, from score calibration drift to missing provenance. Run these tests against a golden dataset of 50-100 contact records with known ground-truth trust levels.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
Score Calibration Accuracy | Mean absolute error between assigned score and ground-truth score is less than 0.15 on a 0.0-1.0 scale | Scores cluster in a narrow band (e.g., all 0.7-0.9) regardless of record quality; systematic overconfidence or underconfidence | Run prompt on golden dataset with pre-labeled trust scores; compute MAE and plot predicted vs. actual distribution |
Source Freshness Weighting | Records with source timestamps older than [STALENESS_THRESHOLD_DAYS] receive a freshness sub-score below 0.4 | A record sourced from a 2-year-old import receives a freshness sub-score above 0.7 without explicit justification | Inject 5 records with deliberately stale source dates; verify freshness sub-score decreases monotonically with age |
Completeness Penalty Application | Records missing [REQUIRED_FIELDS] receive a completeness sub-score below 0.3; optional field absence reduces score proportionally | A record missing email and phone receives a completeness sub-score above 0.5; missing optional fields cause no score reduction | Test with records missing 0, 1, 3, and all required fields; verify stepwise score degradation |
Validation Result Integration | Records with failed email or phone validation receive a validation sub-score of 0.0 for that field; overall score reflects aggregate failures | A record with a known invalid email format receives a validation sub-score above 0.2; validation failures are ignored in final score | Feed records with pre-flagged validation failures; assert validation sub-score is 0.0 for failed fields and final score drops accordingly |
Provenance Traceability | Every assigned score includes a breakdown object listing sub-scores for freshness, completeness, validation, and source authority with explicit values | Output contains only a single aggregate score with no sub-score breakdown; sub-scores are present but values are null or missing | Parse output schema; assert [TRUST_SCORE_BREAKDOWN] object exists with all four sub-score fields populated and summing logically |
Boundary Case Handling | Empty records score 0.0; perfectly complete, fresh, validated records from authoritative sources score 1.0; edge cases are handled without errors | Empty input causes hallucinated scores above 0.0; perfect input scores below 0.9; null input throws unhandled exception | Test with empty contact object, fully populated ideal record, and null input; verify scores are 0.0, 1.0, and error response respectively |
Score Justification Quality | Output includes a [JUSTIFICATION] string of 20-80 words citing specific evidence from the input record for the assigned score | Justification is generic (e.g., 'Record appears reliable'), missing, or exceeds 150 words with filler text | Review justifications for 10 random outputs; check for specific field references, length bounds, and absence of hallucinated evidence |
Cross-Record Consistency | Two records with identical field values, source timestamps, and validation results receive scores within 0.05 of each other | Identical inputs produce scores differing by more than 0.1 across multiple runs; non-deterministic scoring behavior | Run the same 5 records through the prompt 3 times each; compute max score delta per record; assert all deltas are below 0.05 |
Enabling Efficiency, Speed & Accuracy
Intelligent Analysis, Decision & Execution
We build AI systems for teams that need search across company data, workflow automation across tools, or AI features inside products and internal software.
Talk to Us
Search across company data
Give teams answers from docs, tickets, runbooks, and product data with sources and permissions.
Useful when people spend too long searching or get different answers from different systems.

Automate internal workflows
Use AI to route work, draft outputs, trigger actions, and keep approvals and logs in place.
Useful when repetitive work moves across multiple tools and teams.

Add AI to products and internal tools
Build assistants, guided actions, or decision support into the software your team or customers already use.
Useful when AI needs to be part of the product, not a separate tool.
Adapt This Prompt
How to adapt
Start with the base prompt and a small CSV of contact records. Remove strict output schema requirements initially—let the model return JSON with trust scores and brief reasoning. Use a lightweight script to parse scores and plot them against a few hand-labeled examples.
codeAssign a trust score (0.0–1.0) to each contact record in [CONTACT_LIST]. Consider: source freshness, field completeness, validation results, and provenance. Return JSON: [{"id": "...", "score": 0.0, "reasoning": "..."}]
Watch for
- Scores clustering at 0.5 or 1.0 without discrimination
- Reasoning that sounds plausible but ignores actual input fields
- Missing null handling for absent fields

About the author
Prasad Kumkar
CEO & MD, Inference Systems
Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.
His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.
Partnered with leading AI, data, and software stack.
How We Work
Custom AI workflows for your Business
One-fit-all AI don't work for modern businesses. At Inferensys, we aim to understand your business & custom requirements; which we use to define most efficient agentic workflows, the data, and the tools for your business.
01
Review the use case
We understand the task, the users, and where AI can actually help.
Read more02
Pick the right approach
We define what needs search, automation, or product integration.
Read more03
Build the first useful version
We implement the part that proves the value first.
Read more04
Improve from there
We add the checks and visibility needed to keep it useful.
Read moreThe first call is a practical review of your use case and the right next step.
Talk to Us