Impact of Positive Discrimination in Accelerators on the Financial Gender Gap: An Agent-Based Simulation

Impact of Positive Discrimination in Accelerators on the Financial Gender Gap: An Agent-Based Simulation preview image

This model is seeking new collaborators — would you please help?

2 collaborators

Default-person GUSTAVO CARREON (Author)
Default-person Nicolas Fuentes (Author)

Tags

entrepreneurial ecosystem 

Tagged by GUSTAVO CARREON about 17 hours ago

gender inequality 

Tagged by GUSTAVO CARREON about 17 hours ago

gender inequality. 

Tagged by GUSTAVO CARREON about 17 hours ago

Visible to everyone | Changeable by the author
Model was written in NetLogo 6.4.0 • Viewed 23 times • Downloaded 6 times • Run 0 times
Download the 'Impact of Positive Discrimination in Accelerators on the Financial Gender Gap: An Agent-Based Simulation' modelDownload this modelEmbed this model

Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)


WHAT IS IT?

This model explores how targeted inclusion interventions (positive discrimination) in startup accelerators affect gender-based disparities in venture capital (VC) financing. It represents an entrepreneurial ecosystem as a dynamic network of startups that interact, learn, and compete for funding.

The model investigates how increasing the participation of female- and mixed-led startups in accelerator programs influences the emergence of systemic inequalities in financial outcomes. It captures how local decisions and social connections aggregate to produce macro-level patterns of inequality and ecosystem performance.

HOW IT WORKS

The model consists of startups (agents) differentiated by gender composition:

Male-led startups (black)

Female-led startups (red)

Mixed-gender startups (yellow)

Each startup possesses human capital (d), funds, and social connections. The simulation proceeds through several interdependent processes:

Networking: Startups meet and form links with others based on gender-dependent probabilities, reflecting social homophily and implicit bias (parameter δ).

Accelerator selection: Periodically, startups apply to accelerator programs. A proportion of the capacity is reserved for female and mixed startups, representing positive discrimination (female%, mix%).

Learning and community building: Accelerated startups improve their human capital and form new intra-cohort and external links, increasing their social capital.

VC funding: Startups can apply for venture capital through two selection mechanisms:

Traditional: the best startup (highest combined human and social capital) is funded.

Preferred: the VC prioritizes female and mixed startups.

Lifecycle: Startups lose funds over time; when funds reach zero, they exit and are replaced by new entrants to maintain a steady population.

Through these iterative local interactions, aggregate outcomes such as gender funding gaps, overall network density, and average human capital emerge.

HOW TO USE IT

Set parameters in the Interface tab:

startups0, startups1, startups2: initial number of male, female, and mixed startups.

skills: mean human capital (Poisson distribution mean).

delta: gender bias coefficient (0 = no bias, 1 = maximum inequality).

cap_acc: proportion of startups admitted to accelerators per cycle.

female%, mix%: share of accelerator capacity reserved for each gender.

vc-selection: choose "traditional" or "prefered" for the VC funding rule.

Click setup to initialize the model. Startups will appear color-coded by gender.

Click go to run the simulation. Watch the evolution of colors:

Black/red/yellow = active but unfunded startups.

Blue = startups in acceleration.

Green = funded startups.

Monitor plots and monitors:

Funding gap indicators (gap-m/f, gap-m/x, gap-x/f)

Average human and social capital by gender.

Counts of accelerated and funded startups.

THINGS TO NOTICE

Non-linear effects: The reduction of the gender funding gap does not increase linearly with the inclusion rate. Beyond a threshold, the system exhibits saturation effects.

Trade-offs: Increasing gender equity may reduce total funding events, as interventions alter competitive dynamics.

Network effects: Observe how link density and clustering evolve as bias (δ) changes. More inclusive networks often exhibit higher connectivity and slower segregation.

Path dependence: Early successes (the “trigger” startups) can influence long-term outcomes, showing sensitivity to initial conditions.

Emergent dynamics: Run multiple simulations with different random seeds to see how stochastic variations shape ecosystem diversity and performance.

THINGS TO TRY

Compare traditional vs. prefered VC selection.

Increase female% and observe how quickly the gender gap decreases.

Vary δ (bias) to test the resilience of inclusion policies under stronger structural inequality.

Reduce cap_acc to simulate limited accelerator capacity and observe how bottlenecks affect gender outcomes.

Track cumulative funding and network metrics to detect tipping points in systemic inclusion.

CREDITS AND REFERENCES

Fuentes, N., Carreón G., & Jana Schmutzler (2025). “Impact of Positive Discrimination in Accelerators on the Financial Gender Gap: An Agent-Based Simulation.” NetLogo model. Available at: https://modelingcommons.org/

Comments and Questions

Please start the discussion about this model! (You'll first need to log in.)

Click to Run Model

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; EntrepreneurialEcosystem_GenderGap_ABM.nlogo
;;
;; Title: Impact of Positive Discrimination in Accelerators on the Financial Gender Gap: An Agent-Based Simulation
;; Authors: Nicolas Fuentes (Uninorte, Colombia), Gustavo Carreón (UNAM, México), Jana Schmutzler (Uninorte, Colombia)
;; Date: 2025
;;
;; Purpose:
;; This model investigates how targeted inclusion interventions within entrepreneurial
;; accelerators influence gender-based disparities in venture capital financing.
;; It represents an entrepreneurial ecosystem as an adaptive social-financial network
;; in which startups interact, learn, and compete for resources.
;;
;; The simulation explores how positive discrimination (increasing the participation
;; of female-led startups in accelerator programs) affects emergent funding patterns,
;; human and social capital accumulation, and overall ecosystem dynamics.
;;
;; Methodology:
;; - Agent-based modeling (ABM)
;; - Network formation and gender-biased interactions
;; - Policy interventions via accelerator capacity and inclusion rates
;;
;; Keywords:
;; Entrepreneurial ecosystem, gender inequality, positive discrimination,
;; accelerators, venture capital, ABM, complex systems, social networks
;;
;; License:
;; This model is distributed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
;; https://creativecommons.org/licenses/by-nc-sa/4.0/
;;
;; Recommended citation:
;; Fuentes, N., Carreón G., & Schmutzler. J. (2025). “Impact of Positive Discrimination in Accelerators
;; on the Financial Gender Gap: An Agent-Based Simulation.” NetLogo model.
;; Available at: https://modelingcommons.org/browse/one_model/7760
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; GLOBAL VARIABLES
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
globals[
  ;; Startup counts by gender and state
  ;; 0 = non-accelerated/unfunded, 1 = accelerated, 2 = funded
  male0 female0 mix0
  male1 female1 mix1
  male2 female2 mix2

  ;; Average human capital (d) of the network by gender.
  dmale dfemale dmix

  ;; Average of the successful social network (of each company) of the entire network by gender.
  male_net female_net mix_net

  ;; Gender financing gaps (m/f/x)
  gap-m/f gap-m/x gap-x/f

  ;; Time average of the number of startups not accelerated or not funded (0), accelerated (1), funded (2).
  mufemale0 mufemale1 mufemale2 ; mean for females states
  mumale0 mumale1 mumale2 ; mean for males states
  mumix0 mumix1 mumix2 ; mean for mix states

  ;; Mean gaps and human capital over time
  mugap-m/f mugap-m/x mugap-x/f
  mudmale mudfemale mudmix

  ;; Cumulative counts for each gender and state
  #female0 #male0 #mix0
  #female1 #male1 #mix1
  #female2 #male2 #mix2

  ;; Proportion of startups in each stage by gender
  ratef0  ratem0 ratemix0
  ratef1  ratem1 ratemix1
  ratef2  ratem2 ratemix2

  ;; Accumulated gaps by stage
  gap_fm0 gap_fmix0 gap_mixm0 ;gap in accelerator (using cumulative values) f/m f/mix mix/m
  gap_fm1 gap_fmix1 gap_mixm1 ;gap in accelerator (using cumulative values) f/m f/mix mix/m
  gap_fm2 gap_fmix2 gap_mixm2 ;financial gap (using accumulated values) f/m f/mix mix/m

  ;; Simulation timing and state variables
  deadline      ;; countdown for accelerator application cycles
  acc-selected  ;; agentset currently in acceleration

  ;; Number of funded companies coming from a previous acceleration process or without a
  ;; previous acceleration process, by gender male (0), female (1), mix (2)
  come-acc0 come-acc1 come-acc2
  not-come-acc0 not-come-acc1 not-come-acc2

  rank-final   ;; list that stores the ranking of startups to choose the best one to finance (VC Selection)

  #total       ;; total funded startups

  ;; Auxiliary and storage variables for averages
  mn fn xn
  m0 m1 m2 f0 f1 f2 x0 x1 x2 g0 g1 g2 #f #m #g dm df dxx
  rf0 rf1 rf2 rm0 rm1 rm2 rx0 rx1 rx2
  murf0 murf1 murf2 murm0 murm1 murm2 murx0 murx1 murx2 mumale_net mufemale_net mumix_net
  mm ff fm
  selected-by-vc

  ;; Accelerator capacity
  cap_acc

]


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; TURTLE VARIABLES
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
turtles-own [

  ;; Core startup attributes

  funds     ;; current financial capital; if 0  death
  d         ;; human capital level
  gender    ;; 0=male, 1=female, 2=mix


  ;; Interaction and status variables
  meeting
  mating              ;; mating vc
  mating-acc          ;; mating accelerator duration of accelerator relationship (3-6 months) (1 to ...18 weeks)
  accelerated-period  ;; duration of time with accelerated effect
  tie-vc
  accelerated         ;; (true false) true: state = 1 or 1.5 false: 0 or 0.5
  want-acc
  want-vc
  selection1?         ;; True o False  is startup selected for the accelerator program or not
  selection2?         ;; True o False  is selected to be funded

  ;; Social network attributes, auxiliary variable successful neighbors in the environment
  my-alters_m         ;; set of male neighbors (k=m (0))
  my-alters_f         ;; set of female neighbors (k=f (1))
  my-alters_x         ;; set of male neighbors (k=x (2))
  social-net          ;; number of successful neighbors by gender.

  ;; Interaction probabilities
  meet_prob
  mat_prob

  ;; Initial state tracking
  initial-state

]

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; SETUP PROCEDURES
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;-------------------------------------------------------------
;; Procedure: setup
;; Purpose: Initialize the model by clearing environment,
;;          creating turtles, setting global variables, and
;;          resetting simulation time.
;;-------------------------------------------------------------

to setup
  clear-all
  setup-turtles
  setup-globals
  reset-ticks
end 


;;-------------------------------------------------------------
;; Procedure: setup-turtles
;; Purpose: Create initial startups distributed by gender and
;;          initial state (non-accelerated, accelerated, funded).
;;-------------------------------------------------------------

to setup-turtles
 ask patch 0 0 [
   sprout startups0 [ new-startup0 ]
   sprout startups1 [ new-startup1 ]
   sprout startups2 [ new-startup2 ]
 ]
 trigger ;; triggers one initial success case per gender
end 

;;-------------------------------------------------------------
;; Procedure: setup-globals
;; Purpose: Initialize global counters, lists, and color state.
;;-------------------------------------------------------------

to setup-globals

  set deadline 35  ;; months

  set m0 [] set m1 [] set m2 []
  set f0 [] set f1 [] set f2 []
  set x0 [] set x1 [] set x2 []
  set g0 [] set g1 [] set g2 []

  set rf0 [] set rm0 [] set rx0 []
  set rf1 [] set rm1 [] set rx1 []
  set rf2 [] set rm2 [] set rx2 []

  set #f [] set #m [] set #g []
  set dm [] set df [] set dxx[]
  set mn [] set fn [] set xn []

  set acc-selected nobody

  set #male2   count turtles with [gender = 0 and color = green]
  set #female2 count turtles with [gender = 1 and color = green]
  set #mix2    count turtles with [gender = 2 and color = green]

  ask patches [set pcolor white]

  set #total count turtles with [color = green]

  ;; Accelerator capacity, empirical value
  set cap_acc 0.2
end 

to setup-patches2
  ask patches [
    if pxcor < 0 [
      set pcolor  brown + 4  ; Set color to white for patches in the west
    ]
    if pxcor > 0 [
      set pcolor cyan + 4    ; Set color to pink for patches in the east
    ]
    if pxcor = 0 [set pcolor white]

  ]
end 

;;-------------------------------------------------------------
;; Procedure: new-startup0
;; Purpose: Create and initialize a male-led startup.
;;-------------------------------------------------------------

to new-startup0
  set heading random 120
  fd 40
  set color (black)
  set shape "circle"
  set size 1
  set gender 0
  set funds random 280
  set want-vc False
  set initial-state 0
  set d random-poisson skills
  set accelerated False
  set tie-vc False
  set #male0 #male0 + 1
end 

;;-------------------------------------------------------------
;; Procedure: new-startup1
;; Purpose: Create and initialize a female-led startup.
;;          Human capital is lower due to gender-based disparity δ.
;;-------------------------------------------------------------

to new-startup1
  set heading random 120 + 120
  fd 40
  set color (red)
  set size 2
  set gender 1
  set funds random 280
  set want-acc False
  set want-vc False
  set initial-state 0

  ;; Human Capital is drawn from a Poisson distribution with a mean value D.
  ;; The mean D is defined as D=(1-δ)100, where δ represents the gender-based disparity across startups.
  ;; The disparity coefficient (δ) was set to 0 for male-founded startups (resulting in D=100),
  ;; 0.35 for mixed-founded startups (D=65), and 0.7 for female-founded startups (D=30).
  set d random-poisson ((1 - delta) * skills)
  set accelerated False
  set tie-vc False
  set #female0 #female0 + 1
end 

;;-------------------------------------------------------------
;; Procedure: new-startup2
;; Purpose: Create and initialize a mixed-gender startup.
;;          Receives intermediate human capital levels.
;;-------------------------------------------------------------

to new-startup2
  set heading random 120 + 240
  fd 40
  set shape "x"
  set color yellow
  set size 2
  set gender 2
  set funds random 280
  set want-acc False
  set want-vc False
  set initial-state 0
  set d random-poisson ((1 - (delta / 2) ) * skills)
  set accelerated False
  set tie-vc False
  set #mix0 #mix0 + 1
end 

;;-------------------------------------------------------------
;; Procedure: trigger
;; Purpose: Randomly selects one startup per gender and promotes
;;          it directly to a funded state (tie with VC).
;;          Serves as an initial trigger for system dynamics.
;;-------------------------------------------------------------

to trigger

  ask up-to-n-of 1 turtles with [gender = 0]
  [
    set color green
    set tie-vc True
    set selection1? 1
    set selection2? 1
    set funds funds + 140
    set initial-state 0
    fd -30
  ]

   ask up-to-n-of 1 turtles with [gender = 1]
  [
    set color green
    set tie-vc True
    set selection1? 1
    set selection2? 1
    set funds funds + 140
    set initial-state 0
    fd -30
  ]

  ask up-to-n-of 1 turtles with [gender = 2]
  [
    set color green
    set tie-vc True
    set selection1? 1
    set selection2? 1
    set funds funds + 140
    set initial-state 0
    fd -30
  ]
end 


;;-------------------------------------------------------------
;; Procedure: go
;; Purpose: Main simulation loop controlling all major processes:
;;          - updating global outcomes and indicators
;;          - social interactions (meeting, mating, brokerage)
;;          - dynamic mechanisms and lifecycle updates
;;-------------------------------------------------------------

to go
  global-outcomes
  global-indicators
  meeting-and-mating-startup
  meeting-mating-startups-brokerage
  dynamic
  life-time
  tick
  if ticks = 420 [stop]
end 


;;-------------------------------------------------------------
;; Procedure: meeting-and-mating-startup
;; Purpose: Models probabilistic meetings between startups,
;;          with interaction probabilities modulated by gender bias δ.
;;          Successful encounters create network links.
;;-------------------------------------------------------------

to meeting-and-mating-startup

  ask turtles [
    let partner one-of other turtles
    let g-self gender
    let g-partner [gender] of partner

    if g-self = 0 [
       if g-partner = 0 [; M–M
           set meet_prob meeting_chances
           set mat_prob mating_chances
          ]
       if g-partner = 1 [ ; M–F
           set meet_prob (meeting_chances * (1 - delta)) ; possibility of connecting with a woman's prob
           set mat_prob (mating_chances * (1 - delta))
          ]

       if g-partner = 2 [ ; M–Mix
           set meet_prob (meeting_chances * (1 - (delta / 2))); with probability of mix
           set mat_prob (mating_chances * (1 - (delta / 2)))
          ]
      ]

    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    if g-self = 1 [
      if g-partner = 0 [ ; F–M
           set meet_prob (meeting_chances * (1 - delta ))
           set mat_prob (mating_chances * (1 - delta ))
          ]
      if g-partner = 1 [ ; F–F
           set meet_prob (meeting_chances * (1 - delta ))
           set mat_prob (mating_chances * (1 - delta ))
          ]

      if g-partner = 2 [ ; F–Mix
           set meet_prob (meeting_chances * (1 - delta ))
           set mat_prob  (mating_chances * (1 - delta ))
          ]
     ]

    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    if g-self = 2 [

      if g-partner = 0 [ ; Mix–M
           set meet_prob (meeting_chances * (1 - (delta / 2)))
           set mat_prob  (mating_chances * (1 - (delta / 2) ))
          ]
      if g-partner = 1 [ ; Mix–F
           set meet_prob (meeting_chances * (1 - delta ))
           set mat_prob  (mating_chances * (1 - delta ))
          ]

      if g-partner = 2 [ ; Mix–Mix
           set meet_prob (meeting_chances * (1 - (delta / 2)))
           set mat_prob  (mating_chances * (1 - (delta / 2) ))
          ]
        ]
   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    if random-float 1 < meet_prob [
          if random-float 1 < mat_prob [
               create-link-with partner [ set color gray + 2  set hidden? false ]
             ]
        ]
  ]
end 

;;-------------------------------------------------------------
;; Procedure: meeting-mating-startups-brokerage
;; Purpose: Creates indirect (brokered) connections between startups
;;          sharing common neighbors, reflecting network brokerage.
;;-------------------------------------------------------------

to meeting-mating-startups-brokerage

  ask turtles with [count link-neighbors >= 2] [

    let partners n-of 2 link-neighbors
    let partner1 one-of partners
    let partner2 one-of other partners with [self != partner1]

    ask partner1 [
      let gr1 gender
      let gr2 [gender] of partner2

      ;; gender-modulated interaction probabilities
      if gr1 = 0 [ ; Male
        if gr2 = 0 [ set mat_prob mating_chances ] ;; M–M
        if gr2 = 1 [ set mat_prob (mating_chances * (1 - delta)) ] ;; M–F
        if gr2 = 2 [ set mat_prob (mating_chances * (1 - (delta / 2))) ] ;; M–Mix
      ]

      if gr1 = 1 [ ; Female
        if gr2 = 1 [ set mat_prob (mating_chances * (1 - delta)) ] ;; F–F
        if gr2 = 0 [ set mat_prob (mating_chances * (1 - delta)) ] ;; F–M
        if gr2 = 2 [ set mat_prob (mating_chances * (1 - delta)) ] ;; F–Mix
      ]

      if gr1 = 2 [ ; Mix
        if gr2 = 0 [ set mat_prob (mating_chances * (1 - (delta / 2))) ] ;; Mix–M
        if gr2 = 1 [ set mat_prob (mating_chances * (1 - delta)) ]       ;; Mix–F
        if gr2 = 2 [ set mat_prob (mating_chances * (1 - (delta / 2))) ] ;; Mix–Mix
      ]

      if random-float 1 < mat_prob [
        create-links-with other partners [ set hidden? false  set color gray + 2 ]
      ]
    ]
  ]
end 


;;-------------------------------------------------------------
;; Procedure: business-learning
;; Purpose: Models human capital growth within accelerators,
;;          conditioned by gender disparity δ.
;;-------------------------------------------------------------

to business-learning
   if acc-selected != nobody [
    ask acc-selected [
      if mating-acc = 1 [
        if gender = 1 [ set d d + (1 - delta) * skills / 2 ]
        if gender = 0 [ set d d + skills / 2]
        if gender = 2 [ set d d + (1 - delta) * skills / 4]
      ]
    ]
  ]
end 


;;-------------------------------------------------------------
;; Procedure: comunity-building
;; Purpose: Models peer networking among startups inside
;;          accelerators, with gender-dependent link probabilities.
;;-------------------------------------------------------------

to comunity-building
  if acc-selected != nobody [
                   ;if ticks mod 1 = 0 [
     let partner one-of acc-selected
     ask partner [
      if count acc-selected > 2 [
            if gender = 0 [ if random-float 1 <= 1                [ create-links-with n-of 1 other acc-selected [set color black  ]]]
            if gender = 1 [ if random-float 1 < (1 - delta)       [ create-links-with n-of 1 other acc-selected [set color red    ]]]
            if gender = 2 [ if random-float 1 < (1 - (delta / 2)) [ create-links-with n-of 1 other acc-selected [set color yellow ]]]
        ]
    ]
  ]
end 


;;-------------------------------------------------------------
;; Procedure: field-building
;; Purpose: Models external link formation between accelerated
;;          startups and others in the ecosystem, moderated by gender bias.
;;-------------------------------------------------------------

to field-building

  if acc-selected != nobody [

    let focal one-of acc-selected

    let startups-0 turtles with [color = black or color = red or color = yellow]

    if startups-0 != nobody [
      ask focal [
        if gender = 0 [
          if random-float 1 <= 1 [
            create-links-with n-of 1 other startups-0 [ set color black + 3] ; more probability to form a link
          ]
        ]

        if gender = 1 [
          if random-float 1 < ( 1 - delta) [
            create-links-with n-of 1 other startups-0 [set color red + 3 ] ; less probability to form a link
          ]
        ]

        if gender = 2 [
          if random-float 1 < ( 1 - (delta / 2)) [
            create-links-with n-of 1 other startups-0 [set color yellow + 3] ; average probability of forming a link           ]
        ]
      ]
    ]
  ]
 ]
end 

;;-------------------------------------------------------------
;; Procedure: capital&workspace
;; Purpose: Adds funding bonuses for startups during acceleration.
;;-------------------------------------------------------------

to capital&workspace
  if acc-selected != nobody [
    ask acc-selected [
      if mating-acc = 35 [ set funds funds + 18]
    ]
  ]
end 

;;-------------------------------------------------------------
;; Procedure: vc-networking
;; Purpose: Allows accelerated startups to directly apply to VCs
;;          after initial incubation.
;;-------------------------------------------------------------

to vc-networking
  if acc-selected != nobody [
    ask acc-selected [
      if (mating-acc = 1 and meeting = 0 and mating = 0) [
        set meeting 9 ;; The fact that meeting is 9 means that it applies via VC without needing to go through a third-party agent
        set want-vc True
      ]
    ]
  ]
end 

;;-------------------------------------------------------------
;; Procedure: deal-making
;; Purpose: Simplified placeholder for deal negotiation phase
;;          during acceleration.
;;-------------------------------------------------------------

to deal-making
  if acc-selected != nobody [
    ask acc-selected [
      if mating-acc = 1 [ set meeting 9]
    ]
  ]
end 



;;-------------------------------------------------------------
;; Procedure: mechanism-influence
;; Purpose: Central orchestrator calling all mechanisms of
;;          ecosystem influence (VC networking, learning,
;;          community and field building).
;;-------------------------------------------------------------

to mechanism-influence
  vc-networking business-learning
  field-building
  comunity-building
  deal-making
  capital&workspace
end 


;;-------------------------------------------------------------
;; Procedure: dynamic
;; Purpose: Controls the behavioral loop of startups per tick:
;;          desire for acceleration, applications, mechanisms,
;;          and VC interactions.
;;-------------------------------------------------------------

to dynamic

    ask turtles with [ color = black or color = red or color = yellow ] [
      set want-acc True
    ]

    ask turtles with [tie-vc = False] [
      set want-vc True
    ] ; they can be no or yes accelerated apply-vc


    applying-to-accelerator

    mechanism-influence

    meeting-vc-by-brokerage

    mating-vc ; mechanism for connecting to vc
end 


;-------------------------------------------------------------
;; Procedure: applying-to-accelerator
;; Purpose: Simulates the application and selection process for
;;          accelerators. The acceptance rate is constrained by
;;          capacity and gender inclusion parameters.
;;          Selected startups gain accelerated status (blue color).
;;-------------------------------------------------------------

to applying-to-accelerator
;;On the deadline date, it is decided which startups enter the program, which lasts 6 months (24 ticks or weeks).
  if (deadline = 1)[

        let male-0 turtles with   [want-acc = True and gender = 0 and color = black] ;only those that are state 0
        let female-0 turtles with [want-acc = True and gender = 1 and color = red] ; they can only enter state 0
        let mix-0 turtles with    [want-acc = True and gender = 2 and color = yellow] ;only those that are state 0

        let capacity cap_acc * (startups0 + startups1 + startups2) ;Percentage of the total population that can enter the acceleration program

        let want_acc_set (turtle-set male-0 female-0  mix-0) ;Startups that want to apply

        ;; Startups that did not enter in the previous period are taken into account, to prevent them from always entering consecutively.

        let female-00 female-0 with [selection1? = -1] ;female startups
        let male-00 male-0 with [selection1? = -1] ;male startups
        let mix-00 mix-0 with [selection1? = -1] ;mix startups


        ifelse ticks < 36 [ ; Initially, there are no people who are rejected; this only applies to first-time admissions to the accelerator program
         if ((count female-0) >= (capacity * female%) and (count mix-0) >= (capacity * mix%) and (count male-0) >= capacity * (1 - female% - mix%)  ) [
        ;; is maintainded 1=female% + mix% + male%  (female and mix is input variable)

               let acc-selected0 max-n-of (capacity * (1 - female% - mix%))  male-0 [d] ;Selection of male teams that want to be accelerated
               let acc-selected1 max-n-of (capacity * female%) female-0 [d] ;Selection of female teams that want to be accelerated
               let acc-selected2 max-n-of (capacity * mix%) mix-0 [d] ;Selection of mixed teams that want to be accelerated


               set acc-selected (turtle-set acc-selected0 acc-selected1 acc-selected2)


               ask acc-selected [
                         set mating-acc 35 ;time during the accelerator
                         set color blue
                         set accelerated True ;it connects to an accelerator for 24 ticks
                         set initial-state 1
                         set selection1? 1 ;it is set to 1 to calculate the positive effect of the subjective norm
                         fd -10
                         set accelerated True
                         ;set want-acc False
                         if gender = 0 [set #male1 #male1 + 1]
                         if gender = 1 [set #female1 #female1 + 1]
                         if gender = 2 [set #mix1 #mix1 + 1]

                         ]
               ]


       ask want_acc_set with [not member? self acc-selected] [ set want-acc  False    set selection1? -1 ]

    ][

        if (  (count male-0) >= capacity * (1 - female% - mix%)   and  (count female-0) >= capacity * female%    and    (count mix-0) >= capacity * mix%   ) [

               let acc-selected0 max-n-of (capacity * (1 - female% - mix%))  male-0 [d]
               let acc-selected1 max-n-of (capacity * female%) female-0 [d]
               let acc-selected2 max-n-of (capacity * mix%) mix-0 [d]

               set acc-selected (turtle-set acc-selected0 acc-selected1 acc-selected2 )

               ask acc-selected [
                         set mating-acc 35 ;;time during the accelerator
                         set color blue
                         set accelerated True ;; It connects to an accelerator for 24 ticks
                         set initial-state 1
                         set selection1? 1    ;; It is set to 1 to calculate the positive effect of the subjective norm
                         fd -10
                         set accelerated True
                         set want-acc False
                         if gender = 0 [set #male1 #male1 + 1]
                         if gender = 1 [set #female1 #female1 + 1]
                         if gender = 2 [set #mix1 #mix1 + 1]
                        ]
             ]


        ask want_acc_set with [not member? self acc-selected] [ set selection1? -1 ] ;set want-acc  False
    ]
  ]
end 

;;-------------------------------------------------------------
;; Procedure: meeting-vc-by-brokerage
;; Purpose: Models VC meetings that occur via indirect ties,
;;          startups linked to others already
;;          connected with a VC may gain meeting opportunities.
;;-------------------------------------------------------------

to meeting-vc-by-brokerage ; mecanismo para conocer a traves de otra empresa al vc

  ask turtles with [want-vc = True ] [; and accelerated = False
          let vc-neighbors link-neighbors with [tie-vc = True] ;; neighbors who know a vc, are or were linked to a vc.

          if (any? vc-neighbors) [ if (meeting = 0 and mating = 0)[ set meeting 15 ]]
                                  ; delay time in the evaluation to decide whether or not to grant the capital.
   ]
end 


;;-------------------------------------------------------------
;; Procedure: mating-vc
;; Purpose: Selects VC allocation mechanism according to interface
;;          setting ("traditional" or "prefered").
;;-------------------------------------------------------------

to mating-vc
  if vc-selection = "traditional" [traditional-vc-selection]
  if vc-selection = "prefered" [prefered-vc-selection]
end 

;;-------------------------------------------------------------
;; Procedure: traditional-vc-selection
;; Purpose: VC funding mechanism without gender bias.
;;          Selects the top-ranked startup based on combined
;;          human capital (d) and social network (social-net).
;;-------------------------------------------------------------

to traditional-vc-selection
;; The investor chooses the best startup from a final ranking. This final ranking is derived from two previous rankings (human capital and successful role models).
;; The rankings from these two lists are averaged to create a final ranking. The startup with the highest ranking in the final ranking receives funding for each tick.
;if ticks mod 1 = 0 [

  let awaiting-VC-set turtles with [want-vc = True and meeting = 1 and mating = 0 and d > 0 ]
  let rank-d sort-by [[a b] -> [d] of a > [d] of b] awaiting-VC-set
  let rank-social sort-by [[a b] -> [social-net] of a > [social-net] of b] awaiting-VC-set

  if  any? awaiting-VC-set [


     ask awaiting-VC-set [

          ;; Successful neighbors separated by gender.

          set my-alters_m count  link-neighbors with [gender = 0 and selection2? =  1] ;; successful male-led startup
          set my-alters_f count  link-neighbors with [gender = 1 and selection2? =  1] ;; successful female-led startup
          set my-alters_x count  link-neighbors with [gender = 2 and selection2? =  1] ;; successful mix-led startup

          set social-net    my-alters_m +   my-alters_f +     my-alters_x   ;; successful social network of each startup in awaiting-VC-set


          ;; Organization in the human capital and social network rankings, in addition to the final ranking based on averaging the previous ones.

          let pos-d position self rank-d
          let pos-s position self rank-social
          set rank-final ((pos-d + pos-s ) / 2)  ;; +2 to convert from index (0).
        ]


      set selected-by-vc min-one-of awaiting-VC-set [rank-final]

      ask selected-by-vc [
                              set mating 140
                              set color green
                              set tie-vc True
                              set funds funds + 140
                              set selection2? 1
                              ifelse initial-state = 0 [;; It receives funding but is not from an accelerator program. Gender segregation.
                                                        fd -30
                                                        if gender = 0 [set not-come-acc0 not-come-acc0 + 1]
                                                        if gender = 1 [set not-come-acc1 not-come-acc1 + 1]
                                                        if gender = 2 [set not-come-acc2 not-come-acc2 + 1]
                                                      ]
                                                       [;; It receives funding and comes from an accelerator program. Gender separation.

                                                        fd -20

                                                        if gender = 0 [set come-acc0 come-acc0 + 1]
                                                        if gender = 1 [set come-acc1 come-acc1 + 1]
                                                        if gender = 2 [set come-acc2 come-acc2 + 1]
                                                      ]



                              if gender = 0 [set #male2 #male2 + 1]
                              if gender = 1 [set #female2 #female2 + 1]
                              if gender = 2 [set #mix2 #mix2 + 1]
                              set #total #total + 1
                              set want-vc False


                           ]

         ask awaiting-VC-set with [self != selected-by-vc] [ set want-vc  False    set selection2? -1 ] ; not selected startups

      ]
 ;]
end 

;;-------------------------------------------------------------
;; Procedure: prefered-vc-selection
;; Purpose: VC mechanism with positive discrimination.
;;          Prioritizes female-led startups, then mixed, then male.
;;-------------------------------------------------------------

to prefered-vc-selection

; The investor chooses the best startup from a final ranking. This final ranking is derived from two previous rankings (human capital and successful role models).
; The rankings from these two lists are averaged to create a final ranking. The startup with the highest ranking in the final ranking receives funding for each tick.

  let awaiting-VC-set turtles with [want-vc = True and meeting = 1 and mating = 0 and d > 0  ]
  let rank-d sort-by [[a b] -> [d] of a > [d] of b] awaiting-VC-set
  let rank-social sort-by [[a b] -> [social-net] of a > [social-net] of b] awaiting-VC-set

  if any? awaiting-VC-set [

    ask awaiting-VC-set [
      ;; Vecinos exitosos separados por genero.
      set my-alters_m count  link-neighbors with [gender = 0 and tie-vc =  True] ; successful male-led startup
      set my-alters_f count  link-neighbors with [gender = 1 and tie-vc =  True] ; successful female-led startup
      set my-alters_x count  link-neighbors with [gender = 2 and tie-vc =  True] ; successful mix-led startup

      ; successful social network of each startup in awaiting-VC-set
      set social-net  my-alters_m +  my-alters_f + my-alters_x

      ; Organization in the human capital and social network rankings, in addition to the final ranking based on averaging the previous ones.
      let pos-d position self rank-d
      let pos-s position self rank-social
      set rank-final ((pos-d + pos-s ) / 2)
    ]

    ; Preferential selection according to gender
    let males     awaiting-VC-set with [gender = 0]
    let females   awaiting-VC-set with [gender = 1]
    let mixes     awaiting-VC-set with [gender = 2]

    ifelse any? females [
      set selected-by-vc min-one-of females [rank-final]
    ] [
      ifelse any? mixes [
        set selected-by-vc min-one-of mixes [rank-final]
      ] [
        if any? males [
          set selected-by-vc min-one-of males [rank-final]
        ]
      ]
    ]

     ; let selected-by-vc min-one-of awaiting-VC-set [rank-final]

     ask selected-by-vc [
      set mating 140
      set color green
      set tie-vc True
      set funds funds + 140
      set selection2? 1

      ifelse initial-state = 0 [ ;;It receives funding but is not from an accelerator program. Gender segregation.
        fd -30
        if gender = 0 [set not-come-acc0 not-come-acc0 + 1]
        if gender = 1 [set not-come-acc1 not-come-acc1 + 1]
        if gender = 2 [set not-come-acc2 not-come-acc2 + 1]
      ]
      [; It receives funding and comes from an accelerator program. Gender separation.
        fd -20
        if gender = 0 [set come-acc0 come-acc0 + 1]
        if gender = 1 [set come-acc1 come-acc1 + 1]
        if gender = 2 [set come-acc2 come-acc2 + 1]
      ]

      if gender = 0 [set #male2 #male2 + 1]
      if gender = 1 [set #female2 #female2 + 1]
      if gender = 2 [set #mix2 #mix2 + 1]
      set #total #total + 1
      set want-vc False
    ]

    ask awaiting-VC-set with [self != selected-by-vc] [
      set want-vc  False
      set selection2? -1  ;; not selected startups
    ]
  ]
end 


;;-------------------------------------------------------------
;; Procedure: life-time
;; Purpose: Handles time decay, fund depletion, exit and replacement
;;          of startups, maintaining population stability.
;;-------------------------------------------------------------

to life-time
  if (deadline > 0) [ set deadline deadline - 1 ]
  if (deadline = 0) [ set deadline 35 ]

  ask turtles [
    ; Subtract one for each tick (iteration) in all periods
    if (funds > 0)              [set funds funds - 1]
    if (mating-acc > 0 )        [set mating-acc mating-acc - 1]
    if (accelerated-period > 0) [set accelerated-period accelerated-period  - 1]
    if (meeting > 0 )           [set meeting meeting - 1]
    if (mating > 0)             [set mating mating - 1]

    ;; End of VC cycle
    if mating = 1 [
        ;; The link with the VC is removed, if the startup was accelerated, it remains accelerated for a specified period. If it is not accelerated, it returns to state zero (want-vc=false want_acc=false).
        set tie-vc False
        ifelse initial-state = 1 [
          set accelerated True
          set want-vc False
          set color blue
          set accelerated-period 1
          set initial-state 1
          fd  20
        ]
        [
          set accelerated False
          set want-vc False
          ;set want-acc False
          if gender = 0 [set color black fd 30]
          if gender = 1 [set color red fd 30]
          if gender = 2 [set color yellow fd 30]
          set initial-state  0
        ]


    ];; end of mating state 1


    if mating-acc = 1 [ set accelerated-period 10 ] ;It gives him 10 more ticks of life

    ;; Return to pre-acceleration state
    if (accelerated-period = 1 and color = blue)
    [ ;The period of accelerated growth is ending. It returns to an initial state: not accelerated, not financed
      if gender = 0 [set color black ]
      if gender = 1 [set color red]
      if gender = 2 [set color yellow]
      set accelerated False
      set initial-state 0
      set want-vc False
      ;set want-acc False
      ;set  accelerated-period 0
      fd 10
    ]

    if funds = 0 [die]; If funds are 0, the company leaves the system

    ; New turtles are created in the same way as at the beginning, to maintain the initial number of the system (whether male, female or mix)
    while [count turtles with [gender = 0] < startups0 ] [
      ask patch 0 0 [
        let born-st0 startups0 - (count turtles with [gender = 0])
        sprout (born-st0) [ new-startup0 ]
      ]
    ]

    while [count turtles with [gender = 1] < startups1 ] [
      ask patch 0 0 [
        let born-st1 startups1 - (count turtles with [gender = 1])
        sprout (born-st1) [new-startup1]
      ]
    ]

     while [count turtles with [gender = 2] < startups2 ] [
      ask patch 0 0 [
        let born-st2 startups2 - (count turtles with [gender = 2])
        sprout (born-st2) [ new-startup2 ]
      ]
    ]
  ]
end 

;;-------------------------------------------------------------
;; Procedure: global-outcomes
;; Purpose: Computes global state counts, averages, and ratios
;;          by gender and funding status at each tick.
;;-------------------------------------------------------------

to global-outcomes

  ;; Each tick counts the startups by gender under different conditions
  set male0 count turtles with [color = black] ;male teams non-accelerated and not-funded
  set male1 count turtles with [color = blue and gender = 0] ;male teams non-funded and accelerated
  set male2 count turtles with [color = green and gender = 0] ;male teams funded.

  set female0 count turtles with [color = red]
  set female1 count turtles with [color = blue and gender = 1]
  set female2 count turtles with [color = green and gender = 1]

  set mix0 count turtles with [color = yellow]
  set mix1 count turtles with [color = blue and gender = 2]
  set mix2 count turtles with [color = green and gender = 2]

  ;; Average human capital in the Network (average of all startups by gender)
  set dmale   mean [d] of turtles with [gender = 0]
  set dfemale mean [d] of turtles with [gender = 1]
  set dmix    mean [d] of turtles with [gender = 2]

  ;; Average of successful social capital in the network (average of all startups by gender)
  set male_net   mean [social-net]  of turtles with [gender = 0]
  set female_net mean [social-net]  of turtles with [gender = 1]
  set mix_net    mean [social-net]  of turtles with [gender = 2]

  ;; Gaps in the network at every tick
  if female2 > 0 [set gap-m/f male2 / female2]
  if mix2 > 0    [set gap-m/x male2 / mix2]
  if female2 > 0 [set gap-x/f mix2 / female2]

  ;; Proportion of non-accelerated and non-funded startups
  let all0 #male0 + #female0 + #mix0

  if all0 > 0 [
     set ratef0   #female0 / all0
     set ratem0   #male0   / all0
     set ratemix0 #mix0  / all0
  ]


  ;; Proportion of startups accepted for acceleration
  let all1 #male1 + #female1 + #mix1

  if all1 > 0 [
    set ratef1 #female1 / all1
    set ratem1 #male1   / all1
    set ratemix1 #mix1  / all1
  ]

  ;; Proportion of startups accepted for funding
  let all2 #male2 + #female2 + #mix2

  if all2 > 0 [
    set ratef2 #female2 / all2
    set ratem2 #male2   / all2
    set ratemix2 #mix2  / all2
  ]

  ;; Population gaps (values are taken accumulated over time)
  ;; Startups without acceleration or funding
  if #female0 > 0 [set gap_fm0 #male0 / #female0]
  if #female0 > 0 [set gap_fmix0 #mix0 / #female0]
  if #mix0 > 0    [set gap_mixm0 #male0 / #mix0]


  ;; Startups accepted for acceleration
  if #female1 > 0 [set gap_fm1 #male1 / #female1]
  if #female1 > 0 [set gap_fmix1 #mix1 / #female1]
  if #mix1 > 0    [set gap_mixm1 #male1 / #mix1]

  ;; Funded Startups
  if #female2 > 0 [set gap_fm2 #male2 / #female2]
  if #female2 > 0 [set gap_fmix2 #mix2 / #female2]
  if #mix2 > 0    [set gap_mixm2 #male2 / #mix2]
end 


;;-------------------------------------------------------------
;; Procedure: global-indicators
;; Purpose: Stores time series of indicators (counts, ratios, means)
;;          for plotting and later analysis of emergent trends.
;;-------------------------------------------------------------

to global-indicators

  set m0 lput male0 m0
  set m1 lput male1 m1
  set m2 lput male2 m2

  set f0 lput female0 f0
  set f1 lput female1 f1
  set f2 lput female2 f2

  set x0 lput mix0 x0
  set x1 lput mix1 x1
  set x2 lput mix2 x2

  set rf0 lput ratef0 rf0
  set rm0 lput ratem0 rm0
  set rx0 lput ratemix0 rx0

  set rf1 lput ratef1 rf1
  set rm1 lput ratem1 rm1
  set rx1 lput ratemix1 rx1

  set rf2 lput ratef2 rf2
  set rm2 lput ratem2 rm2
  set rx2 lput ratemix2 rx2

  set g0 lput gap-m/f g0
  set g1 lput gap-m/x g1
  set g2 lput gap-x/f g2

  set mn lput male_net mn
  set fn lput female_net fn
  set xn lput mix_net xn

  set dm  lput dmale dm
  set df  lput dfemale df
  set dxx lput dmix dxx

  set mumale_net   mean mn
  set mufemale_net mean fn
  set mumix_net    mean xn

  set mudmale   mean dm
  set mudfemale mean df
  set mudmix    mean dxx

  set mumale0 mean m0
  set mumale1 mean m1
  set mumale2 mean m2

  set mufemale0 mean f0
  set mufemale1 mean f1
  set mufemale2 mean f2

  set mumix0 mean x0
  set mumix1 mean x1
  set mumix2 mean x2

  set murf0 mean rf0
  set murm0 mean rm0
  set murx0 mean rx0

  set murf1 mean rf1
  set murm1 mean rm1
  set murx0 mean rx1

  set murf2 mean rf2
  set murm2 mean rm2
  set murx0 mean rx2

  set mugap-m/f mean g0
  set mugap-m/x mean g1
  set mugap-x/f mean g2
end 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;    END
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

There are 4 versions of this model.

Uploaded by When Description Download
GUSTAVO CARREON about 2 hours ago We adjusted the interface elements Download this version
GUSTAVO CARREON about 3 hours ago new version Download this version
GUSTAVO CARREON about 4 hours ago We removed the call to the NW extension; it is not necessary. Download this version
GUSTAVO CARREON about 17 hours ago Initial upload Download this version

Attached files

File Type Description Last updated
Impact of Positive Discrimination in Accelerators on the Financial Gender Gap: An Agent-Based Simulation.png preview Preview for 'Impact of Positive Discrimination in Accelerators on the Financial Gender Gap: An Agent-Based Simulation' about 17 hours ago, by GUSTAVO CARREON Download

This model does not have any ancestors.

This model does not have any descendants.