StructScan overview
StructScan is the entry point to DataChord. You hand it a raw file; it hands you back a typed, scored, AI-narrated understanding of that file. From there you can either keep exploring inside StructScan or push a Project straight into MapCraft with the source already understood.
If MapCraft is where you decide how the data should be mapped, StructScan is where you decide whether you are confident enough to map it at all.
What you can do
- Upload a CSV, JSON, or XML file (up to 100 MB).
- Browse the raw file in an interactive tree view.
- Read field profiles — detected type, sample values, completeness, cardinality, and quality flags per column.
- Read the quality summary — a 0–100 overall score with sub-scores for completeness and consistency.
- Read AI insights — a narrative summary of the data and recommendations for a target schema.
- Push to MapCraft — create a Project pre-wired with the profile and an auto-generated source schema.
The three-pane screen
The StructScan results page is one screen with three panes — a TreeView of the raw file on the left, the analysis pane in the middle, and an AI chat rail on the right.
┌────────────── StructScan · customer_orders.csv ─────────────────────────┐
│ │
│ ┌──────────────┐ ┌───────────────────────────────┐ ┌───────────────┐ │
│ │ Raw tree │ │ Field profiles · Quality │ │ AI chat │ │
│ │ │ │ │ │ │ │
│ │ • Row 1 │ │ order_id STRING 100% │ │ Ask anything │ │
│ │ • Row 2 │ │ customer_email STRING 87% │ │ about this │ │
│ │ • Row 3 │ │ order_date DATE ⚠ mixed │ │ file … │ │
│ │ • … │ │ country STRING ⚠ mixed │ │ │ │
│ │ │ │ total_amount NUMBER ⚠ neg │ │ • Suggested │ │
│ │ ▸ Headers │ │ currency STRING 93% │ │ prompts ▾ │ │
│ │ ▸ Sample │ │ status ENUM 100% │ │ │ │
│ │ │ │ │ │ [Push to │ │
│ │ │ │ Quality: 72 / 100 (watch) │ │ MapCraft] │ │
│ └──────────────┘ └───────────────────────────────┘ └───────────────┘ │
│ │
└──────────────────────────────────────────────────────────────────────────┘
The Push to MapCraft action lives in the top-right of the analysis pane. You will not see it until profiling has finished.
Core concepts
| Concept | What it is | Where it lives |
|---|---|---|
UploadedFile | The raw file you uploaded, with metadata and a storage path. | StructScan |
SourceProfile | The full result of profiling — field_profiles, quality_summary, ai_insights. | StructScan |
FieldProfile | One row of the analysis pane: detected type, samples, completeness, cardinality, quality flags. | Inside SourceProfile |
QualitySummary | A 0–100 overall score plus sub-scores (completeness, consistency). | Inside SourceProfile |
AI Insights | A narrative summary plus a recommended target-schema shape. | Inside SourceProfile |
DataChord uses three bands for the overall quality score:
- Healthy —
score ≥ 80. Safe to map directly. - Watch —
50 ≤ score < 80. Map carefully; some fields will need rules. - Poor —
score < 50. Investigate the source before mapping.
File support
- CSV
- JSON
- XML
Detection: StructScan auto-detects the delimiter, quoting style, and
header row. Files without a header row are profiled with positional column
names (col_0, col_1, …) — you can rename them in MapCraft.
Typical profile output: Each column becomes one FieldProfile. Mixed
date or number formats are flagged but not "fixed" — that is MapCraft's job.
Detection: StructScan accepts JSON arrays (a list of objects) and
newline-delimited JSON (.jsonl). Nested objects are flattened into
dot-paths for the field profile (address.city, address.country).
Typical profile output: Each leaf path becomes one FieldProfile. Array
fields are profiled as the element type with a multiplicity flag.
Detection: StructScan walks the document and treats each unique element
path as a candidate field. Attributes are profiled separately (e.g.
@currency under total).
Typical profile output: Element paths and attribute paths each get a
FieldProfile. Documents with mixed content (text and elements at the same
level) emit a warning.
The upload limit is 100 MB per file. If your file is larger, profile a representative slice (the first 100 MB is fine — StructScan does not require the whole file to produce a useful profile). You can map against the slice and later run FlowBridge against the full warehouse table.
Where to go next
- Hands-on tutorial: StructScan walkthrough — upload the shared sample dataset, read the results, push to MapCraft.
- Next stage: MapCraft overview — what happens once a Project is created from a profile.