Start free

Monthly performance review: scoring, ranking, ABCD grading and the questions that follow, as one auditable line

Two things break a performance line: an **opaque formula** and an **unstable answer**. Ask the same question four times, get four numbers, and nobody dares to take any of them into a review conversation. Here is how it runs after handover — the model understands the question and phrases the answer; the engine does the arithmetic.

Who this is for
HR, HRBPs, department heads, and managers who need to see how a team is distributed
Start free
01

Where it used to get stuck

01

Composite scores and ABCD grades are built by hand in Excel, every month

Three weighted scores become a composite. The composite is ranked, grade quotas are set from the period's business completion rate, grades are forced down the ranking, and departments adjust within their quota. Three manual steps, redone monthly — and a different person gets a different result.

02

Past months survive only as a grade letter, so trends mean reading the sheet by hand

The sheet is one row per person: the current month has three scores and a total, and each earlier month is a single grade column. Answering 'how did this person move from January to May' or 'who has two consecutive D's' means scanning rows, and with enough people something gets missed.

03

A general chat tool produces numbers that look right and cannot be checked

Let a model do the arithmetic inside its prose and the same question returns different figures on different runs. It reads a hire date as the raw spreadsheet serial and repeats it. Ask how many people got a D and it gives a percentage, not names. None of that can go into a review.

02

How it runs once handed over

01

Definitions are issued first; calculation starts after

Scoring items, weights, the three-step distribution rule, the org hierarchy and the Excel column mapping are issued to the desktop app as company configuration. Until the weights are confirmed, the composite is taken from the sheet's own total column rather than re-weighted.

02

The only data source is the review sheet you upload

Review sheets rarely have an API, so the source is the Excel file uploaded in the conversation. It is captured as a snapshot with its column definitions. On a later question with no new upload, the most recent matching snapshot is claimed; if there is none, it asks you to upload rather than going looking for a substitute.

03

Calculation runs through a deterministic engine; the model only handles the conversation

Per-person multi-month detail, a full roster for a group or department, threshold filters like 'at least two D's', and the list of people matching a given trend are four query types the engine computes under one set of definitions. The answer is identical no matter how many times you ask.

04

'Consistently' and 'trending' are computed separately

Consistently improving means every month is strictly better than the one before. Trending up means the end of the period is better than the start, with fluctuation allowed in between. The business treats these as different questions, so the engine returns a separate list for each.

05

Name lists follow the asker's role

A department head sees the department, a team lead the team, a group lead the group. People who have left or are not in the review are excluded automatically and never appear in a distribution or a list.

03

Where it stops for a person

  • Before the first calculation, the issued definitions (items, weights, distribution rule) are printed back for HR to confirm
  • Distributions and alert lists with names stay inside the asker's visibility scope; names outside it do not appear in the answer
  • Sending a result to anyone waits for a person to approve it; a changed definition applies from the next run
How it is accepted
  • Re-run a month that was already graded by hand; the ABCD distribution and the lists should match
  • Ask the same question four times; the four answers should be identical word for word
  • Sample a few people and check hire date and every month's grade against the original sheet
04

Where the definitions come from

Scoring items and weights
Company configuration. Until weights are confirmed, the composite comes from the sheet's total column
ABCD distribution
Three steps: quotas from the period's completion rate → forced down the composite ranking → department adjustment within quota
Trend
Consistently up / down = strict month over month; trending up / down = end versus start, fluctuation allowed
Visibility
Department > team > group, trimmed to the asker's role; no names pinned in configuration
Exclusions
People who have left or are not being reviewed are outside every statistic
06

Questions

Our scoring items and weights are different from everyone else's. Does it still work?

Items, weights and grading rules are configuration issued per company, not code. They are calibrated once at delivery; a later change to the weights is a configuration change, with no app update.

Why the emphasis on a deterministic engine?

Because these numbers go into review conversations. Arithmetic done inside a model's prose returns different answers to the same question and cannot be audited. The engine computes under fixed definitions, the model only phrases the result, and every figure traces back to the sheet.

Can it connect to our review system directly?

Most companies run the monthly review in Excel with no API, so this line works from the uploaded sheet. Tables in Feishu Base and Feishu Docs can be read as well.

Can a group lead see another group's list?

No. Visibility is trimmed by role as a hard constraint, not a prompt. The company-wide view is available to HR and authorised management only.