> ## Documentation Index
> Fetch the complete documentation index at: https://docs.conformly.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Uploading Documents

> How Conformly classifies and prepares your work products

<style>
  {`
      p, li {
        text-align: justify;
        text-justify: inter-word;
      }
    `}
</style>

## Supported formats

Conformly accepts:

| Format          | Use case                                                                                                                     |
| --------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| **PDF**         | The most common — system requirements specs, software requirements specs, architecture documents, test plans, audit reports. |
| **DOCX**        | Microsoft Word documents. Same use cases as PDF.                                                                             |
| **XLSX**        | Spreadsheets — typically requirements matrices or traceability tables.                                                       |
| **ReqIF / XML** | DOORS, Polarion, codebeamer exports.                                                                                         |
| **CSV**         | Bulk requirement lists, gap inventories.                                                                                     |

The upload size limit is **100 MB** per file. If you need to analyze
a larger document, split it first.

## The upload flow

The simplest path is the [New Analysis](/user-guide/running-analysis) page:

<Steps>
  <Step title="Sidebar → New Analysis">
    Lands you on a clean drop zone.
  </Step>

  <Step title="(Optional) Pick a product to tag uploads with">
    If you have [products](/user-guide/products) defined in your workspace,
    a small picker appears above the dropzone. Pick one and every dropped
    file inherits that product.
  </Step>

  <Step title="Drag files into the dropzone, or click 'Browse files'">
    You can drop multiple files at once. Each file gets its own row in
    the staging area below the dropzone.
  </Step>

  <Step title="Watch the per-file status indicators">
    Each row goes through `uploading → classifying → ready` automatically.
    The whole flow takes 5–15 seconds for a typical document.
  </Step>
</Steps>

You can also upload from the **Work Products** page if you want to add
documents without immediately analyzing them. Same dropzone, same
flow — just no Analyze button at the end.

## What happens during upload

Conformly does five things between "you drop the file" and "the file
is ready to analyze":

1. **Stream the file** to secure object storage. The bytes never sit
   on a Conformly-controlled disk.
2. **Run the parser**. PDFs go through Landing AI Vision (page-aware,
   high-fidelity) when available, with PyMuPDF and pypdf as fallbacks.
   DOCX/XLSX use their native parsers. ReqIF/XML use a structured parser.
3. **Extract page-level chunks** so findings can later cite exact pages.
4. **Auto-classify the document**. The classifier reads the parsed text
   and decides whether this is a system requirements spec, a software
   requirements spec, an architecture document, a test plan, etc., and
   suggests which standards to evaluate it against.
5. **Cache the parsed content** in storage. Re-uploads of the same
   file (matched by content hash) skip parsing entirely and become near-instant.

## Auto-classification

The classifier picks one of these V-Model categories:

* **Requirements** (system requirements, stakeholder requirements, software requirements)
* **Architecture** (system architecture, software architecture, detailed design)
* **Testing** (unit test plans, integration test reports, validation reports)
* **Documentation** (manuals, design notes, anything that doesn't fit the V-Model)

Then it suggests one or more standards to evaluate against, based on the
content:

* **ASPICE 3.1** for general process compliance
* **ISO 26262** for safety-relevant content
* **ISO 21434** for cybersecurity-relevant content

You can override the classifier's choices before clicking Analyze. The
suggested standards appear as checkboxes — uncheck the ones you don't
want, or pick a different category from the dropdown.

If auto-classification fails (the document is image-only, encrypted,
or genuinely unclassifiable), the row turns yellow and the error
message tells you to pick standards manually.

## Re-uploading a document (versioning)

If you upload a newer version of a document Conformly has already
analyzed, the platform detects it via content hash and offers to
re-analyze with change detection. The old findings are preserved
(marked as "from previous version") and a new analysis runs against
the new version. This is how you track gap closure over time — the
audit-readiness score moves up as gaps disappear from successive
versions of the same document.

## Common upload problems

| Symptom                                 | Cause                                            | Fix                                                                                            |
| --------------------------------------- | ------------------------------------------------ | ---------------------------------------------------------------------------------------------- |
| "File too large" toast                  | Document exceeds 100 MB                          | Split the document or compress its embedded images                                             |
| "Auto-classification failed"            | Document is image-only or encrypted              | Run OCR locally and re-upload, or pick standards manually                                      |
| "Parsed content insufficient"           | Parser returned fewer than 50 characters of text | Same as above — likely a scanned PDF without OCR                                               |
| Upload progress stuck at 0%             | Network/CORS issue                               | Check the browser dev tools console for the actual error                                       |
| Upload succeeds but classification 422s | Background parser is still running               | Wait 5–10 seconds and click Retry — the server polls for parsed content with a 6-second budget |
