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

# Guides

> Step-by-step walkthroughs of every flow companies and investors run in Vein.

export const Diagram = ({kind = "chain", steps = [], feedback = null, sources = [], decision = null, result = null, source = null, hub = null, branches = [], pairs = []}) => {
  const glyph = k => <svg viewBox="0 0 20 12" fill="none" aria-hidden="true" key={k}>
      <path d="M1 6h15.5" stroke="currentColor" strokeWidth="1.75" strokeLinecap="round" />
      <path d="M13.5 1.5 18.5 6l-5 4.5" stroke="currentColor" strokeWidth="1.75" strokeLinecap="round" strokeLinejoin="round" />
    </svg>;
  const arrow = k => <span className="vein-flow__chevron" key={`a${k}`}>
      {glyph(k)}
    </span>;
  const box = (n, k, variant) => n ? <div key={`n${k}`} className={variant ? `vein-flow__node vein-flow__node--${variant}` : "vein-flow__node"}>
        <span className="vein-flow__label">{n.label}</span>
        {n.note ? <span className="vein-flow__note">{n.note}</span> : null}
      </div> : null;
  const spine = paths => <div className="vein-flow__spine">
      <svg viewBox="0 0 100 100" preserveAspectRatio="none" fill="none">
        {paths.map(d => <path key={d} d={d} stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" vectorEffect="non-scaling-stroke" />)}
      </svg>
    </div>;
  if (kind === "merge") {
    return <div className="vein-flow">
        <div className="vein-flow__branching">
          <div className="vein-flow__stack">
            {sources.map((s, i) => <div className="vein-flow__row" key={s.label}>
                {box(s, i)}
              </div>)}
          </div>
          {}
          {spine(["M0 25C55 25 45 50 100 50", "M0 75C55 75 45 50 100 50"])}
          {arrow("d")}
          {box(decision, "d", "decision")}
          {arrow("r")}
          {box(result, "r", "strong")}
        </div>
      </div>;
  }
  if (kind === "fan") {
    return <div className="vein-flow">
        <div className="vein-flow__branching">
          {box(source, "s")}
          {arrow("s")}
          {box(hub, "h")}
          {}
          {spine(["M0 50C55 50 45 16.667 100 16.667", "M0 50H100", "M0 50C55 50 45 83.333 100 83.333"])}
          <div className="vein-flow__stack">
            {branches.map((b, i) => <div className="vein-flow__row" key={b.label}>
                {arrow(`b${i}`)}
                {box(b, `b${i}`)}
              </div>)}
          </div>
        </div>
      </div>;
  }
  if (kind === "compare") {
    return <div className="vein-flow">
        <div className="vein-flow__compare">
          {pairs.map((p, i) => <div className="vein-flow__pair" key={p.from.label}>
              {box(p.from, `f${i}`)}
              {arrow(`p${i}`)}
              {box(p.to, `t${i}`, "strong")}
            </div>)}
        </div>
      </div>;
  }
  const n = steps.length;
  const centre = i => `${((i + 0.5) / n * 100).toFixed(3)}%`;
  return <div className="vein-flow">
      <div className="vein-flow__track" style={{
    "--vein-flow-n": n
  }}>
        {steps.map((step, i) => <div className="vein-flow__cell" key={step.label}>
            {box(step, i, step.strong ? "strong" : null)}
            {i < n - 1 ? arrow(i) : null}
          </div>)}
      </div>

      {feedback ? <div className="vein-flow__loop">
          <div className="vein-flow__loop-path" style={{
    left: centre(feedback.to),
    right: `calc(100% - ${centre(feedback.from)})`
  }} />
          <span className="vein-flow__loop-chevron" style={{
    left: centre(feedback.to)
  }}>
            {glyph("loop")}
          </span>
          {feedback.label ? <span className="vein-flow__loop-label" style={{
    left: `calc((${centre(feedback.to)} + ${centre(feedback.from)}) / 2)`
  }}>
              {feedback.label}
            </span> : null}
        </div> : null}
    </div>;
};

These guides cover the product itself: how a company connects its financial
systems, turns them into a report, and controls who sees it, and how an investor
reads across the portfolio and asks for what is missing.

Every guide is written for someone doing the task for the first time, and shows
the screen and the control to press at each step. If you are new to Vein, start
with the [Overview](/overview).

## For Companies

<CardGroup cols={2}>
  <Card title="Your dashboard" href="/guides/your-dashboard">
    Current metrics, where each figure came from, and how overdue your next
    report is.
  </Card>

  <Card title="Connect a data source" href="/guides/connect-a-data-source">
    Link a bank, ledger, payroll, or payments provider so metrics update on
    their own, and pick the winner when two of them disagree.
  </Card>

  <Card title="Build and send a report" href="/guides/build-and-send-a-report">
    Assemble a report from blocks, deliver it to your investors, and save the
    layout for next time.
  </Card>

  <Card title="Respond to a request" href="/guides/respond-to-a-report-request">
    Fill an investor's request for specific topics and a specific period.
  </Card>

  <Card title="Use the Vault" href="/guides/use-the-vault">
    Keep the documents investors ask for in one place, ready to attach.
  </Card>

  <Card title="Share a data room" href="/guides/share-a-data-room">
    Publish a password-protected link to a sent report, and see who opens it.
  </Card>

  <Card title="Approve data access" href="/guides/approve-data-access">
    Grant or deny an investor's request for ongoing access.
  </Card>
</CardGroup>

## For Investors

<CardGroup cols={2}>
  <Card title="Your portfolio" href="/guides/view-your-portfolio">
    Every company you have invested in, and everything you hold on any one of
    them.
  </Card>

  <Card title="Portfolio intelligence" href="/guides/portfolio-intelligence">
    Aggregated metrics, qualitative updates, and AI summaries across everything
    you hold.
  </Card>

  <Card title="Reports" href="/guides/request-a-report">
    What arrives when a company reports, how to read it, and how to ask for what
    is missing.
  </Card>

  <Card title="Schedules and templates" href="/guides/reuse-request-templates">
    Save what you ask for, and when you ask for it.
  </Card>

  <Card title="Request data access" href="/guides/request-data-access">
    Move from one-off reports to an ongoing feed.
  </Card>
</CardGroup>

## Your Account

These apply whichever side of Vein you are on.

<CardGroup cols={2}>
  <Card title="Roles and permissions" href="/guides/roles-and-permissions">
    What each role can do, and why a control you expected is not on your screen.
  </Card>

  <Card title="Notifications" href="/guides/notifications">
    Where Vein tells you something happened, and what reaches your inbox.
  </Card>

  <Card title="Account and sign-in" href="/guides/account-and-sign-in">
    Passwords, the Terms notice, and the display preferences stored on your
    device.
  </Card>
</CardGroup>

## How the pieces fit together

Almost every flow in Vein is a variation on the same chain. A company connects
its providers once; Vein derives metrics from them; reports and data rooms are
views onto those metrics; investors receive those views or request new ones.

<Diagram
  kind="chain"
  steps={[
{ label: "Providers", note: "bank, Stripe, Gusto, QuickBooks" },
{ label: "Vein connection", note: "read-only, scheduled sync" },
{ label: "Metrics", note: "cash, burn, runway, revenue" },
{ label: "Reports & data rooms" },
{ label: "Investors", strong: true },
]}
  feedback={{ from: 4, to: 3, label: "requests" }}
/>

The practical consequence is that connecting sources is worth doing first. Every
later flow is faster, and the numbers an investor sees trace back to the system
that produced them rather than to a spreadsheet someone typed.
