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

# Data Overview

> Overview on data with RevenueBase.

export const RBCardGroup = ({cols = 3, children}) => <div className={`rb-grid-${cols}`}>{children}</div>;

export const RBCard = ({href, title, desc, icon, tag, children, stat}) => {
  const icons = {
    cloud: <svg width="20" height="20" fill="none" viewBox="0 0 24 24" stroke="currentColor" strokeWidth="1.5">
        <path strokeLinecap="round" strokeLinejoin="round" d="M2.25 15a4.5 4.5 0 0 0 4.5 4.5H18a3.75 3.75 0 0 0 1.332-7.257 3 3 0 0 0-3.758-3.848 5.25 5.25 0 0 0-10.233 2.33A4.502 4.502 0 0 0 2.25 15Z" />
      </svg>,
    database: <svg width="20" height="20" fill="none" viewBox="0 0 24 24" stroke="currentColor" strokeWidth="1.5">
        <path strokeLinecap="round" strokeLinejoin="round" d="M20.25 6.375c0 2.278-3.694 4.125-8.25 4.125S3.75 8.653 3.75 6.375m16.5 0c0-2.278-3.694-4.125-8.25-4.125S3.75 4.097 3.75 6.375m16.5 0v11.25c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125V6.375m16.5 5.625c0 2.278-3.694 4.125-8.25 4.125s-8.25-1.847-8.25-4.125" />
      </svg>,
    table: <svg width="20" height="20" fill="none" viewBox="0 0 24 24" stroke="currentColor" strokeWidth="1.5">
        <path strokeLinecap="round" strokeLinejoin="round" d="M3.375 19.5h17.25m-17.25 0a1.125 1.125 0 0 1-1.125-1.125M3.375 19.5h7.5c.621 0 1.125-.504 1.125-1.125m-9.75 0V5.625m0 12.75v-1.5c0-.621.504-1.125 1.125-1.125m18.375 2.625V5.625m0 12.75c0 .621-.504 1.125-1.125 1.125m1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125m0 3.75h-7.5A1.125 1.125 0 0 1 12 18.375m9.75-12.75c0-.621-.504-1.125-1.125-1.125H3.375c-.621 0-1.125.504-1.125 1.125m19.5 0v1.5c0 .621-.504 1.125-1.125 1.125M2.25 5.625v1.5c0 .621.504 1.125 1.125 1.125m0 0h17.25m-17.25 0h7.5c.621 0 1.125.504 1.125 1.125M3.375 8.25c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125m17.25-3.75h-7.5c-.621 0-1.125.504-1.125 1.125m8.625-1.125c.621 0 1.125.504 1.125 1.125v1.5c0 .621-.504 1.125-1.125 1.125m-17.25 0h7.5m-7.5 0c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125M12 10.875v-1.5m0 1.5c0 .621-.504 1.125-1.125 1.125M12 10.875c0 .621.504 1.125 1.125 1.125m-2.25 0c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125m2.25-2.25h-2.25m2.25 0h2.25" />
      </svg>,
    link: <svg width="20" height="20" fill="none" viewBox="0 0 24 24" stroke="currentColor" strokeWidth="1.5">
        <path strokeLinecap="round" strokeLinejoin="round" d="M13.19 8.688a4.5 4.5 0 0 1 1.242 7.244l-4.5 4.5a4.5 4.5 0 0 1-6.364-6.364l1.757-1.757m13.35-.622 1.757-1.757a4.5 4.5 0 0 0-6.364-6.364l-4.5 4.5a4.5 4.5 0 0 0 1.242 7.244" />
      </svg>,
    clock: <svg width="20" height="20" fill="none" viewBox="0 0 24 24" stroke="currentColor" strokeWidth="1.5">
        <path strokeLinecap="round" strokeLinejoin="round" d="M12 6v6h4.5m4.5 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />
      </svg>,
    'book-atlas': <svg width="20" height="20" fill="none" viewBox="0 0 24 24" stroke="currentColor" strokeWidth="1.5">
        <path strokeLinecap="round" strokeLinejoin="round" d="M12 6.042A8.967 8.967 0 0 0 6 3.75c-1.052 0-2.062.18-3 .512v14.25A8.987 8.987 0 0 1 6 18c2.305 0 4.408.867 6 2.292m0-14.25a8.966 8.966 0 0 1 6-2.292c1.052 0 2.062.18 3 .512v14.25A8.987 8.987 0 0 0 18 18a8.967 8.967 0 0 0-6 2.292m0-14.25v14.25" />
      </svg>,
    fingerprint: <svg width="20" height="20" fill="none" viewBox="0 0 24 24" stroke="currentColor" strokeWidth="1.5">
        <path strokeLinecap="round" strokeLinejoin="round" d="M7.864 4.243A7.5 7.5 0 0 1 19.5 10.5c0 2.92-.556 5.709-1.568 8.268M5.742 6.364A7.465 7.465 0 0 0 4.5 10.5a7.464 7.464 0 0 1-1.15 3.993m1.989 3.559A11.209 11.209 0 0 0 8.25 10.5a3.75 3.75 0 1 1 7.5 0c0 .527-.021 1.049-.064 1.565M12 10.5a14.94 14.94 0 0 1-3.6 9.75m6.633-4.596a18.666 18.666 0 0 1-2.485 5.33" />
      </svg>,
    'gauge-high': <svg width="20" height="20" fill="none" viewBox="0 0 24 24" stroke="currentColor" strokeWidth="1.5">
        <path strokeLinecap="round" strokeLinejoin="round" d="M12 3v2.25m6.364.386-1.591 1.591M21 12h-2.25m-.386 6.364-1.591-1.591M12 18.75V21m-4.773-4.227-1.591 1.591M5.25 12H3m4.227-4.773L5.636 5.636M15.75 12a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0Z" />
      </svg>,
    wrench: <svg width="20" height="20" fill="none" viewBox="0 0 24 24" stroke="currentColor" strokeWidth="1.5">
        <path strokeLinecap="round" strokeLinejoin="round" d="M11.42 15.17 17.25 21A2.652 2.652 0 0 0 21 17.25l-5.877-5.877M11.42 15.17l2.496-3.03c.317-.384.74-.626 1.208-.766M11.42 15.17l-4.655 5.653a2.548 2.548 0 1 1-3.586-3.586l6.837-5.63m5.108-.233c.55-.164 1.163-.188 1.743-.14a4.5 4.5 0 0 0 4.486-6.336l-3.276 3.277a3.004 3.004 0 0 1-2.25-2.25l3.276-3.276a4.5 4.5 0 0 0-6.336 4.486c.091 1.076-.071 2.264-.904 2.95l-.102.085m-1.745 1.437L5.909 7.5H4.5L3 3.75l1.5-1.5L8.25 3.75v1.409l4.26 4.26m-1.745 1.437 1.745-1.437m6.615 8.206L15.75 15.75M4.867 19.125h.008v.008h-.008v-.008Z" />
      </svg>,
    'magnifying-glass': <svg width="20" height="20" fill="none" viewBox="0 0 24 24" stroke="currentColor" strokeWidth="1.5">
        <path strokeLinecap="round" strokeLinejoin="round" d="m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 15.803 7.5 7.5 0 0 0 15.803 15.803Z" />
      </svg>,
    envelope: <svg width="20" height="20" fill="none" viewBox="0 0 24 24" stroke="currentColor" strokeWidth="1.5">
        <path strokeLinecap="round" strokeLinejoin="round" d="M21.75 6.75v10.5a2.25 2.25 0 0 1-2.25 2.25h-15a2.25 2.25 0 0 1-2.25-2.25V6.75m19.5 0A2.25 2.25 0 0 0 19.5 4.5h-15a2.25 2.25 0 0 0-2.25 2.25m19.5 0v.243a2.25 2.25 0 0 1-1.07 1.916l-7.5 4.615a2.25 2.25 0 0 1-2.36 0L3.32 8.91a2.25 2.25 0 0 1-1.07-1.916V6.75" />
      </svg>,
    building: <svg width="20" height="20" fill="none" viewBox="0 0 24 24" stroke="currentColor" strokeWidth="1.5">
        <path strokeLinecap="round" strokeLinejoin="round" d="M2.25 21h19.5m-18-18v18m10.5-18v18m6-13.5V21M6.75 6.75h.75m-.75 3h.75m-.75 3h.75m3-6h.75m-.75 3h.75m-.75 3h.75M6.75 21v-3.375c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125V21M3 3h12m-.75 4.5H21m-3.75 3.75h.008v.008h-.008v-.008Zm0 3h.008v.008h-.008v-.008Zm0 3h.008v.008h-.008v-.008Z" />
      </svg>,
    user: <svg width="20" height="20" fill="none" viewBox="0 0 24 24" stroke="currentColor" strokeWidth="1.5">
        <path strokeLinecap="round" strokeLinejoin="round" d="M15.75 6a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0ZM4.501 20.118a7.5 7.5 0 0 1 14.998 0A17.933 17.933 0 0 1 12 21.75c-2.676 0-5.216-.584-7.499-1.632Z" />
      </svg>,
    users: <svg width="20" height="20" fill="none" viewBox="0 0 24 24" stroke="currentColor" strokeWidth="1.5">
        <path strokeLinecap="round" strokeLinejoin="round" d="M15 19.128a9.38 9.38 0 0 0 2.625.372 9.337 9.337 0 0 0 4.121-.952 4.125 4.125 0 0 0-7.533-2.493M15 19.128v-.003c0-1.113-.285-2.16-.786-3.07M15 19.128v.106A12.318 12.318 0 0 1 8.624 21c-2.331 0-4.512-.645-6.374-1.766l-.001-.109a6.375 6.375 0 0 1 11.964-3.07M12 6.375a3.375 3.375 0 1 1-6.75 0 3.375 3.375 0 0 1 6.75 0Zm8.25 2.25a2.625 2.625 0 1 1-5.25 0 2.625 2.625 0 0 1 5.25 0Z" />
      </svg>,
    'user-group': <svg width="20" height="20" fill="none" viewBox="0 0 24 24" stroke="currentColor" strokeWidth="1.5">
        <path strokeLinecap="round" strokeLinejoin="round" d="M15 19.128a9.38 9.38 0 0 0 2.625.372 9.337 9.337 0 0 0 4.121-.952 4.125 4.125 0 0 0-7.533-2.493M15 19.128v-.003c0-1.113-.285-2.16-.786-3.07M15 19.128v.106A12.318 12.318 0 0 1 8.624 21c-2.331 0-4.512-.645-6.374-1.766l-.001-.109a6.375 6.375 0 0 1 11.964-3.07M12 6.375a3.375 3.375 0 1 1-6.75 0 3.375 3.375 0 0 1 6.75 0Zm8.25 2.25a2.625 2.625 0 1 1-5.25 0 2.625 2.625 0 0 1 5.25 0Z" />
      </svg>,
    'users-gear': <svg width="20" height="20" fill="none" viewBox="0 0 24 24" stroke="currentColor" strokeWidth="1.5">
        <path strokeLinecap="round" strokeLinejoin="round" d="M9.594 3.94c.09-.542.56-.94 1.11-.94h2.593c.55 0 1.02.398 1.11.94l.213 1.281c.063.374.313.686.645.87.074.04.147.083.22.127.325.196.72.257 1.075.124l1.217-.456a1.125 1.125 0 0 1 1.37.49l1.296 2.247a1.125 1.125 0 0 1-.26 1.431l-1.003.827c-.293.241-.438.613-.43.992a7.723 7.723 0 0 1 0 .255c-.008.378.137.75.43.991l1.004.827c.424.35.534.955.26 1.43l-1.298 2.247a1.125 1.125 0 0 1-1.369.491l-1.217-.456c-.355-.133-.75-.072-1.076.124a6.47 6.47 0 0 1-.22.128c-.331.183-.581.495-.644.869l-.213 1.281c-.09.543-.56.94-1.11.94h-2.594c-.55 0-1.019-.398-1.11-.94l-.213-1.281c-.062-.374-.312-.686-.644-.87a6.52 6.52 0 0 1-.22-.127c-.325-.196-.72-.257-1.076-.124l-1.217.456a1.125 1.125 0 0 1-1.369-.49l-1.297-2.247a1.125 1.125 0 0 1 .26-1.431l1.004-.827c.292-.24.437-.613.43-.991a6.932 6.932 0 0 1 0-.255c.007-.38-.138-.751-.43-.992l-1.004-.827a1.125 1.125 0 0 1-.26-1.43l1.297-2.247a1.125 1.125 0 0 1 1.37-.491l1.216.456c.356.133.751.072 1.076-.124.072-.044.146-.086.22-.128.332-.183.582-.495.644-.869l.214-1.28Z" />
      </svg>,
    mobile: <svg width="20" height="20" fill="none" viewBox="0 0 24 24" stroke="currentColor" strokeWidth="1.5">
        <path strokeLinecap="round" strokeLinejoin="round" d="M10.5 1.5H8.25A2.25 2.25 0 0 0 6 3.75v16.5a2.25 2.25 0 0 0 2.25 2.25h7.5A2.25 2.25 0 0 0 18 20.25V3.75a2.25 2.25 0 0 0-2.25-2.25H13.5m-3 0V3h3V1.5m-3 0h3m-3 18h3" />
      </svg>,
    calendar: <svg width="20" height="20" fill="none" viewBox="0 0 24 24" stroke="currentColor" strokeWidth="1.5">
        <path strokeLinecap="round" strokeLinejoin="round" d="M6.75 3v2.25M17.25 3v2.25M3 18.75V7.5a2.25 2.25 0 0 1 2.25-2.25h13.5A2.25 2.25 0 0 1 21 7.5v11.25m-18 0A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75m-18 0v-7.5A2.25 2.25 0 0 1 5.25 9h13.5A2.25 2.25 0 0 1 21 11.25v7.5" />
      </svg>,
    'badge-check': <svg width="20" height="20" fill="none" viewBox="0 0 24 24" stroke="currentColor" strokeWidth="1.5">
        <path strokeLinecap="round" strokeLinejoin="round" d="M9 12.75 11.25 15 15 9.75M21 12c0 1.268-.63 2.39-1.593 3.068a3.745 3.745 0 0 1-1.043 3.296 3.745 3.745 0 0 1-3.296 1.043A3.745 3.745 0 0 1 12 21c-1.268 0-2.39-.63-3.068-1.593a3.746 3.746 0 0 1-3.296-1.043 3.745 3.745 0 0 1-1.043-3.296A3.745 3.745 0 0 1 3 12c0-1.268.63-2.39 1.593-3.068a3.745 3.745 0 0 1 1.043-3.296 3.746 3.746 0 0 1 3.296-1.043A3.746 3.746 0 0 1 12 3c1.268 0 2.39.63 3.068 1.593a3.746 3.746 0 0 1 3.296 1.043 3.746 3.746 0 0 1 1.043 3.296A3.745 3.745 0 0 1 21 12Z" />
      </svg>,
    at: <svg width="20" height="20" fill="none" viewBox="0 0 24 24" stroke="currentColor" strokeWidth="1.5">
        <path strokeLinecap="round" strokeLinejoin="round" d="M16.5 12a4.5 4.5 0 1 1-9 0 4.5 4.5 0 0 1 9 0Zm0 0c0 1.657 1.007 3 2.25 3S21 13.657 21 12a9 9 0 1 0-2.636 6.364M16.5 12V8.25" />
      </svg>,
    handshake: <svg width="20" height="20" fill="none" viewBox="0 0 24 24" stroke="currentColor" strokeWidth="1.5">
        <path strokeLinecap="round" strokeLinejoin="round" d="M10.05 4.575a1.575 1.575 0 1 0-3.15 0v3m3.15-3v-1.5a1.575 1.575 0 0 1 3.15 0v1.5m-3.15 0 .075 5.925m3.075.75V4.575m0 0a1.575 1.575 0 0 1 3.15 0V15M6.9 7.575a1.575 1.575 0 1 0-3.15 0v8.175a6.75 6.75 0 0 0 6.75 6.75h2.018a5.25 5.25 0 0 0 3.712-1.538l1.732-1.732a5.25 5.25 0 0 0 1.538-3.712l.003-2.024a.668.668 0 0 1 .198-.471 1.575 1.575 0 1 0-2.228-2.228 3.818 3.818 0 0 0-1.12 2.687M6.9 7.575V12m6.27 4.318A4.49 4.49 0 0 1 16.35 15m.002 0h-.002" />
      </svg>,
    'microchip-ai': <svg width="20" height="20" fill="none" viewBox="0 0 24 24" stroke="currentColor" strokeWidth="1.5">
        <path strokeLinecap="round" strokeLinejoin="round" d="M8.25 3v1.5M4.5 8.25H3m18 0h-1.5M4.5 12H3m18 0h-1.5m-15 3.75H3m18 0h-1.5M8.25 19.5V21M12 3v1.5m0 15V21m3.75-18v1.5m0 15V21m-9-1.5h10.5a2.25 2.25 0 0 0 2.25-2.25V6.75a2.25 2.25 0 0 0-2.25-2.25H6.75A2.25 2.25 0 0 0 4.5 6.75v10.5a2.25 2.25 0 0 0 2.25 2.25Zm.75-12h9v9h-9v-9Z" />
      </svg>,
    'shield-check': <svg width="20" height="20" fill="none" viewBox="0 0 24 24" stroke="currentColor" strokeWidth="1.5">
        <path strokeLinecap="round" strokeLinejoin="round" d="M9 12.75 11.25 15 15 9.75m-3-7.036A11.959 11.959 0 0 1 3.598 6 11.99 11.99 0 0 0 3 9.749c0 5.592 3.824 10.29 9 11.623 5.176-1.332 9-6.03 9-11.622 0-1.31-.21-2.571-.598-3.751h-.152c-3.196 0-6.1-1.248-8.25-3.285Z" />
      </svg>,
    chain: <svg width="20" height="20" fill="none" viewBox="0 0 24 24" stroke="currentColor" strokeWidth="1.5">
        <path strokeLinecap="round" strokeLinejoin="round" d="M13.19 8.688a4.5 4.5 0 0 1 1.242 7.244l-4.5 4.5a4.5 4.5 0 0 1-6.364-6.364l1.757-1.757m13.35-.622 1.757-1.757a4.5 4.5 0 0 0-6.364-6.364l-4.5 4.5a4.5 4.5 0 0 0 1.242 7.244" />
      </svg>,
    leaf: <svg width="20" height="20" fill="none" viewBox="0 0 24 24" stroke="currentColor" strokeWidth="1.5">
        <path strokeLinecap="round" strokeLinejoin="round" d="M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0 3.181 3.183a8.25 8.25 0 0 0 13.803-3.7M4.031 9.865a8.25 8.25 0 0 1 13.803-3.7l3.181 3.182m0-4.991v4.99" />
      </svg>,
    'chart-line': <svg width="20" height="20" fill="none" viewBox="0 0 24 24" stroke="currentColor" strokeWidth="1.5">
        <path strokeLinecap="round" strokeLinejoin="round" d="M3.75 3v11.25A2.25 2.25 0 0 0 6 16.5h2.25M3.75 3h-1.5m1.5 0h16.5m0 0h1.5m-1.5 0v11.25A2.25 2.25 0 0 1 18 16.5h-2.25m-7.5 0h7.5m-7.5 0-1 3m8.5-3 1 3m0 0 .5 1.5m-.5-1.5h-9.5m0 0-.5 1.5M9 11.25v1.5M12 9v3.75m3-6v6" />
      </svg>,
    code: <svg width="20" height="20" fill="none" viewBox="0 0 24 24" stroke="currentColor" strokeWidth="1.5">
        <path strokeLinecap="round" strokeLinejoin="round" d="M17.25 6.75 22.5 12l-5.25 5.25m-10.5 0L1.5 12l5.25-5.25m7.5-3-4.5 16.5" />
      </svg>,
    headset: <svg width="20" height="20" fill="none" viewBox="0 0 24 24" stroke="currentColor" strokeWidth="1.5">
        <path strokeLinecap="round" strokeLinejoin="round" d="M2.25 6.75c0 8.284 6.716 15 15 15h2.25a2.25 2.25 0 0 0 2.25-2.25v-1.372c0-.516-.351-.966-.852-1.091l-4.423-1.106c-.44-.11-.902.055-1.173.417l-.97 1.293c-.282.376-.769.542-1.21.38a12.035 12.035 0 0 1-7.143-7.143c-.162-.441.004-.928.38-1.21l1.293-.97c.363-.271.527-.734.417-1.173L6.963 3.102a1.125 1.125 0 0 0-1.091-.852H4.5A2.25 2.25 0 0 0 2.25 4.5v2.25Z" />
      </svg>,
    filter: <svg width="20" height="20" fill="none" viewBox="0 0 24 24" stroke="currentColor" strokeWidth="1.5">
        <path strokeLinecap="round" strokeLinejoin="round" d="M12 3c2.755 0 5.455.232 8.083.678.533.09.917.556.917 1.096v1.044a2.25 2.25 0 0 1-.659 1.591l-5.432 5.432a2.25 2.25 0 0 0-.659 1.591v2.927a2.25 2.25 0 0 1-1.244 2.013L9.75 21v-6.568a2.25 2.25 0 0 0-.659-1.591L3.659 7.409A2.25 2.25 0 0 1 3 5.818V4.774c0-.54.384-1.006.917-1.096A48.32 48.32 0 0 1 12 3Z" />
      </svg>,
    'layer-group': <svg width="20" height="20" fill="none" viewBox="0 0 24 24" stroke="currentColor" strokeWidth="1.5">
        <path strokeLinecap="round" strokeLinejoin="round" d="M6 6.878V6a2.25 2.25 0 0 1 2.25-2.25h7.5A2.25 2.25 0 0 1 18 6v.878m-12 0c.235-.083.487-.128.75-.128h10.5c.263 0 .515.045.75.128m-12 0A2.25 2.25 0 0 0 4.5 9v.878m13.5-3A2.25 2.25 0 0 1 19.5 9v.878m0 0a2.246 2.246 0 0 0-.75-.128H5.25c-.263 0-.515.045-.75.128m15 0A2.25 2.25 0 0 1 21 12v6a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 18v-6c0-.98.626-1.813 1.5-2.122" />
      </svg>,
    bookmark: <svg width="20" height="20" fill="none" viewBox="0 0 24 24" stroke="currentColor" strokeWidth="1.5">
        <path strokeLinecap="round" strokeLinejoin="round" d="M17.593 3.322c1.1.128 1.907 1.077 1.907 2.185V21L12 17.25 4.5 21V5.507c0-1.108.806-2.057 1.907-2.185a48.507 48.507 0 0 1 11.186 0Z" />
      </svg>,
    'share-nodes': <svg width="20" height="20" fill="none" viewBox="0 0 24 24" stroke="currentColor" strokeWidth="1.5">
        <path strokeLinecap="round" strokeLinejoin="round" d="M9 8.25H7.5a2.25 2.25 0 0 0-2.25 2.25v9a2.25 2.25 0 0 0 2.25 2.25h9a2.25 2.25 0 0 0 2.25-2.25v-9a2.25 2.25 0 0 0-2.25-2.25H15m0-3-3-3m0 0-3 3m3-3V15" />
      </svg>,
    'file-export': <svg width="20" height="20" fill="none" viewBox="0 0 24 24" stroke="currentColor" strokeWidth="1.5">
        <path strokeLinecap="round" strokeLinejoin="round" d="M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12 12 16.5m0 0L7.5 12m4.5 4.5V3" />
      </svg>,
    'wand-magic-sparkles': <svg width="20" height="20" fill="none" viewBox="0 0 24 24" stroke="currentColor" strokeWidth="1.5">
        <path strokeLinecap="round" strokeLinejoin="round" d="M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09ZM18.259 8.715 18 9.75l-.259-1.035a3.375 3.375 0 0 0-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 0 0 2.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 0 0 2.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 0 0-2.456 2.456ZM16.894 20.567 16.5 21.75l-.394-1.183a2.25 2.25 0 0 0-1.423-1.423L13.5 18.75l1.183-.394a2.25 2.25 0 0 0 1.423-1.423l.394-1.183.394 1.183a2.25 2.25 0 0 0 1.423 1.423l1.183.394-1.183.394a2.25 2.25 0 0 0-1.423 1.423Z" />
      </svg>,
    'circle-question': <svg width="20" height="20" fill="none" viewBox="0 0 24 24" stroke="currentColor" strokeWidth="1.5">
        <path strokeLinecap="round" strokeLinejoin="round" d="M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 5.25h.008v.008H12v-.008Z" />
      </svg>,
    stairs: <svg width="20" height="20" fill="none" viewBox="0 0 24 24" stroke="currentColor" strokeWidth="1.5">
        <path strokeLinecap="round" strokeLinejoin="round" d="M2.25 18 9 11.25l4.306 4.306a11.95 11.95 0 0 1 5.814-5.518l2.74-1.22m0 0-5.94-2.281m5.94 2.28-2.28 5.941" />
      </svg>,
    'arrow-right': <svg width="20" height="20" fill="none" viewBox="0 0 24 24" stroke="currentColor" strokeWidth="1.5">
        <path strokeLinecap="round" strokeLinejoin="round" d="M13.5 4.5 21 12m0 0-7.5 7.5M21 12H3" />
      </svg>,
    python: <svg width="20" height="20" fill="none" viewBox="0 0 24 24" stroke="currentColor" strokeWidth="1.5">
        <path strokeLinecap="round" strokeLinejoin="round" d="M14.25 9.75 16.5 12l-2.25 2.25m-4.5 0L7.5 12l2.25-2.25M6 20.25h12A2.25 2.25 0 0 0 20.25 18V6A2.25 2.25 0 0 0 18 3.75H6A2.25 2.25 0 0 0 3.75 6v12A2.25 2.25 0 0 0 6 20.25Z" />
      </svg>,
    'code-branch': <svg width="20" height="20" fill="none" viewBox="0 0 24 24" stroke="currentColor" strokeWidth="1.5">
        <path strokeLinecap="round" strokeLinejoin="round" d="M17.25 6.75 22.5 12l-5.25 5.25m-10.5 0L1.5 12l5.25-5.25m7.5-3-4.5 16.5" />
      </svg>
  };
  const resolvedIcon = typeof icon === 'string' ? icons[icon] : icon;
  const Tag = href ? 'a' : 'div';
  const linkProps = href ? {
    href
  } : {};
  return <Tag {...linkProps} className="rb-card">
      <span className="rb-ch rb-ch--tl" />
      <span className="rb-ch rb-ch--tr" />
      <span className="rb-ch rb-ch--bl" />
      <span className="rb-ch rb-ch--br" />
      <div className="rb-card-header">
        {resolvedIcon && <div className="rb-card-icon">{resolvedIcon}</div>}
        <div className="rb-card-name">{title}</div>
      </div>
      {desc && <p className="rb-card-desc">{desc}</p>}
      {children && <div className={stat ? 'rb-card-stat' : 'rb-card-desc'}>{children}</div>}
      {tag && <span className="rb-card-tag">{tag}</span>}
    </Tag>;
};

RevenueBase delivers verified B2B data on people and organizations — structured into relational tables and refreshed monthly.

## Core identifiers

Every record links back to one of three identifiers. Getting these right is the foundation for every join, deduplication, and enrichment workflow.

| Identifier | Entity       | Scope       | What it identifies                                               |
| ---------- | ------------ | ----------- | ---------------------------------------------------------------- |
| `RBID_PER` | Person       | Global      | The human being — stable across every company they work at       |
| `RBID_ORG` | Organization | Global      | The company — one ID regardless of how many people work there    |
| `RBID_PAO` | Contact      | Per company | This person at this company — combines `RBID_PER` and `RBID_ORG` |

<Note>
  **Developer rule of thumb**

  1. Use **Person** when you care about *who* someone is — deduplication, career tracking, identity resolution.
  2. Use **Contact** when you care about *where* they work and in what role — outbound campaigns, enrichment, work email lookup.
  3. A person can have many contacts. A contact belongs to exactly one person and one organization.
</Note>

### Example: Jane Smith works at two companies

<Frame title="Core Concepts">
  <div style={{ display: 'flex', flexDirection: 'column', alignItems: 'center', gap: '6px', padding: '24px 0', fontFamily: 'system-ui, sans-serif' }}>
    <div style={{ background: '#EEEDFE', border: '1px solid #AFA9EC', borderRadius: '8px', padding: '12px 32px', textAlign: 'center', minWidth: '220px' }}>
      <div style={{ color: '#3C3489', fontWeight: 600, fontSize: '15px' }}>Person</div>
      <div style={{ color: '#534AB7', fontSize: '12px', marginTop: '3px' }}>One real human · RBID\_PER</div>
    </div>

    <div style={{ display: 'flex', width: '480px', justifyContent: 'space-between', color: '#B4B2A9', fontSize: '11px', padding: '0 60px' }}>
      <span>↙ 1 contact</span>
      <span>1 contact ↘</span>
    </div>

    <div style={{ display: 'flex', gap: '24px' }}>
      <div style={{ background: '#FAECE7', border: '1px solid #F0997B', borderRadius: '8px', padding: '12px 20px', textAlign: 'center', minWidth: '200px' }}>
        <div style={{ color: '#712B13', fontWeight: 600, fontSize: '14px' }}>Contact A</div>
        <div style={{ color: '#993C1D', fontSize: '12px', marginTop: '3px' }}>Jane @ Acme Corp</div>
        <div style={{ color: '#993C1D', fontSize: '11px', fontFamily: 'monospace', marginTop: '3px' }}>RBID\_PAO: rb-pao-001</div>
      </div>

      <div style={{ background: '#FAECE7', border: '1px solid #F0997B', borderRadius: '8px', padding: '12px 20px', textAlign: 'center', minWidth: '200px' }}>
        <div style={{ color: '#712B13', fontWeight: 600, fontSize: '14px' }}>Contact B</div>
        <div style={{ color: '#993C1D', fontSize: '12px', marginTop: '3px' }}>Jane @ Stripe</div>
        <div style={{ color: '#993C1D', fontSize: '11px', fontFamily: 'monospace', marginTop: '3px' }}>RBID\_PAO: rb-pao-002</div>
      </div>
    </div>

    <div style={{ display: 'flex', gap: '24px' }}>
      <div style={{ textAlign: 'center', minWidth: '200px', color: '#B4B2A9', fontSize: '11px' }}>↓ RBID\_ORG: rb-org-acme</div>
      <div style={{ textAlign: 'center', minWidth: '200px', color: '#B4B2A9', fontSize: '11px' }}>↓ RBID\_ORG: rb-org-stripe</div>
    </div>

    <div style={{ display: 'flex', gap: '24px' }}>
      <div style={{ background: '#E1F5EE', border: '1px solid #5DCAA5', borderRadius: '8px', padding: '12px 20px', textAlign: 'center', minWidth: '200px' }}>
        <div style={{ color: '#085041', fontWeight: 600, fontSize: '14px' }}>Organization</div>
        <div style={{ color: '#0F6E56', fontSize: '12px', marginTop: '3px' }}>Acme Corp · RBID\_ORG</div>
      </div>

      <div style={{ background: '#E1F5EE', border: '1px solid #5DCAA5', borderRadius: '8px', padding: '12px 20px', textAlign: 'center', minWidth: '200px' }}>
        <div style={{ color: '#085041', fontWeight: 600, fontSize: '14px' }}>Organization</div>
        <div style={{ color: '#0F6E56', fontSize: '12px', marginTop: '3px' }}>Stripe · RBID\_ORG</div>
      </div>
    </div>

    <div style={{ display: 'flex', gap: '20px', marginTop: '16px', fontSize: '11px', color: '#5f5e5a' }}>
      <div style={{ display: 'flex', alignItems: 'center', gap: '6px' }}>
        <div style={{ width: '10px', height: '10px', background: '#EEEDFE', border: '1px solid #AFA9EC', borderRadius: '2px', flexShrink: 0 }} />

        <span style={{ color: '#5f5e5a' }}>Person</span>
      </div>

      <div style={{ display: 'flex', alignItems: 'center', gap: '6px' }}>
        <div style={{ width: '10px', height: '10px', background: '#FAECE7', border: '1px solid #F0997B', borderRadius: '2px', flexShrink: 0 }} />

        <span style={{ color: '#5f5e5a' }}>Contact (Person × Org)</span>
      </div>

      <div style={{ display: 'flex', alignItems: 'center', gap: '6px' }}>
        <div style={{ width: '10px', height: '10px', background: '#E1F5EE', border: '1px solid #5DCAA5', borderRadius: '2px', flexShrink: 0 }} />

        <span style={{ color: '#5f5e5a' }}>Organization</span>
      </div>
    </div>
  </div>
</Frame>

| Entity       | ID                        | Key data                                                                |
| ------------ | ------------------------- | ----------------------------------------------------------------------- |
| Person       | `RBID_PER: rb-per123`     | Jane Smith · LinkedIn · personal email                                  |
| Contact      | `RBID_PAO: rb-pao-001`    | VP Engineering @ Acme · [jane@acme.com](mailto:jane@acme.com) · +1 415… |
| Contact      | `RBID_PAO: rb-pao-002`    | Advisor @ Stripe · [jane@stripe.com](mailto:jane@stripe.com)            |
| Organization | `RBID_ORG: rb-org-acme`   | Acme Corp · 500 employees · SaaS · San Francisco                        |
| Organization | `RBID_ORG: rb-org-stripe` | Stripe · 8,000 employees · Fintech · San Francisco                      |

<Info>If someone holds multiple current positions, they will have **multiple rows** in the person table — each with a unique `RBID_PAO` but sharing the same `RBID_PER`.</Info>

<Note>`RBID_ORG` and `RBID_PAO` may be missing if the person's LinkedIn profile does not link to a company page. This occurs because the company name field on LinkedIn is free text — people can enter anything and may skip linking to an existing company page.</Note>

## Table index

| Table                                                                            | Primary key    | Foreign key                                | Description                                                   |
| -------------------------------------------------------------------------------- | -------------- | ------------------------------------------ | ------------------------------------------------------------- |
| [`PER_LATEST`](/docs/data-features/data-tables/person)                           | `RBID_PAO`     | `RBID_ORG` → `ORG_LATEST.RBID`             | Contact-level table — one row per person per organization     |
| [`ORG_LATEST`](/docs/data-features/data-tables/organization)                     | `RBID`         | —                                          | Organization firmographics — one row per company              |
| [`INSIGHTS_LATEST`](/docs/data-features/data-tables/insight)                     | `RBID_ORG`     | `RBID_ORG` → `ORG_LATEST.RBID`             | Derived signals and scores at the organization level          |
| [`HISTORICAL_EXPERIENCE`](/docs/data-features/data-tables/historical-experience) | `LINKEDIN_URL` | `LINKEDIN_URL` → `PER_LATEST.LINKEDIN_URL` | Job and experience history for a person                       |
| `VELOCITY_BASE_UNLIMITED_LATEST`                                                 | `RBID_PAO`     | —                                          | Pre-joined: Person + Organization in a single view            |
| `VELOCITY_ENHANCED_UNLIMITED_LATEST`                                             | `RBID_PAO`     | —                                          | Pre-joined: Person + Organization + Insights in a single view |

For full field references, see [Person](/docs/data-features/data-tables/person), [Organization](/docs/data-features/data-tables/organization), [Insights](/docs/data-features/data-tables/insight), and [Historical experience](/docs/data-features/data-tables/historical-experience).

## Schema conventions

* **Timestamps** — `UPDATED_AT` and `EMAIL_LAST_VERIFIED_AT` are in UTC. `UPDATED_AT` changes when any field is updated (LinkedIn profile revalidation also triggers it, even with no data changes). `EMAIL_LAST_VERIFIED_AT` tracks the last time the email address was independently revalidated.
* **Nullability** — All fields are nullable. Missing values are `NULL` — not empty strings or sentinel values.
* **Fill rates** — Fill rate is the percentage of rows where a field is non-null. Rates vary by segment: US records and larger organizations typically have higher fill rates for phone, seniority, and financial data. See the [Data Dictionary](/docs/data-features/data-dictionary) for per-field fill rates.

***

## Delivery paths

In Snowflake, tables appear under the `RELEASES` database. For S3 deliveries, each table corresponds to a dataset folder in your bucket.

| Table                                        | Snowflake path                                        | S3 path                                                 |
| -------------------------------------------- | ----------------------------------------------------- | ------------------------------------------------------- |
| Person                                       | `RELEASES.RELEASE.PER_LATEST`                         | `<delivery_date>/per/<format>/`                         |
| Organization                                 | `RELEASES.RELEASE.ORG_LATEST`                         | `<delivery_date>/org/<format>/`                         |
| Insights                                     | `RELEASES.RELEASE.INSIGHTS_LATEST`                    | `<delivery_date>/insights/<format>/`                    |
| Pre-joined: Person + Organization            | `RELEASES.RELEASE.VELOCITY_BASE_UNLIMITED_LATEST`     | `<delivery_date>/velocity_base_unlimited/<format>/`     |
| Pre-joined: Person + Organization + Insights | `RELEASES.RELEASE.VELOCITY_ENHANCED_UNLIMITED_LATEST` | `<delivery_date>/velocity_enhanced_unlimited/<format>/` |

***

## Entity reference

### Person

A real human being. There is exactly one Person record per human, identified by `RBID_PER`. It holds identity-level data — name, personal email, LinkedIn URL.

### Organization

A company. One record per company, identified by `RBID_ORG`. It holds firmographic data — headcount, revenue, industry, location.

<Expandable title="Organization counts by country">
  <iframe src="https://embed.domo.com/cards/6BgR9" width="600" height="600" marginheight="0" marginwidth="0" frameborder="0" />
</Expandable>

### Contact

The join between Person and Organization. Jane at Acme Corp is one Contact; Jane at Stripe is another. Each Contact gets a unique `RBID_PAO`, but the same `RBID_PER` threads through both. If a person holds multiple current positions, they appear in multiple rows — one per organization.

<Expandable title="Contact counts">
  <iframe src="https://embed.domo.com/cards/8Mk6o" width="600" height="600" marginheight="0" marginwidth="0" frameborder="0" />

  <iframe src="https://embed.domo.com/cards/9DlQ3" width="600" height="600" marginheight="0" marginwidth="0" frameborder="0" />

  <iframe src="https://embed.domo.com/cards/MJnqm" title="RevenueBase re-verification cadence and coverage" style={{ width: '100%', maxWidth: '640px', height: '480px', border: 'none', borderRadius: '0.5rem', display: 'block' }} />
</Expandable>

### Email

A verified work email address for the contact at their current organization. Sourced from professional profiles and verified for deliverability. Use this for outbound outreach, enrichment, and CRM sync.

<Expandable title="Emails verified by month">
  <iframe src="https://embed.domo.com/cards/NYor2" title="RevenueBase email re-verification frequency" style={{ width: '100%', maxWidth: '640px', height: '480px', border: 'none', borderRadius: '0.5rem', display: 'block' }} />
</Expandable>

### Phone

A direct dial or company phone number associated with the contact. Where available, includes mobile numbers. Use this for outbound calling, sequencing, and contact enrichment workflows.

<Expandable title="Mobile phone number fill rate">
  <iframe src="https://embed.domo.com/cards/gnrL9" width="600" height="600" marginheight="0" marginwidth="0" frameborder="0" />
</Expandable>

***

<RBCard title="Haven't set up your data feed yet?" icon="arrow-right" href="/docs/getting-started/overview" desc="Start in Guides > Setting Up Your Integration." />
