Research protocols · Practical guide
CSV import preview: five validation fixes checked against 14 fixtures
After fixing five preview validation gaps, all 14 original synthetic fixtures matched their expectations. The preview remains a bounded sample.
Reviewed · Examples are illustrative
Who this helps: Teams collecting evidence. Limited software observations are identified separately from unperformed campaign experiments and participant studies.
Observed controlled-test findings — 16 September 2026
After fixing five preview validation gaps, all 14 original synthetic fixtures matched their expectations. The preview remains a bounded sample.
The baseline evidence remains unchanged. Post-fix evidence is a separate download. These selected fixtures are not a random sample of customer files, and 14 matches do not establish a production failure rate. Preview validates only the requested sample (five rows in the HTTP handler), not every later record or mailbox. Direct import processing remains a separate path.
- The baseline implementation e77303e matched nine of 14 fixture expectations. The five discrepancies were malformed quoting in the first sampled row, malformed quoting after a valid prefix, uneven row width, duplicate headers and a blank header.
- After the fix, both malformed-quote cases return an explicit error with no partial preview. The reader also rejects sampled rows whose field count differs from the header.
- Blank headers and duplicate names are rejected before auto-mapping. Duplicate comparison ignores case and surrounding spaces and accounts for a header byte-order mark.
- The identical 14 fixture definitions were rerun against the fixed service: all 14 matched expectations, including quoted commas, embedded newlines, escaped quotes, CRLF, preserved text values, BOM mapping and the preview limit.
- The original isolated processing test also established its separate import, duplicate, invalid-row, list-membership and cancellation behavior. Those observations are retained in the baseline evidence file; preview success alone is not a completed import.
Define the decision
A limited controlled software investigation was completed on 16 September 2026 against implementation e77303e. A follow-up reran the identical 14 preview fixtures after validation fixes; baseline and post-fix evidence are separately downloadable. The broader field-study protocol remains unperformed; software fixtures are not campaign or participant data. The decision is: Which malformed files fail clearly, and which silently change imported data? The observation unit is one fixture file with an expected row-level outcome. Define the population and owner before collecting records; do not substitute an available convenience dataset without documenting the change.
Work through the procedure
- Create fixtures for BOM, quoted commas, embedded newlines, duplicate headers, invalid addresses, empty fields and formula-like values.
- Run fixtures in an isolated workspace with sending disabled. Save mapping, options, parser version and resulting record counts.
- Before collection, write the primary outcome, observation window, exclusion rules and stopping conditions. Preserve excluded observations with a reason rather than quietly removing them.
- Pilot the procedure with fictional or owned test data, resolve ambiguous fields, and freeze a dated protocol version before the main run.
Worked example
The following is a synthetic example for this procedure, not a customer result or performance benchmark.
fixture quoted-name.csv; input one row with a comma inside quotes; expected one contact and intact display name
Suggested record fields: observation_id, condition, evidence_reference, outcome, exclusion_reason, reviewer, protocol_version
Status: illustrative record only; this example is not an observed result. See the separate controlled findings above.Read the result
Compare exact resulting field values, not only job success. Distinguish intentional skips from data loss. Keep the numerator, denominator and missing evidence visible. If the available observations cannot answer the registered question, report that limitation rather than selecting a more favorable metric after collection.
Collect the evidence
Observation unit: csv-fixture.
Synthetic files only, with fixed expectations before execution.
Reset isolated workspace for import trials; preview-only observations do not establish insertion behavior.
Analysis: Record exact field differences and visible errors, not just an HTTP or job success status.
Download the JSON collection template under Source references. Set an owner, eligibility rules, outcome definition, observation window and sample justification before collecting records. Templates contain no participant data or results; keep original private records outside the public website.
Check before moving on
- Name the person responsible for collection and review.
- Check that the evidence can be inspected without exposing private messages or credentials.
- Record deviations from the protocol and analyze their possible effect.
- Retain a dated, redacted evidence worksheet with the final interpretation.
Limits and next action
Do not use real contact lists as public fixtures. Re-running an import may change duplicate outcomes unless the workspace is reset. Publish results only after the evidence, method and limitations have been reviewed. This protocol provides no benchmark, expected lift or completed field-study claim.
Source: Method or workflow reference
Source references
- Method or workflow reference
- Download the study collection template (JSON; no participant data)
- Download observed fixtures and controlled test outcomes (JSON)
- Download post-fix CSV observations: 14 of 14 expectations matched (JSON)
Worked examples are illustrative. Editorial procedures are suggested methods, not measured performance claims or promises of additional product features.
Related guides
- DNS diagnostics: controlled error checks and authentication study protocol →
- Open tracking noise study: study protocol →
- Reply classification study: study protocol →