Investor-Grade Audit Pack Generator
Author: PlanExe Team
Date: 2026-02-11
Status: Proposal
Audience: Developers, Investment Analysts
Overview
The Investor-Grade Audit Pack Generator automates the final mile of deal preparation. It compiles verified evidence, financial models, risk registers, and governance logs into a standardized, cryptographically-signed artifact (PDF/HTML) suitable for institutional due diligence.
Instead of a scattered collection of Google Docs and Excel sheets, the Audit Pack is a single source of truth.
Key Features
- Redaction Engine: Automatically hides sensitive data (e.g., specific salaries, trade secrets) based on the recipient's clearance level.
- Versioning: "Snapshot" a plan at a specific point in time (e.g., "Series A Pack - v1.0").
- Digital Signature: Signs the pack to prove it hasn't been tampered with since generation.
System Architecture
1. Data Aggregation
The generator pulls data from multiple internal systems: - Plan Content: The narrative text. - Evidence Ledger: The verification status of claims. - Financial Engine: The 5-year pro-forma model. - Risk Register: The Monte Carlo simulation results.
2. Redaction Layer
Before generation, the RedactionEngine filters the data.
- Tags: Fields are tagged as public, investor_only, or internal_confidential.
- Roles: Recipients are assigned roles (e.g., analyst, partner).
- Logic: If role.clearance < field.sensitivity, the field is replaced with [REDACTED].
3. Artifact Generation
- HTML: Renders a responsive, interactive report using Jinja2 templates.
- PDF: Converts the HTML to a high-fidelity PDF using
WeasyPrintor similar. - ZIP: Bundles the PDF with raw data files (CSV, JSON) for analysts who want to run their own models.
Output Schema (JSON)
The core data structure passed to the renderer:
{
"pack_id": "pack_2026_02_11_abc",
"plan_id": "plan_123",
"generated_at": "2026-02-11T16:00:00Z",
"recipient": "Sequoia Capital",
"clearance_level": "investor_only",
"sections": [
{
"title": "Executive Summary",
"content": "..."
},
{
"title": "Financial Model",
"data": {
"revenue_y1": 1000000,
"revenue_y2": 5000000,
"ebitda_margin": "[REDACTED]"
}
}
],
"signature": "sha256:..."
}
Redaction Logic
We use a simplistic but robust tagging system.
| Tag | Visibility | Example |
|---|---|---|
public |
Everyone | Product description, Market size |
investor_only |
NDA Signed | High-level financials, Roadmap |
internal_confidential |
Founders | Cap table details, Employee salaries |
Algorithm:
def redact(data: dict, clearance: str) -> dict:
if clearance == 'internal_confidential':
return data # Show everything
sanitized = {}
for key, value in data.items():
tag = get_tag(key)
if can_view(clearance, tag):
sanitized[key] = value
else:
sanitized[key] = "[REDACTED]"
return sanitized
API Reference
POST /api/audit/generate
Create a new audit pack.
Request:
{
"plan_id": "plan_123",
"recipient_name": "Acme VC",
"clearance_level": "investor_only",
"format": "pdf"
}
Response:
{
"pack_id": "pack_456",
"download_url": "https://planexe.org/api/audit/download/pack_456.pdf",
"expires_at": "2026-02-18T16:00:00Z"
}
GET /api/audit/verify/{signature}
Verify the integrity of a pack.
Response:
Future Enhancements
- Watermarking: Dynamic watermarks with the recipient's email on every page of the PDF.
- Data Room Integration: Auto-upload to Carta, DocSend, or specialized VDRs.
- Interactive Models: Embed "Live Excel" components in the HTML version, allowing investors to tweak assumptions (within bounds).
Detailed Implementation Plan
Phase A — Artifact Contract and Templates (2 weeks)
- Define canonical pack schema with required sections:
- executive summary
- evidence ledger snapshot
- financial model summaries
- risk and scenario outcomes
-
governance and decision logs
-
Build template system (HTML + PDF) with strict section ordering.
- Add pack versioning semantics (
vMajor.Minor.Patch).
Phase B — Data Aggregation Layer (2–3 weeks)
- Implement aggregation service pulling from:
- plan artifacts
- evidence ledger
- finance modules
-
risk simulation outputs
-
Add data completeness checks:
- missing required section blocks pack generation
-
partial data surfaced with explicit caveats
-
Capture source hashes for every included section.
Phase C — Redaction + Access Control (2 weeks)
- Build role-based redaction policy engine.
- Support recipient-specific variants with immutable redaction logs.
- Add expiration and revocation controls for downloadable packs.
Phase D — Signatures + Delivery (2 weeks)
- Generate cryptographic pack digest and signature metadata.
- Add verification endpoint for external auditors.
- Integrate delivery channels:
- direct download links
- optional data-room push adapters
Pack quality gate
Before marking pack as investor-ready: - required sections complete - evidence coverage threshold met - financial model freshness within SLA - risk section generated from latest simulation run
Data model additions
audit_packs(pack_id, plan_id, version, status, signature_hash)audit_pack_sections(pack_id, section_name, source_hash, completeness)audit_pack_access(pack_id, recipient, clearance, expires_at)
Operational safeguards
- tamper-evident storage of generated artifacts
- watermarking for leak attribution
- regeneration lock to prevent stale concurrent pack versions
Validation checklist
- deterministic rendering from same inputs
- redaction correctness by role
- signature verification pass/fail tests
- section completeness gate enforcement
- external usability testing with investor analysts