BBoundStackRun preflight

Methodology · rule set 2026.08.1

Make Every Migration Assumption Visible.

The preflight is a deterministic, local data-quality check for owner-operated Type 01 dealers. Its job is to expose structure, mapping, identity, chronology, state, source, and safety problems before any import is authorized.

System boundary

Local by default. Explicit at every handoff.

The validator separates raw regulated data from product analytics and lead qualification.

STAYS LOCAL

Source data

Raw bytes, rows, filename, full values, SHA-256 calculation, mapping, filtering, and report creation remain in the browser during preflight.

SAFE TELEMETRY

Product events

Event type, tool and rule versions, generic profile category, and coarse row, finding, and elapsed-time buckets may reach the first-party usage endpoint.

CONSENTED

Migration request

Name, business email, current-system category, timeframe, consent version, and coarse result buckets are stored only after a separate form submission.

Raw CSV content, rows, serials, customer fields, addresses, FFL numbers, filenames, and file hashes are not accepted by the migration-review endpoint or analytics allowlist.

Severity model

Three states with different decisions.

Severity is expressed in text and symbols, not color alone.

✓ PASS

No issue detected

The enabled checks in a category did not detect a finding. This is not a statement about facts outside the file.

! WARNING

Human review required

The value may be ambiguous, transformed, incomplete, or dependent on source-system semantics that are not professionally verified.

× BLOCK

Do not automate yet

The record or file should not be accepted for automated migration until the detected issue is resolved.

Rule families

What the preflight checks.

Every finding carries a stable ID, severity, category, explanation, row, field, redacted preview, remediation suggestion, and rule-set version.

File structure

  • Empty input and missing headers
  • UTF-8 decoding and delimiter detection
  • Duplicate headers and malformed quotes
  • Unexpected row widths
  • Column, row, and cell safety limits

Field mapping

  • Required targets not mapped
  • Ambiguous suggestions
  • Populated but unmapped source fields
  • One source mapped twice
  • Visible normalization requirements

Identity and duplicates

  • Missing manufacturer, model, serial, type, or caliber
  • Unusable identifiers
  • Exact and separator-normalized serial collisions
  • Duplicate complete rows
  • Possible spreadsheet numeric coercion

Dates and state

  • Missing or unparseable acquisition dates
  • Ambiguous numeric date order
  • Invalid or future dates
  • Disposition before acquisition
  • Disposed status without complete details

Source and recipient

  • Missing acquisition source
  • Incomplete or ambiguous identity
  • FFL-like fields that need review
  • Disposition recipient completeness

Data safety

  • Leading, trailing, and repeated whitespace
  • Control and encoding-artifact characters
  • Inconsistent capitalization
  • Blank rows
  • Spreadsheet formula-like values

Generic mapping

Suggestions are provisional.

Header aliases can suggest a source column with a confidence label. The user can change every selection and must acknowledge the critical mapping before validation.

01

Decode

Read UTF-8 bytes without silently replacing malformed data.

02

Detect

Identify a conventional delimiter, header row, and source columns.

03

Suggest

Compare normalized headers with documented aliases and show confidence.

04

Confirm

Require complete, non-duplicated critical assignments and explicit review.

05

Validate

Run the same deterministic rule set against every mapped row.

06

Report

Return redacted findings tied to rule and file versions.

Fingerprint and report

Identify the file without uploading it.

Web Crypto calculates the full SHA-256 hash from local bytes. The workbench shows a shortened form; the downloaded report includes the full hash.

Included in reports

  • Report, validator, and rule-set versions
  • Timestamp and supported profile status
  • Full local SHA-256 and file size
  • Source-header to target-field mapping
  • PASS, WARNING, and BLOCK totals
  • Row references and redacted value previews
  • Known limits and privacy statement

Excluded from reports

  • Raw CSV and original filename
  • Full serials or names in findings
  • Addresses, customer fields, or notes
  • Unredacted source values
  • Legal conclusions or certification badges

After preflight

Exceptions remain a human decision.

Migration acceptance eventually requires a separate staged import and before-and-after reconciliation. Those actions are intentionally outside this public V1 tool.

RESOLVE

Fix BLOCK findings

Correct the source or document why the record needs a controlled manual path. Do not silently substitute a value.

DECIDE

Review warnings

Record the source convention, transformation, and reviewer decision so the cutover can be explained later.

RECONCILE

Compare after import

Use hashes, counts, exceptions, mapping, spot checks, and rollback evidence before accepting a destination record set.

Inspect the file against the published method.

The result arrives before any email request and before any record can be imported.

Run local preflight