LIS MBA Shift2 Crit2

LIS MBA Shift2 Crit2 preview image

1 collaborator

Default-person Mike Sheerin (Author)

Tags

(This model has yet to be categorized with any tags)
Visible to everyone | Changeable by the author
Model was written in NetLogo 7.0.3 • Viewed 8 times • Downloaded 0 times • Run 0 times
Download the 'LIS MBA Shift2 Crit2' 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?

(a general understanding of what the model is trying to show or explain)

HOW IT WORKS

(what rules the agents use to create the overall behavior of the model)

HOW TO USE IT

(how to use the model, including a description of each of the items in the Interface tab)

THINGS TO NOTICE

(suggested things for the user to notice while running the model)

THINGS TO TRY

(suggested things for the user to try to do (move sliders, switches, etc.) with the model)

EXTENDING THE MODEL

(suggested things to add or change in the Code tab to make the model more complicated, detailed, accurate, etc.)

NETLOGO FEATURES

(interesting or unusual features of NetLogo that the model uses, particularly in the Code tab; or where workarounds were needed for missing features)

RELATED MODELS

(models in the NetLogo Models Library and elsewhere which are of related interest)

CREDITS AND REFERENCES

(a reference to the model's URL on the web if it has one, as well as any other necessary credits, citations, and links)

Comments and Questions

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

Click to Run Model

breed [candidates candidate]
breed [employers employer]
breed [jobs job]

globals [
  avg_match_quality
  transition_success_rate
  false_negatives
]

candidates-own [
  true_capability
  narrative_strength
  evidence_strength
  career_state
  selected?
]

employers-own [
  narrative_weight
  evidence_weight
]

jobs-own [
  required_capability
  filled?
  chosen_capability
  chosen_state
]

to setup
  clear-all

  create-candidates num-candidates [
    setxy random-xcor random-ycor
    set shape "person"
    set selected? false
    set true_capability random 101

    ifelse random-float 1 < transition-share
    [
      set career_state "transition"
      set color orange

      ; 🔴 Strong distortion: narrative severely underestimates capability
      set narrative_strength bounded-score
        (true_capability - 50 + centered-random (noise-level * 3))

      ; 🟢 Evidence remains close to true capability
      set evidence_strength bounded-score
        (true_capability + centered-random (noise-level / 2))
    ]
    [
      set career_state "standard"
      set color blue

      ; narrative slightly inflated but noisy
      set narrative_strength bounded-score
        (true_capability + 10 + centered-random (noise-level * 2))

      ; evidence still cleaner
      set evidence_strength bounded-score
        (true_capability + centered-random (noise-level / 2))
    ]
  ]

  create-employers num-employers [
    setxy random-xcor random-ycor
    set shape "square"
    set color red

    if market-mode = "narrative-first" [
      set narrative_weight 0.9
      set evidence_weight 0.1
    ]

    if market-mode = "evidence-first" [
      set narrative_weight 0.2
      set evidence_weight 0.8
    ]
  ]

  create-jobs num-jobs [
    setxy random-xcor random-ycor
    set shape "circle"
    set color green
    set required_capability random 101
    set filled? false
    set chosen_capability -1
    set chosen_state ""
  ]

  calculate_metrics
  reset-ticks
end 

to go
  ask candidates [
    set selected? false
  ]

  ask jobs [
    set filled? false
    set chosen_capability -1
    set chosen_state ""
  ]

  ask jobs [
    let hiring_employer one-of employers

    let ranked_candidates sort-by
      [[a b] -> candidate_score a hiring_employer > candidate_score b hiring_employer]
      candidates

    let winner first ranked_candidates

    set filled? true
    set chosen_capability [true_capability] of winner
    set chosen_state [career_state] of winner

    ask winner [
      set selected? true
    ]
  ]

  calculate_metrics
  tick
end 

to-report candidate_score [cand emp]
  let narrative_score [narrative_strength] of cand
  let evidence_score [evidence_strength] of cand

  report (([narrative_weight] of emp * narrative_score) +
          ([evidence_weight] of emp * evidence_score))
end 

to calculate_metrics
  let filled_jobs jobs with [filled?]

  ifelse any? filled_jobs
  [
    set avg_match_quality
      mean [100 - abs(required_capability - chosen_capability)] of filled_jobs
  ]
  [
    set avg_match_quality 0
  ]

  let transition_candidates candidates with [career_state = "transition"]

  ifelse any? transition_candidates
  [
    set transition_success_rate
      (count transition_candidates with [selected?] / count transition_candidates)
  ]
  [
    set transition_success_rate 0
  ]

  let strong_transition_candidates candidates with
    [career_state = "transition" and true_capability > 70]

  ifelse any? strong_transition_candidates
  [
    set false_negatives
      count strong_transition_candidates with [not selected?]
  ]
  [
    set false_negatives 0
  ]
end 

to-report bounded-score [raw_score]
  report max list 0 min list 100 raw_score
end 

to-report centered-random [spread]
  report (random-float spread) - (spread / 2)
end 

There is only one version of this model, created about 1 month ago by Mike Sheerin.

Attached files

File Type Description Last updated
LIS MBA Shift2 Crit2.png preview Preview for 'LIS MBA Shift2 Crit2' about 1 month ago, by Mike Sheerin Download

This model does not have any ancestors.

This model does not have any descendants.