> ## Content Index
> Fetch the complete content index at: https://arabroot.io/llms.txt
> Use this file to discover other available public pages before exploring further.

# جمع التمويل من قائمة المستثمرين إلى إغلاق الجولة
- URL: https://arabroot.io/articles/جمع-التمويل-من-قائمة-المستثمرين-الى-اغلاق-الجولة/
- Published: 2026-10-14T14:15:00.000Z
- Updated: 2026-10-15T15:20:16.000Z
- Description: كيف ترتب جولة التمويل من أول قائمة مستثمرين حتى وصول المال، مع متتبع يفرق بين وعود المستثمرين والتوقيع.
- Author: فريق عرب رووت
- Tags: الأدلة التقنية, الفرق والمنتج, تمويل الشركات الناشئة والمستثمرون, استراتيجية تقنية

يقرر المؤسس أن يجمع جولة، فيفتح قائمة بأسماء صناديق سمع عنها، ويرسل العرض نفسه إلى خمسين بريداً في يوم واحد، ثم ينتظر. وبعد شهرين يجد أن نصف الرسائل لم يرد عليها أحد، وأن ثلاثة اجتماعات انتهت بعبارة «تابعنا بعد أن تكبر الأرقام»، وأن مستثمراً واحداً متحمساً طلب عشرين مستنداً لا يعرف المؤسس أين هي. والسبب أن جمع التمويل عملية لها خطوات وترتيب، مثل أي عملية بيع، وكل خطوة تحتاج تحضيراً قبل أن تبدأ، وهذا المقال يرتب الخطوات من أول قائمة إلى ما بعد وصول المال.

وقد شرحنا في المقالات السابقة [أنواع المستثمرين](https://arabroot.io/articles/%D9%85%D9%86-%D9%8A%D8%B3%D8%AA%D8%AB%D9%85%D8%B1-%D9%81%D9%8A-%D8%B4%D8%B1%D9%83%D8%AA%D9%83-%D8%A7%D9%84%D9%86%D8%A7%D8%B4%D8%A6%D8%A9-%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%A7%D9%84%D9%85%D8%B3%D8%AA%D8%AB%D9%85%D8%B1%D9%8A%D9%86/) و[حسابات الصندوق من الداخل](https://arabroot.io/articles/%D8%B5%D9%86%D8%AF%D9%88%D9%82-%D8%B1%D8%A7%D8%B3-%D8%A7%D9%84%D9%85%D8%A7%D9%84-%D8%A7%D9%84%D8%AC%D8%B1%D9%8A%D8%A1-venture-capital-%D9%85%D9%86-%D8%A7%D9%84%D8%AF%D8%A7%D8%AE%D9%84/) و[المستثمر الملائكي والمسرعات](https://arabroot.io/articles/%D8%A7%D9%84%D9%85%D8%B3%D8%AA%D8%AB%D9%85%D8%B1-%D8%A7%D9%84%D9%85%D9%84%D8%A7%D8%A6%D9%83%D9%8A-%D9%88%D8%A7%D9%84%D9%85%D8%B3%D8%B1%D8%B9%D8%A7%D8%AA-%D9%85%D8%AA%D9%89-%D8%AA%D8%AD%D8%AA%D8%A7%D8%AC%D9%87%D9%85/)، وشرحنا الشروط والتقييم والتخفيف في [جولات التمويل والتخفيف](https://arabroot.io/articles/%D8%AC%D9%88%D9%84%D8%A7%D8%AA-%D8%A7%D9%84%D8%AA%D9%85%D9%88%D9%8A%D9%84-%D9%88%D8%A7%D9%84%D8%AA%D8%AE%D9%81%D9%8A%D9%81-%D9%85%D9%86-safe-%D8%A7%D9%84%D9%89-%D8%A7%D9%84%D8%B7%D8%B1%D8%AD/)، فلن نكرر شيئاً من ذلك هنا.

المواضيع في السلسلة:

- [من يستثمر في شركتك الناشئة؟ أنواع المستثمرين](https://arabroot.io/articles/%D9%85%D9%86-%D9%8A%D8%B3%D8%AA%D8%AB%D9%85%D8%B1-%D9%81%D9%8A-%D8%B4%D8%B1%D9%83%D8%AA%D9%83-%D8%A7%D9%84%D9%86%D8%A7%D8%B4%D8%A6%D8%A9-%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%A7%D9%84%D9%85%D8%B3%D8%AA%D8%AB%D9%85%D8%B1%D9%8A%D9%86/)
- [صندوق رأس المال الجريء Venture Capital من الداخل](https://arabroot.io/articles/%D8%B5%D9%86%D8%AF%D9%88%D9%82-%D8%B1%D8%A7%D8%B3-%D8%A7%D9%84%D9%85%D8%A7%D9%84-%D8%A7%D9%84%D8%AC%D8%B1%D9%8A%D8%A1-venture-capital-%D9%85%D9%86-%D8%A7%D9%84%D8%AF%D8%A7%D8%AE%D9%84/)
- [المستثمر الملائكي Angel Investor والمسرعات: متى تحتاجهم؟](https://arabroot.io/articles/%D8%A7%D9%84%D9%85%D8%B3%D8%AA%D8%AB%D9%85%D8%B1-%D8%A7%D9%84%D9%85%D9%84%D8%A7%D8%A6%D9%83%D9%8A-%D9%88%D8%A7%D9%84%D9%85%D8%B3%D8%B1%D8%B9%D8%A7%D8%AA-%D9%85%D8%AA%D9%89-%D8%AA%D8%AD%D8%AA%D8%A7%D8%AC%D9%87%D9%85/)
- جمع التمويل من قائمة المستثمرين إلى إغلاق الجولة (الموضوع الحالي)

وسوف نناقش في هذا المقال ما يلي:

- خطوات الجولة، وما تجهزه قبل أول اجتماع.
- الأرقام التي يسألك عنها المستثمر في كل مرحلة.
- قائمة المستثمرين ومتابعتها، والتعارف عبر شخص يعرفك Warm Intro.
- ترتيب العرض Pitch Deck من قالب Y Combinator ودليل Sequoia.
- عرض الشروط Term Sheet، وغرفة البيانات Data Room، والفحص النافي للجهالة Due Diligence بما فيه الفحص التقني.
- مختبر: متتبع للمستثمرين ومولد لقائمة غرفة البيانات، ثم الإغلاق والتقارير بعده.

## خطوات الجولة

الجولة ثماني خطوات، بعضها قبل أن تتحدث مع أي مستثمر، وبعضها بعد أن يصل المال، والصورة التالية تبينها بالترتيب:

![ثماني خطوات: الاستعداد، وقائمة المستثمرين، والتعارف عبر شخص يعرفك، والاجتماعات والعرض، وعرض الشروط، والفحص النافي للجهالة على غرفة البيانات، والإغلاق، والتقارير بعد الإغلاق، مقسمة إلى قبل الحديث مع المستثمرين والحديث معهم والاتفاق والفحص والتوقيع وما بعده](https://arabroot.io/content/images/2026/10/fundraising-process-01-process.webp)

الخطوة الأولى قبل أي اجتماع، والأخيرة لا تنتهي ما دام المستثمر شريكاً

ولاحظ أن الخطوتين الأولى والأخيرة هما ما يهمله أغلب المؤسسين، فيبدأ بالاجتماعات دون أرقام جاهزة، وينسى المستثمرين بعد أن يصل المال، ثم يحتاجهم في الجولة القادمة.

## الاستعداد قبل أول اجتماع

المستثمر يحكم عليك من أول اجتماع، فإذا سألك عن رقم ولم تعرفه، أو عن ملكية ولم تكن واضحة، فقد انتهى الاجتماع وإن استمر الحديث. وفيما يلي ما يجب أن يكون جاهزاً قبل أن ترسل أول رسالة:

1. **المبلغ وما يحققه:** كم تحتاج، ولماذا هذا الرقم بالتحديد، وإلى أي مرحلة يوصلك، مثل عدد عملاء أو إيرادات شهرية تجعل الجولة القادمة ممكنة. واحسبه من ميزانية حقيقية كما في [حسابات دراسة الجدوى](https://arabroot.io/articles/%D8%AD%D8%B3%D8%A7%D8%A8%D8%A7%D8%AA-%D8%AF%D8%B1%D8%A7%D8%B3%D8%A9-%D8%A7%D9%84%D8%AC%D8%AF%D9%88%D9%89-roi-%D9%88-npv/)، لا من رقم سمعته عن شركة أخرى.
2. **الأرقام:** الإيرادات والمصروفات الشهرية والمدة التي يكفيها النقد Runway، بلغة القوائم المالية التي شرحناها في [القوائم المالية الثلاث](https://arabroot.io/articles/%D8%A7%D9%84%D9%85%D8%A7%D9%84%D9%8A%D8%A9-%D9%84%D9%84%D8%AA%D9%82%D9%86%D9%8A%D9%8A%D9%86-%D9%84%D8%BA%D8%A9-%D9%82%D8%B3%D9%85-%D8%A7%D9%84%D9%85%D8%A7%D9%84%D9%8A%D8%A9/#three-statements).
3. **جدول ملكية نظيف:** كل سهم وكل عقد SAFE وكل وعد لموظف مكتوب ومحسوب، كما في أدوات جدول الملكية.
4. **اتفاقية المؤسسين:** الاستحقاق التدريجي Vesting وملكية الكود موقعة، كما في [قائمة تحقق اتفاقية المؤسسين](https://arabroot.io/articles/%D8%AA%D9%82%D8%B3%D9%8A%D9%85-%D8%A7%D9%84%D8%AD%D8%B5%D8%B5-%D8%A8%D9%8A%D9%86-%D8%A7%D9%84%D9%85%D8%A4%D8%B3%D8%B3%D9%8A%D9%86/#checklist).
5. **غرفة البيانات الأولية:** المجلدات الأساسية جاهزة قبل أن يطلبها أحد، كما سوف نولدها في المختبر.

## الأرقام التي يسألون عنها في كل مرحلة

ما يقنع المستثمر يتغير مع المرحلة، فلا تعرض أرقاماً لا تناسب مرحلتك، والجدول التالي يلخص ما يبحث عنه المستثمر عادة:

| المرحلة                | ما يريد أن يراه                  | أمثلة على الأرقام                                                                                  |
| ---------------------- | -------------------------------- | -------------------------------------------------------------------------------------------------- |
| ما قبل البذرة Pre-seed | فريق يفهم المشكلة ويبني بسرعة    | مقابلات مع عملاء محتملين، ونسخة أولى، وقائمة انتظار                                                |
| البذرة Seed            | أن هناك من يستخدم ويدفع أو سيدفع | المستخدمون النشطون، والاحتفاظ بالمستخدمين Retention، والإيرادات الأولى                             |
| الجولة A               | أن النمو يتكرر وتكلفته معروفة    | الإيرادات الشهرية ونموها، وتكلفة اكتساب العميل CAC، والهامش الإجمالي، والاحتفاظ بحسب الدفعة Cohort |

وقد شرحنا كيف تقيس المستخدمين والاحتفاظ والقمع في [مقاييس المنتج](https://arabroot.io/articles/%D9%85%D9%82%D8%A7%D9%8A%D9%8A%D8%B3-%D8%A7%D9%84%D9%85%D9%86%D8%AA%D8%AC-%D9%88%D8%AA%D8%AD%D9%84%D9%8A%D9%84%D8%A7%D8%AA-%D8%A7%D9%84%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-product-metrics/#funnel-cohort)، والقاعدة المهمة هنا أن تعرض الأرقام نفسها بالتعريفات نفسها في كل اجتماع وكل تحديث، والسبب أن المستثمر الذي يرى تعريفاً مختلفاً للمستخدم النشط في المرة الثانية سوف يشك في كل الأرقام.

## قائمة المستثمرين ومتابعتها

الجولة الجيدة تبدأ بقائمة مدروسة لا بقائمة طويلة، وكل اسم فيها يجب أن يجيب عن الأسئلة التالية:

- **المرحلة:** هل يستثمر هذا الصندوق أو الشخص في مرحلتك فعلاً؟ اقرأ موقعه وآخر استثماراته المعلنة.
- **القطاع:** هل استثمر في قطاعك، وهل لديه شركة منافسة لك في محفظته؟
- **حجم الشيك:** هل يكتب شيكاً بحجم ما تحتاجه، أو جزءاً معقولاً منه؟
- **يقود أم يتابع:** المستثمر الرئيسي Lead Investor يضع الشروط ويكتب الجزء الأكبر، والبقية يتبعونه، والجولة لا تتحرك غالباً قبل أن تجد قائداً.
- **الشخص:** من الشريك في الصندوق المسؤول عن قطاعك بالاسم؟
- **الطريق إليه:** من يعرفك ويعرفه ويستطيع أن يعرفكما ببعض؟

والسؤال الأخير هو الأهم، فالتعارف عبر شخص يعرفك Warm Intro، كمؤسس استثمر فيه الصندوق أو مستثمر ملائكي يثق به، يجعل رسالتك تقرأ، والسبب أن المستثمر يتلقى رسائل كثيرة، ويثق بمن جربه قبلك أكثر مما يثق بعرض لا يعرف صاحبه. وبعد ذلك تابع كل مستثمر في جدول أو نظام إدارة علاقات CRM بحالة واضحة وتاريخ آخر تواصل وخطوة قادمة، وهو ما يفعله المتتبع في المختبر.

وتحدث مع المستثمرين في فترة متقاربة لا متباعدة، والسبب أن العروض التي تصلك في الأسبوع نفسه تعطيك قدرة على المقارنة والتفاوض، أما الحديث مع مستثمر كل شهر فيجعل كل واحد منهم ينتظر ليرى ماذا فعل غيره.

## العرض Pitch Deck

لا يوجد ترتيب واحد صحيح للعرض، ولكن هناك قالبان منشوران من جهتين معروفتين يكفيان لتبدأ: [قالب جولة البذرة في مكتبة Y Combinator](https://www.ycombinator.com/library/2u-how-to-build-your-seed-round-pitch-deck?ref=arabroot.io) الذي كتبه Aaron Harris، و[دليل Sequoia لكتابة خطة العمل](https://www.sequoiacap.com/article/writing-a-business-plan/?ref=arabroot.io) المنشور في 15 مارس 2019\. والصورة التالية تضع الترتيبين جنباً إلى جنب:

![صفان من الشرائح: قالب Y Combinator بتسع شرائح هي الاسم والتعريف والمشكلة والحل والأرقام وما يميزكم ونموذج العمل والسوق والفريق والمبلغ المطلوب، ودليل Sequoia بعشرة أقسام هي هدف الشركة والمشكلة والحل ولماذا الآن وحجم السوق والمنافسون ونموذج العمل والفريق والأرقام المالية والرؤية](https://arabroot.io/content/images/2026/10/fundraising-process-02-deck.webp)

القالبان يبدآن بالمشكلة والحل، ويختلفان في موضع الأرقام والخاتمة

وفي القالبين أعلاه لاحظ التالي:

- دليل Sequoia يبدأ بأن تعرف شركتك في جملة واحدة، ويقول إن ذلك أصعب مما يبدو، لأن الكثيرين ينشغلون بسرد المزايا بدل الرسالة.
- قالب Y Combinator يطلب الوضوح والاختصار، وأن تكون كل فكرة شريحة واحدة إن أمكن، ويذكر أن فريق المؤسسين مهم جداً في مرحلة البذرة، وأن المستشارين لا يهمون أحداً.
- القالب ينتهي بالمبلغ المطلوب وما يحققه، ويقول إن ذكر المكان الذي ستصل إليه خلال سنة، بما يجعلك جاهزاً للجولة A، أمر قوي.

وطريقة الكتابة نفسها هي طريقة الكتابة للإدارة العليا التي شرحناها في [الكتابة بطريقة BLUF](https://arabroot.io/articles/%D9%85%D9%88%D8%A7%D8%A1%D9%85%D8%A9-%D8%A7%D8%B5%D8%AD%D8%A7%D8%A8-%D8%A7%D9%84%D9%85%D8%B5%D9%84%D8%AD%D8%A9-%D9%88%D8%B3%D9%8A%D8%A7%D8%B3%D8%A9-%D8%A7%D9%84%D9%85%D8%A4%D8%B3%D8%B3%D8%A9/#bluf): الخلاصة والطلب في البداية، ثم الدليل، لأن المستثمر قد لا يقرأ إلا الشريحتين الأوليين قبل أن يقرر هل يكمل.

## عرض الشروط Term Sheet والتفاوض

عندما يقرر المستثمر الرئيسي أن يستثمر، يرسل عرض الشروط Term Sheet، وهي وثيقة قصيرة تحدد التقييم والمبلغ والحقوق، وقد شرحنا بنودها وحساباتها في [شروط الجولة المسعرة](https://arabroot.io/articles/%D8%AC%D9%88%D9%84%D8%A7%D8%AA-%D8%A7%D9%84%D8%AA%D9%85%D9%88%D9%8A%D9%84-%D9%88%D8%A7%D9%84%D8%AA%D8%AE%D9%81%D9%8A%D9%81-%D9%85%D9%86-safe-%D8%A7%D9%84%D9%89-%D8%A7%D9%84%D8%B7%D8%B1%D8%AD/#term-sheet). وفيما يلي ما يخص التفاوض نفسه:

- **قارن العروض بما تأخذه عند البيع لا بالتقييم وحده:** عرض بتقييم أعلى وتفضيل تصفية مع مشاركة قد يعطيك أقل، فشغل الحساب كما في محاكي جدول الملكية.
- **انتبه لفترة الحصرية No-shop:** أغلب العروض تمنعك من الحديث مع مستثمرين آخرين مدة محددة، فلا توقعها قبل أن تكون مقتنعاً بالمستثمر، ولا تقبل مدة مفتوحة.
- **لا تفاوض نفسك:** اطلب العرض مكتوباً ثم ناقشه، ولا تخفض توقعاتك قبل أن يطلب منك أحد ذلك.
- **محام يعرف الاستثمار الجريء والنظام السعودي:** العرض غير ملزم في أغلب بنوده، ولكن العقود التي تكتب بعده ملزمة، وكل بند فيها يجب أن يتوافق مع نظام الشركات.

## غرفة البيانات Data Room

غرفة البيانات مجلد مشترك منظم، تضع فيه كل مستند قد يطلبه المستثمر في الفحص، وتعطي صلاحية الاطلاع لمن وصل إلى مرحلة الفحص فقط. وفيما يلي القواعد التي تجعلها تعمل لصالحك:

- **جهزها قبل أن تطلب:** المستثمر الذي ينتظر أسبوعين ليحصل على عقود العملاء يبرد حماسه، أو يبدأ بالشك.
- **رقم كل مستند:** رقم مثل `02.03` يجعل الأسئلة والإجابات تشير إلى ملف محدد بدل «الملف الذي أرسلناه الأسبوع الماضي».
- **صلاحيات بحسب المرحلة:** عقود العملاء وتفاصيل الكود لا يراها كل من حضر اجتماعاً أول، وتذكر أن بعض المستثمرين لديهم شركات منافسة في محافظهم.
- **سجل للأسئلة والإجابات:** كل سؤال من المستثمر وإجابته في ملف واحد، والسبب أن السؤال نفسه سوف يأتي من المستثمر التالي.

أما ماذا تضع في كل مجلد، فهو ما يولده السكربت في المختبر بحسب المرحلة ونوع الشركة.

## الفحص النافي للجهالة Due Diligence

بعد عرض الشروط يتحقق المستثمر من أن ما قلته في العرض صحيح، والفحص له ثلاثة جوانب رئيسية، وفيما يلي ما يبحث عنه كل جانب:

| الجانب   | ما يتحقق منه                                                   | ما يوقف الجولة عادة                                                              |
| -------- | -------------------------------------------------------------- | -------------------------------------------------------------------------------- |
| القانوني | عقد الشركة وجدول الملكية والعقود السابقة وملكية الكود والعلامة | ملكية غير واضحة، أو كود كتبه متعاقد لم يوقع على نقل الملكية                      |
| المالي   | الحسابات والإيرادات والالتزامات الزكوية والضريبية والنقد       | إيرادات في العرض لا تطابق الحسابات                                               |
| التقني   | البنية والأمان والتراخيص وجودة الكود والاعتماد على أشخاص       | ثغرات معروفة لم تصلح، أو ترخيص يجبرك على نشر كودك، أو نظام لا يعرفه إلا شخص واحد |

والفحص التقني Technical Due Diligence هو الجزء الذي يستطيع الفريق التقني أن يجهزه مسبقاً، وفيما يلي ما يسأل عنه المستثمر أو الجهة التي يكلفها، مع المقال الذي يشرح كل بند:

- **جودة الكود والدين التقني:** مقاييس ومراجعات كما في [جودة الكود Code Quality](https://arabroot.io/articles/%D9%85%D8%A7-%D9%87%D9%8A-%D8%AC%D9%88%D8%AF%D8%A9-%D8%A7%D9%84%D9%83%D9%88%D8%AF-code-quality-%D9%88%D9%83%D9%8A%D9%81-%D8%AA%D9%82%D9%8A%D8%B3%D9%87%D8%A7/).
- **الثغرات في الكود:** نتائج الفحص الثابت كما في [تحليل الكود الثابت SAST](https://arabroot.io/articles/%D8%AA%D8%AD%D9%84%D9%8A%D9%84-%D8%A7%D9%84%D9%83%D9%88%D8%AF-%D8%A7%D9%84%D8%AB%D8%A7%D8%A8%D8%AA-sast-%D9%85%D8%B9-semgrep-%D9%88-sonarqube/).
- **الأسرار المسربة:** مفاتيح وكلمات مرور في تاريخ المستودع، كما في [اكتشاف الأسرار المسربة](https://arabroot.io/articles/%D8%A7%D9%83%D8%AA%D8%B4%D8%A7%D9%81-%D8%A7%D9%84%D8%A7%D8%B3%D8%B1%D8%A7%D8%B1-%D8%A7%D9%84%D9%85%D8%B3%D8%B1%D8%A8%D8%A9-%D9%85%D8%B9-gitleaks-%D9%88-trufflehog/).
- **تراخيص المكتبات:** هل تستخدم مكتبة يفرض ترخيصها شروطاً على منتجك، كما في [البرمجيات مفتوحة المصدر وتراخيصها](https://arabroot.io/articles/%D9%85%D8%A7-%D9%87%D9%8A-%D8%A7%D9%84%D8%A8%D8%B1%D9%85%D8%AC%D9%8A%D8%A7%D8%AA-%D9%85%D9%81%D8%AA%D9%88%D8%AD%D8%A9-%D8%A7%D9%84%D9%85%D8%B5%D8%AF%D8%B1-%D9%88%D8%AA%D8%B1%D8%A7%D8%AE%D9%8A%D8%B5%D9%87%D8%A7/) و[أمن سلسلة التوريد البرمجية](https://arabroot.io/articles/%D8%A7%D9%85%D9%86-%D8%B3%D9%84%D8%B3%D9%84%D8%A9-%D8%A7%D9%84%D8%AA%D9%88%D8%B1%D9%8A%D8%AF-%D8%A7%D9%84%D8%A8%D8%B1%D9%85%D8%AC%D9%8A%D8%A9-%D9%84%D9%84%D9%85%D8%A8%D8%AA%D8%AF%D8%A6%D9%8A%D9%86/).
- **النسخ الاحتياطي والاستعادة:** متى اختبرت آخر استعادة فعلاً، كما في [النسخ الاحتياطي بقاعدة 3-2-1](https://arabroot.io/articles/%D8%A7%D9%84%D9%86%D8%B3%D8%AE-%D8%A7%D9%84%D8%A7%D8%AD%D8%AA%D9%8A%D8%A7%D8%B7%D9%8A-%D8%A8%D9%82%D8%A7%D8%B9%D8%AF%D8%A9-3-2-1-%D9%88%D8%A7%D8%AE%D8%AA%D8%A8%D8%A7%D8%B1-%D8%A7%D9%84%D8%A7%D8%B3%D8%AA%D8%B9%D8%A7%D8%AF%D8%A9/).
- **الأنظمة الداخلية:** هل لدى الشركة ما يناسب حجمها من أنظمة الهوية والحسابات، كما في [متى تضيف كل نظام](https://arabroot.io/articles/%D9%85%D8%AA%D9%89-%D8%AA%D8%B6%D9%8A%D9%81-%D9%83%D9%84-%D9%86%D8%B8%D8%A7%D9%85-%D9%85%D9%86-5-%D9%85%D9%88%D8%B8%D9%81%D9%8A%D9%86-%D8%A7%D9%84%D9%89-500/).

## مختبر: متتبع المستثمرين وقائمة غرفة البيانات

نبني سكربتاً واحداً بلغة Python دون أي مكتبة، ونشغله في Container من ال Image الرسمية `python:3.13.16-slim`، وله عملان: يقرأ ملف المستثمرين ويطبع القمع والمال الموقع مقابل الوعود والمتابعات المتأخرة، ويولد قائمة غرفة البيانات بحسب المرحلة ونوع الشركة. والجولة مصطنعة، والمستثمرون أسماء وهمية، والهدف 6 ملايين ريال، وتاريخ اليوم ثابت في السكربت على 15 أكتوبر 2026 حتى لا يتغير المخرج.

### ملف المستثمرين

نضع البيانات التالية في ملف `investors.csv`، وكل صف مستثمر واحد بحالته وتاريخ آخر تواصل والمبلغ الموعود والمبلغ الموقع:

```text
name,type,warm_intro,status,last_contact,soft_amount,signed_amount,next_step
Angel 1,angel,Founder A,closed,2026-09-02,250000,250000,send monthly update
Angel 2,angel,Advisor,committed,2026-10-08,250000,250000,signature on the SAFE
Angel 3,angel,,first_meeting,2026-09-20,0,0,send the deck v3
Angel Network X,angel_network,Accelerator,partner_meeting,2026-10-12,500000,0,pitch night on 2026-10-22
Seed Fund A,vc_seed,Angel 1,term_sheet,2026-10-13,3000000,0,lawyer review of the term sheet
Seed Fund B,vc_seed,Founder B,due_diligence,2026-10-01,2000000,0,send the tech DD answers
Seed Fund C,vc_seed,,intro_requested,2026-09-15,0,0,ask Angel 2 for the intro
Seed Fund D,vc_seed,Accelerator,passed,2026-09-28,0,0,ask why and keep in the update list
Seed Fund E,vc_seed,Advisor,first_meeting,2026-10-09,0,0,send the data room link
Seed Fund F,vc_seed,,target,,0,0,find a warm intro
Corporate VC G,cvc,Founder A,partner_meeting,2026-09-24,1000000,0,clarify information rights
Family Office H,family_office,Advisor,first_meeting,2026-10-05,0,0,second meeting with the principal
Seed Fund I,vc_seed,,passed,2026-09-10,0,0,too early for them; ask again at Series A
Seed Fund J,vc_seed,Angel 1,intro_requested,2026-10-11,0,0,wait for the intro reply
```

### السكربت

نضع السكربت التالي في ملف `pipeline.py`:

```python
"""An investor pipeline tracker and a data room / due diligence checklist generator (invented round, amounts in SAR).
    python pipeline.py pipeline investors.csv          funnel, money signed against soft, overdue follow-ups
    python pipeline.py dataroom seed --personal-data   data room folders and DD checklist for a seed round
    python pipeline.py dataroom series-a --personal-data --regulated
Standard library only. TODAY is fixed so the output does not change from day to day.
"""
import csv, datetime as dt, json, sys

TODAY = dt.date(2026, 10, 15)
TARGET = 6_000_000                   # the round we are raising
FOLLOW_UP_DAYS = 10                  # an active conversation with no contact for longer than this is overdue
STAGES = ["target", "intro_requested", "first_meeting", "partner_meeting",
          "due_diligence", "term_sheet", "committed", "closed"]
ACTIVE = set(STAGES[1:6])
TYPES = {"angel", "angel_network", "vc_seed", "cvc", "family_office"}

def load(path):
    rows, errors, seen = [], [], set()
    with open(path, newline="", encoding="utf-8") as f:
        for n, r in enumerate(csv.DictReader(f), start=2):          # line 1 is the header
            soft, signed = int(r["soft_amount"]), int(r["signed_amount"])
            if r["name"] in seen:
                errors.append(f"line {n}: {r['name']} appears twice; one investor, one row")
            seen.add(r["name"])
            if r["status"] not in STAGES + ["passed"]:
                errors.append(f"line {n}: unknown status '{r['status']}' (allowed: {', '.join(STAGES)}, passed)")
            if r["type"] not in TYPES:
                errors.append(f"line {n}: unknown investor type '{r['type']}'")
            if signed and r["status"] not in ("committed", "closed"):
                errors.append(f"line {n}: {r['name']} has signed_amount {signed:,} but status '{r['status']}'")
            if signed > soft:
                errors.append(f"line {n}: {r['name']} signed {signed:,} is more than soft {soft:,}")
            rows.append({**r, "soft": soft, "signed": signed})
    if errors:
        print("pipeline file rejected:")
        print("\n".join("  " + e for e in errors))
        sys.exit(1)
    return rows

def pipeline(path):
    rows = load(path)
    print(f"== Funnel on {TODAY} ({len(rows)} investors)")
    reached = lambda s: [r for r in rows if r["status"] != "passed" and STAGES.index(r["status"]) >= STAGES.index(s)]
    passed = [r for r in rows if r["status"] == "passed"]
    funnel = []
    for s in STAGES:
        k = len(reached(s)) + (len(passed) if s in ("target", "intro_requested", "first_meeting") else 0)
        funnel.append((s, k))
        print(f"{s:<16} {k:>3}  {'#' * k}")
    print(f"passed           {len(passed):>3}  (they reached a first meeting, then said no)")

    signed = sum(r["signed"] for r in rows)
    soft = sum(r["soft"] for r in rows if r["status"] != "passed")
    print(f"\n== Money against the target of {TARGET:,} SAR")
    print(f"signed (committed or closed) {signed:>12,}  {100 * signed / TARGET:5.1f}%")
    print(f"soft-circled, all active     {soft:>12,}  {100 * soft / TARGET:5.1f}%  <- not money until a document is signed")
    print(f"gap to target after signed   {TARGET - signed:>12,}")
    lead = [r for r in rows if r["status"] == "term_sheet"]
    print("lead investor: " + (", ".join(r["name"] for r in lead) + " (term sheet under review)" if lead else "none yet"))

    print(f"\n== Overdue follow-ups (active, no contact for more than {FOLLOW_UP_DAYS} days)")
    for r in sorted(rows, key=lambda r: r["last_contact"] or "9"):
        if r["status"] in ACTIVE and r["last_contact"]:
            days = (TODAY - dt.date.fromisoformat(r["last_contact"])).days
            if days > FOLLOW_UP_DAYS:
                print(f"{r['name']:<18} {r['status']:<16} {days:>3} days  next: {r['next_step']}")

    print("\n== No warm intro yet")
    for r in rows:
        if not r["warm_intro"] and r["status"] in ("target", "intro_requested", "first_meeting"):
            print(f"{r['name']:<18} {r['status']:<16} next: {r['next_step']}")
    with open("results.js", "w", newline="\n") as f:
        f.write("window.P = " + json.dumps({"funnel": funnel, "passed": len(passed), "signed": signed,
                                              "soft": soft, "target": TARGET}) + ";\n")

# ------------------------------------------------------------------ data room
ROOM = [
    ("01-corporate", "seed", ["Commercial registration (CR) and articles of association",
                              "Cap table, fully diluted, matching the share register",
                              "Founders' agreement with vesting and leaver terms",
                              "Every SAFE, convertible note and side letter signed so far",
                              "Board and shareholder resolutions"]),
    ("02-financial", "seed", ["Monthly management accounts: income statement and cash",
                              "Budget for the next 18 months with runway and burn",
                              "Zakat, tax and VAT registration and certificates",
                              "Bank statements for the last 6 months"]),
    ("02-financial", "series-a", ["Audited financial statements",
                                  "Revenue by customer and by month, reconciled to the accounts",
                                  "Unit economics: CAC, gross margin, payback"]),
    ("03-commercial", "seed", ["Top customer contracts and pilots",
                               "Pricing and the sales pipeline",
                               "Product metrics: active users, retention by cohort"]),
    ("04-team", "seed", ["Organisation chart and key hires plan",
                         "Employment contracts of founders and key staff",
                         "IP assignment signed by founders, staff and contractors"]),
    ("04-team", "series-a", ["Employee equity plan and the grants register"]),
    ("05-legal-ip", "seed", ["Trademarks and domain names held by the company",
                             "Material contracts: hosting, suppliers, partners",
                             "Disputes and claims, or a statement that there are none"]),
    ("06-technology", "seed", ["Architecture overview and hosting locations",
                               "Open source licence inventory of dependencies",
                               "Access control: who has production and admin access",
                               "Backups and the date of the last tested restore"]),
    ("06-technology", "series-a", ["Static analysis (SAST) and secrets scan results",
                                   "Code quality metrics and the main technical debt",
                                   "Latest penetration test and how findings were fixed",
                                   "Security incidents log"]),
]
EXTRA = {
    "--personal-data": ("07-data-protection", ["Personal data inventory: what, where, why, who can see it",
                                               "Privacy notice and consent records",
                                               "Data processing agreements with processors",
                                               "Breach response procedure"]),
    "--regulated": ("08-regulatory", ["Licences or permits from the sector regulator",
                                      "Regulator correspondence and compliance reports"]),
}

def dataroom(stage, flags):
    if stage not in ("seed", "series-a"):
        sys.exit(f"unknown stage '{stage}' (use seed or series-a)")
    want = {"seed"} | ({"series-a"} if stage == "series-a" else set())
    folders = {}
    for folder, level, items in ROOM:
        if level in want:
            folders.setdefault(folder, []).extend(items)
    for flag in flags:
        if flag not in EXTRA:
            sys.exit(f"unknown option {flag}")
        folders[EXTRA[flag][0]] = EXTRA[flag][1]
    total = sum(len(v) for v in folders.values())
    print(f"== Data room for a {stage} round: {len(folders)} folders, {total} items")
    for folder, items in folders.items():
        print(f"{folder}/")
        for i, item in enumerate(items, 1):
            print(f"   [ ] {folder[:2]}.{i:02d} {item}")

if __name__ == "__main__":
    if len(sys.argv) >= 3 and sys.argv[1] == "pipeline":
        pipeline(sys.argv[2])
    elif len(sys.argv) >= 3 and sys.argv[1] == "dataroom":
        dataroom(sys.argv[2], sys.argv[3:])
    else:
        print(__doc__)
```

في السكربت أعلاه لاحظ التالي:

- الدالة `load` ترفض الملف كله إذا وجدت خطأ، مثل مستثمر مكرر أو حالة غير معروفة أو مبلغ موقع لمستثمر لم يلتزم، والسبب أن متتبعاً يقبل البيانات الخاطئة يعطيك أرقاماً خاطئة بثقة.
- المال الموقع يحسب فقط من الحالتين `committed` و`closed`، والوعود Soft Circle تحسب منفصلة.
- قائمة غرفة البيانات في `ROOM` مقسمة بحسب المرحلة، والخيارات `--personal-data` و`--regulated` تضيف مجلدين لمن يعالج بيانات شخصية أو يعمل في قطاع منظم.

### متابعة الجولة

```bash
docker run --name lab-fund-pipeline -v "$PWD:/w" -w /w python:3.13.16-slim python pipeline.py pipeline investors.csv
```

والمخرج سوف يكون كما يلي:

```text
== Funnel on 2026-10-15 (14 investors)
target            14  ##############
intro_requested   13  #############
first_meeting     11  ###########
partner_meeting    6  ######
due_diligence      4  ####
term_sheet         3  ###
committed          2  ##
closed             1  #
passed             2  (they reached a first meeting, then said no)

== Money against the target of 6,000,000 SAR
signed (committed or closed)      500,000    8.3%
soft-circled, all active        7,000,000  116.7%  <- not money until a document is signed
gap to target after signed      5,500,000
lead investor: Seed Fund A (term sheet under review)

== Overdue follow-ups (active, no contact for more than 10 days)
Seed Fund C        intro_requested   30 days  next: ask Angel 2 for the intro
Angel 3            first_meeting     25 days  next: send the deck v3
Corporate VC G     partner_meeting   21 days  next: clarify information rights
Seed Fund B        due_diligence     14 days  next: send the tech DD answers

== No warm intro yet
Angel 3            first_meeting    next: send the deck v3
Seed Fund C        intro_requested  next: ask Angel 2 for the intro
Seed Fund F        target           next: find a warm intro
```

في المخرج أعلاه لاحظ التالي:

- الوعود 7 ملايين، أي 116.7% من الهدف، ولكن الموقع 500 ألف فقط، أي 8.3%، وهذا هو الفرق الذي يخدع المؤسسين: الجولة لم تقترب من الإغلاق رغم أن الوعود تتجاوز الهدف.
- المستثمر الرئيسي هو `Seed Fund A` بعرض شروط قيد المراجعة، ووعده 3 ملايين هو نصف الجولة، فإذا انسحب فسوف تسقط وعود كثيرة معه.
- `Seed Fund B` في مرحلة الفحص ولم يتواصل معه أحد منذ 14 يوماً، والخطوة القادمة إجابات الفحص التقني، وهذه هي المتابعة الأخطر في القائمة لأنها في مرحلة متقدمة.
- ثلاثة مستثمرين دون تعارف عبر شخص يعرفك، ومنهم `Seed Fund C` الذي طلبنا التعارف معه قبل 30 يوماً ولم يحدث.

والصورة التالية تبين القمع والمال من المخرج نفسه:

![قمع من 14 مستثمراً في القائمة إلى 13 طلبنا التعارف و11 اجتماعاً أول و6 اجتماعات شركاء و4 في الفحص و3 في عرض الشروط و2 التزام موقع وواحد وصل ماله، وبجانبه شريطان: الوعود 7.00 مليون تتجاوز الهدف 6 ملايين، والموقع 0.50 مليون فقط](https://arabroot.io/content/images/2026/10/fundraising-process-03-funnel.webp)

القمع يضيق بسرعة، والوعود ليست مالاً حتى توقع

### نكسر المتتبع: بيانات خاطئة

الآن سوف نكتب ملفاً فيه ثلاثة أخطاء يقع فيها من يتابع الجولة يدوياً: مستثمر مكرر، وحالة مكتوبة خطأ `comitted`، ومبلغ موقع لمستثمر ما زال في مرحلة عرض الشروط، وهو ما يحدث عندما يسجل المؤسس الوعد كأنه توقيع. والملف `investors-broken.csv` كما يلي:

```text
name,type,warm_intro,status,last_contact,soft_amount,signed_amount,next_step
Angel 1,angel,Founder A,closed,2026-09-02,250000,250000,send monthly update
Angel 2,angel,Advisor,committed,2026-10-08,250000,250000,signature on the SAFE
Seed Fund A,vc_seed,Angel 1,term_sheet,2026-10-13,3000000,3000000,lawyer review of the term sheet
Angel 2,angel,Advisor,comitted,2026-10-14,250000,250000,signature on the SAFE
```

```bash
docker run --name lab-fund-broken -v "$PWD:/w" -w /w python:3.13.16-slim python pipeline.py pipeline investors-broken.csv
```

والمخرج سوف يكون كما يلي، ويخرج السكربت برمز الخطأ 1:

```text
pipeline file rejected:
  line 4: Seed Fund A has signed_amount 3,000,000 but status 'term_sheet'
  line 5: Angel 2 appears twice; one investor, one row
  line 5: unknown status 'comitted' (allowed: target, intro_requested, first_meeting, partner_meeting, due_diligence, term_sheet, committed, closed, passed)
  line 5: Angel 2 has signed_amount 250,000 but status 'comitted'
```

ولاحظ أن الخطأ الأول هو الأخطر، فلو سجلت عرض `Seed Fund A` كمال موقع في الملف الأصلي وقبله المتتبع، لأضاف 3 ملايين إلى المال الموقع، ولأخبرك أن الجولة وصلت إلى 58.3% من الهدف وهي في الحقيقة عند 8.3%.

### قائمة غرفة البيانات

الآن نولد قائمة غرفة البيانات لشركة في مرحلة البذرة تعالج بيانات شخصية:

```bash
docker run --name lab-fund-room -v "$PWD:/w" -w /w python:3.13.16-slim python pipeline.py dataroom seed --personal-data
```

والمخرج سوف يكون كما يلي:

```text
== Data room for a seed round: 7 folders, 26 items
01-corporate/
   [ ] 01.01 Commercial registration (CR) and articles of association
   [ ] 01.02 Cap table, fully diluted, matching the share register
   [ ] 01.03 Founders' agreement with vesting and leaver terms
   [ ] 01.04 Every SAFE, convertible note and side letter signed so far
   [ ] 01.05 Board and shareholder resolutions
02-financial/
   [ ] 02.01 Monthly management accounts: income statement and cash
   [ ] 02.02 Budget for the next 18 months with runway and burn
   [ ] 02.03 Zakat, tax and VAT registration and certificates
   [ ] 02.04 Bank statements for the last 6 months
03-commercial/
   [ ] 03.01 Top customer contracts and pilots
   [ ] 03.02 Pricing and the sales pipeline
   [ ] 03.03 Product metrics: active users, retention by cohort
04-team/
   [ ] 04.01 Organisation chart and key hires plan
   [ ] 04.02 Employment contracts of founders and key staff
   [ ] 04.03 IP assignment signed by founders, staff and contractors
05-legal-ip/
   [ ] 05.01 Trademarks and domain names held by the company
   [ ] 05.02 Material contracts: hosting, suppliers, partners
   [ ] 05.03 Disputes and claims, or a statement that there are none
06-technology/
   [ ] 06.01 Architecture overview and hosting locations
   [ ] 06.02 Open source licence inventory of dependencies
   [ ] 06.03 Access control: who has production and admin access
   [ ] 06.04 Backups and the date of the last tested restore
07-data-protection/
   [ ] 07.01 Personal data inventory: what, where, why, who can see it
   [ ] 07.02 Privacy notice and consent records
   [ ] 07.03 Data processing agreements with processors
   [ ] 07.04 Breach response procedure
```

ولشركة في الجولة A تعمل في قطاع منظم، نضيف المرحلة والخيار الثاني:

```bash
docker run --name lab-fund-room-a -v "$PWD:/w" -w /w python:3.13.16-slim python pipeline.py dataroom series-a --personal-data --regulated
```

والسطر الأول من المخرج كما يلي، وبعده القائمة نفسها مع عشرة بنود إضافية:

```text
== Data room for a series-a round: 8 folders, 36 items
```

والصورة التالية تلخص بالعربية المجلدات الثمانية وبنودها في مخرج الجولة A، والأزرق منها ما يضاف في الجولة A:

![ثمانية مجلدات: الشركة والملكية 5 بنود، والمالية 7 منها 3 للجولة A، والعملاء والسوق 3، والفريق 4 منها برنامج أسهم الموظفين للجولة A، والقانونية والملكية الفكرية 3، والتقنية 8 منها 4 للجولة A هي نتائج SAST والأسرار وجودة الكود واختبار الاختراق وسجل الحوادث، وحماية البيانات 4، والجهات التنظيمية 2](https://arabroot.io/content/images/2026/10/fundraising-process-04-dataroom.webp)

36 بنداً في الجولة A، وأغلب ما يضاف فيها مالي وتقني

وفي القائمتين أعلاه لاحظ التالي:

- القائمة نقطة بداية وليست قائمة نظامية، فالمستثمر قد يطلب أكثر أو أقل، ولكن كل بند فيها سؤال سوف تسمعه غالباً.
- مجلد التقنية يكبر في الجولة A، لأن المستثمر يكلف غالباً من يراجع الكود والأمان، والبنود الأربعة الإضافية هي مخرجات أدوات شرحناها في القسم السابق.
- مجلد حماية البيانات يظهر فقط مع `--personal-data`، فإذا كانت شركتك تعالج بيانات شخصية فسوف يسأل المستثمر عن التزامك بنظام حماية البيانات الشخصية.

### حذف المختبر

```bash
docker rm lab-fund-pipeline lab-fund-broken lab-fund-room lab-fund-room-a
```

ولم نبن أي Image جديدة، والملف الذي كتبه السكربت هو `results.js`، وهو مصدر صورة القمع.

## الإغلاق

الإغلاق ليس يوم التوقيع وحده، وإنما مجموعة خطوات يجب أن تكتمل كلها، وفيما يلي ترتيبها المعتاد:

1. **العقود النهائية:** اتفاقية الاستثمار واتفاقية المساهمين، يكتبها المحامون من عرض الشروط، وراجع كل بند تغير عن العرض.
2. **قرارات الشركة:** موافقة المساهمين ومجلس الإدارة على زيادة رأس المال وإصدار الأسهم الجديدة وتعديل عقد الشركة أو نظامها الأساس، بحسب شكل الشركة الذي شرحناه في [الحصص والأسهم](https://arabroot.io/articles/%D8%A7%D8%B3%D9%87%D9%85-%D8%A7%D9%84%D8%B4%D8%B1%D9%83%D8%A9-%D8%A7%D9%84%D9%86%D8%A7%D8%B4%D8%A6%D8%A9-%D9%88%D8%AC%D8%AF%D9%88%D9%84-%D8%A7%D9%84%D9%85%D9%84%D9%83%D9%8A%D8%A9-cap-table/#forms).
3. **وصول المال:** لا تعتبر الجولة مغلقة حتى يصل المال إلى حساب الشركة، وسجل في المتتبع تاريخ وصول كل مبلغ.
4. **تحديث السجلات:** سجل المساهمين وجدول الملكية Cap Table وتسجيل التعديلات لدى الجهة المختصة.
5. **الإعلان:** بعد الإغلاق لا قبله، وبموافقة المستثمرين على النص.

## ما بعد الإغلاق: التقارير للمستثمرين

المستثمر أصبح شريكاً، والتقارير الدورية هي ما يجعله يساعدك في الجولة القادمة بدل أن يسألك عنها، وفيما يلي ما يجب أن يحتويه التحديث الشهري:

- **الأرقام نفسها كل مرة:** الإيرادات، والمصروفات، والنقد، والمدة التي يكفيها، ومقياسان أو ثلاثة من المنتج، بالتعريفات نفسها.
- **ما تم وما لم يتم:** بصراحة، فالمستثمر الذي يعرف المشكلة مبكراً يساعد، والذي يعرفها متأخراً يفقد الثقة.
- **طلب محدد:** تعريف بعميل، أو مرشح لوظيفة، أو نصيحة في قرار، والسبب أن المستثمر يريد أن يساعد ولكنه لا يعرف كيف إذا لم تقل له.

وإذا كان للمستثمر مقعد في مجلس الإدارة، فاجتماعات المجلس لها جدول وقرارات ومحاضر، وراجع الحقوق التي أعطيتها في العقد قبل كل قرار كبير، مثل توظيف قيادي أو بيع أصل أو جولة جديدة.

## أخطاء شائعة

- **إرسال العرض للجميع في يوم واحد دون تعارف:** الرسائل الباردة تقرأ أقل، والقائمة غير المدروسة تحرق أسماء قد تحتاجها لاحقاً.
- **حساب الوعود كأنها مال:** الجولة تغلق بالتوقيع ووصول المال، وكل ما قبل ذلك احتمال.
- **بدء الجولة دون مستثمر رئيسي في الأفق:** المتابعون ينتظرون من يضع الشروط.
- **غرفة بيانات تبنى أثناء الفحص:** كل يوم انتظار يبرد الحماس.
- **توقيع فترة حصرية مفتوحة:** تحدد المدة دائماً.
- **إهمال المستثمرين بعد الإغلاق:** الجولة القادمة تبدأ من آخر تحديث أرسلته.

## تدريب عملي

1. أضف إلى `investors.csv` عشرة مستثمرين حقيقيين يناسبون شركتك أو فكرة تعمل عليها، بالمرحلة والطريق إلى كل منهم، ثم شغل المتتبع.
2. أضف إلى السكربت تقريراً بالمستثمرين الذين وصلوا إلى عرض الشروط ثم انسحبوا، مع السبب في عمود جديد.
3. ولد قائمة غرفة البيانات لمرحلتك، وضع بجانب كل بند هل هو جاهز أم لا، وكم يوماً يحتاج.
4. اكتب الشريحة الأولى في عرضك: جملة واحدة تعرف الشركة كما يطلب دليل Sequoia.

## الخلاصة

وصلنا لنهاية الموضوع ونهاية السلسلة، وأهم ما فيه:

- الجولة ثماني خطوات، أولها الاستعداد قبل أي اجتماع، وآخرها التقارير بعد الإغلاق.
- القائمة الجيدة مدروسة بالمرحلة والقطاع وحجم الشيك والطريق إلى كل مستثمر، والتعارف عبر شخص يعرفك يفتح الأبواب.
- قالب Y Combinator ودليل Sequoia يبدآن بالمشكلة والحل، والأول ينتهي بالمبلغ وما يحققه.
- غرفة البيانات تجهز قبل أن تطلب، والفحص التقني يمكن تحضيره من مخرجات أدوات الجودة والأمان.
- الوعود ليست مالاً، فتابع المال الموقع منفصلاً عن الوعود، كما في المتتبع.

## سجل التحديثات

- أكتوبر 2026: كتابة المقال، ومراجعة قالب البذرة في مكتبة Y Combinator ودليل Sequoia من مصادرهما، وتشغيل المختبر على Docker Engine 29.8.0.