Skip to main content
DoneThat

AI Adoption GuideHRPlan

Internal mobility supply forecaster

Predicts which existing employees will be ready for upcoming open roles, reducing external hiring demand.

HR processPlanSourceSelectHireOnboardDevelopRewardExit

By Don, DoneThat’s AI coach · updated

A readiness flag is not a placement

A supply forecast for internal mobility should return a readiness flag with two attachments: the skills evidence that supports the flag, and the vintage of the history used. It should not assign a person to a role. It should not invent a readiness percent.

Talent planning still decides whether to recruit internally. The forecast shrinks what is unknown: which current employees look prepared for roles you already expect to open, so the internal versus external choice rests on a file you can audit.

If a row has a flag and no cite, the row is not a forecast. It is a guess dressed as output. If a planner treats a flag as an assignment, the person is moved before anyone has checked manager intent, location, hours, or interest. If someone converts a thin file into a percent, the number looks precise and travels farther than the evidence.

HRIS, talent-marketplace, and skills platforms as a class (Workday, Eightfold, Gloat, Lattice) may already store jobs, taxonomies, or internal-move signals. Treat them as sources of records, not as a substitute for the cite-and-vintage rule. Whatever system you load from, the output contract stays the same.

Load the roles file and the skills file first

Do not run the forecast against a vacancy rumor. Load two files a planner can open without the model.

The roles file is the upcoming demand you are willing to plan against: role title, location or work pattern if it changes who is eligible, required skills with the level you actually mean, and the window when the seat needs to be filled. If a requirement is a license or a regulated credential, write it in the file. Implied requirements that live only in a hiring manager's head will not be cited later.

The skills file is the supply side: employee, skill, evidence type, and date of last supporting history. Evidence can be completed work, an assessed proficiency, a credential, or a documented stretch assignment. A skill with no date cannot pass a vintage check. A skill with a date and no artifact pointer is a claim you cannot reopen.

If some skills in the file were inferred from tickets, documents, or other work records, keep that inference path visible. Pair the load with skills inference from work artifacts so reviewers can tell observed work from a profile checkbox.

Run a completeness pass before any flag. Roles with missing required skills stay out of the forecast. People with empty skills rows stay out of the candidate set for those roles. Completeness is not a score. It is a gate.

Flag people only when the cite and vintage are present

For each upcoming role, walk the people whose skills file covers the required set. Raise a readiness flag only when every required skill has a cite and a history date you are willing to treat as usable for that role.

The cite is the pointer a reviewer can follow: which project, credential, assessment, or work record. The vintage is the date on that history, shown next to the flag so a planner can see whether the evidence is recent or years old. Do not collapse vintage into a freshness adjective. Print the date.

Walk through one opening. A maintenance supervisor seat is expected in the next planning cycle. The roles file lists lockout-tagout authorization, shift-lead coverage, and vendor coordination as required. One technician has a lockout-tagout record from a plant outage, documented shift-lead coverage on shutdown weekends, and vendor coordination notes on a pump replacement, each with a date. The forecast flags that person for the supervisor seat and lists those three cites with their dates. Another technician has leadership on a profile with no work record and no date. That person is not flagged. The empty cell is the correct output.

Do not add a percent because the first person has three cites and the second has none. A percent would imply a scale you did not measure. The flag is binary relative to the roles file you loaded: evidenced against the required set, or not.

Where an internal opportunity matcher is in use, keep the jobs distinct. Matching surfaces possible moves. This forecast answers a planning question: who in the current file looks ready for roles you already intend to open. Do not merge the two into a ranked slate.

Leave the cell empty when the file is thin

Empty stays empty. If the skills file has no cite for a required skill, do not flag the person and do not fill the gap with a generated rationale.

Thin files are common: new hires, people whose work sits in systems you did not load, contractors converted to employees without a skills backfill, or roles whose required skills were never written down. The forecast should make that thinness visible as blanks, not as a shortlist of everyone in the department.

A flag with no skills cite is a failure mode even if the name feels obvious to a planner who already knows the person. Informal knowledge can still inform the later planning conversation. It does not belong in the flagged column.

If you later enrich the skills file, re-run. Do not backfill old flags from memory. The vintage on new cites should be the vintage of the new history, not the date you re-ran the job.

External rediscovery is a different supply channel. If the open role still needs an outside search, ats candidate rediscovery is the prior-applicant file. It is not a substitute for blanks in the employee file.

Talent planning still chooses internal versus external

The forecast does not assign. After flags exist, talent planning still decides whether to recruit internally for that seat, open an external req, or do both.

That decision includes constraints the skills file will not settle: relocation, shift, compensation band, manager capacity to release the person, and whether the person wants the move. Treating a flag as assigned skips those checks and turns a quality output into an operational error.

Use the flagged set as the internal supply estimate for the planning window. If nobody is flagged, the honest reading is that the current file does not show internal readiness for that role, not that the team has no capable people. That reading should feed strategic skills gap analysis: the gap is the required skill with no cited, current history in the supply file.

When you choose internal, the next human steps are interest, manager alignment, and a development or stretch plan if vintage is old even though the cite exists. When you choose external, keep the blanks. Do not convert unflagged employees into a bench score for a dashboard.

The same vendor class that holds the two files can display flags. Display is not ownership of the recruit-internal decision.

What to refuse at review time

Before a planning meeting, reject three outputs on sight.

Reject a readiness flag that does not cite skills evidence. Ask for the pointer or clear the flag.

Reject any view that lists a person against a role as if the seat were already theirs. The forecast may sit next to a draft org chart. It is not the org chart.

Reject a readiness percent, a 0-100 score, or a high, medium, or low label that was not defined in the roles file as an evidence rule. If you need a second label, use vintage bands you defined in advance (history within a stated month window versus older), still with the date visible. Do not invent the band after seeing the names.

If those three refusals hold, the working page is short: two files in, flags with cites and dates out, blanks where the file is thin, and a human decision about internal versus external demand.

Is this worth automating for you?

Whether this pays back depends on how much time it takes your team today. Most teams estimate that from memory, and the estimate is usually wrong in one direction or the other.

DoneThat reconstructs where the time actually went, with no timers to forget, so you can measure the baseline before committing to a project and check the gain afterward.

Measure the baseline first