IPO eligibility · standalone module

Upload documents. Run hard rules. Get readiness feedback.

Eligibility is a separate product from prospectus drafting. AI extracts facts and drafts feedback; a deterministic engine compares confirmed numbers to listing thresholds — never inventing values.

Four stages

AI where reading text helps; code where thresholds must be exact.

1 · Extraction

Reads PDF / DOCX / XLSX / JSON into quantifiable fields and narrative excerpts (Mode B: confirm before hard use).

2 · Hard inspection

Pure Python vs versioned YAML thresholds across HK / A-share / SGX boards. No LLM imports.

3 · Qualitative

LLM reviews unquantifiable substance signals (concentration, independence, controls, …).

4 · Feedback

Plain-language readiness + what to improve, tied to shortfalls and missing inputs.

End-to-end flow

Structured fields and uploads both feed the same hard engine. Provider choice lives in eligibility settings — separate from drafting.

Structured fields

Manual · no AI

Uploaded documents

AI extraction

Confirm values

Mode B · unconfirmed = MISSING_INPUT

Hard rule engine

Deterministic · no AI

Qualitative signals

LLM

Feedback + scorecard

Diagnostic · not legal advice

Uses AIDeterministic by designData / input / output

How companies submit information

A profit test or market-cap floor is not a judgment call. LLMs must not invent numbers or pick rule limbs. The hard path is auditable, reproducible, and regression-tested.

Structured fields

No AI required

Enter profit, revenue, market cap, continuity, FX, and related fields. Values go straight into the issuer envelope for hard comparison.

Uploaded materials

AI extraction

Upload audited statements or diligence files. The eligibility extraction agent (not Agent1 drafting) pulls fields and narrative text; deal params stay hard-entered.

Why hard thresholds never use AI

A profit test or market-cap floor is not a judgment call. LLMs must not invent numbers or pick rule limbs. The hard path is auditable, reproducible, and regression-tested.

Standalone package

Lives under eligibility/ — does not depend on Agent1 / Agent2 drafting graphs.

Own inference settings

/diagnostic/settings stores providers separately from drafting Settings.

Hard rule engine

YAML packs for HKEX, PRC boards, and SGX. No LLM imports on this path.

Feedback layer

Answers “ready to discuss?” and lists gaps — not exchange approval.

Status model

Markets and boards covered

PASS

Resolved value meets the threshold.

SHORTFALL

Resolved value falls short.

MISSING_INPUT

Value absent or not confirmed.

INDETERMINATE

Value present but cannot be compared (e.g. missing FX).

NOT_EVALUATED

Gate authored but not run this phase / qualitative pending evidence.

TRIGGERED

Qualitative signal fired for review (soft layer).

Markets and boards covered

Eligibility reconstructs issuer data, compares thresholds, and flags gaps. It does not decide listing approval or write a prospectus.

Hong Kong Main Board, GEM, Ch. 8A / 18A / 18C, public float

PRC Main Board, STAR, ChiNext, BSE + CSRC preconditions

SGX Mainboard and Catalist

Multi-market packs encoded from the update/ threshold master

Diagnostic only — humans finalize.

Eligibility reconstructs issuer data, compares thresholds, and flags gaps. It does not decide listing approval or write a prospectus.