performancetraininghr

A Performance Foundation for Growing Teams: Goals, 1:1s, and Training (2026)

Why small HR teams are adopting lightweight performance tooling — goals with progress and threaded comments, recurring 1:1 series with private notes, and auto-assigned training by department and role.

By AnHourTec Team||7 min read
A Performance Foundation for Growing Teams: Goals, 1:1s, and Training (2026)

The Performance Gap at 30 Employees

Somewhere between 20 and 50 employees, every growing company hits the same wall. The informal "we all know each other" model of performance management stops working. Managers forget what their reports committed to last month. Goals stop being written down. Training that was supposed to be annual becomes never. The first awkward review is scheduled because someone asked for a raise and HR realized there's no paper trail.

At that scale, buying a full performance suite from a large HRIS vendor is overkill. What small HR teams need is a lightweight layer: goals, recurring 1:1s, and an auto-assigning training system. This post covers what each looks like when designed for the 30-to-150 employee band.

Configuration Before Features

A performance module should ship with a settings page that makes it legitimate to say "we're not using goals this year." Forcing every organization into every feature is how you get half-filled goal sheets and abandoned 1:1 series.

The settings worth exposing:

  • Who gets goals — none, all employees, or a specific subset
  • Cascading goals — whether employee goals can be linked to their manager's goals
  • 1:1 enablement — whether the 1:1 module is on at all

A ten-person startup might turn on 1:1s and leave goals off. A fifty-person services firm might do the opposite. Both are correct.

Goals That People Actually Update

Goal-tracking fails in most companies because the UI for updating a goal is worse than a Google Doc. The bar is low. Clear it.

A usable goal card shows title, description, progress (0-100%), status, due date, category, and owner. Progress is a slider, not a text field. Status is a dropdown. Updates take five seconds.

The card expands to show threaded comments with timestamps and author avatars. This is where the conversation happens: "Moved the launch date, pushing this to 60% instead of 75%," and the manager replies two days later. The comment thread is the audit trail.

1:1s as a Recurring Series

A 1:1 is not a single meeting. It is a series with a frequency (weekly, biweekly, monthly, or one-time), a first meeting date, and two participants. Everything else — agenda items, notes, action items — attaches to the series.

The layout that works is side-by-side notes: a shared column visible to both participants, and a private column visible only to the author. Managers need private notes. They use them to track hunches, performance concerns, and context they'll pull into a review six months later. Pretending managers won't keep private notes just means they'll keep them in a separate doc you can't see or back up.

The 1:1 view should also include an inline profile preview of the other participant, so the manager has hire date, role, manager chain, and recent activity one glance away during the meeting. Asking a manager to switch tabs mid-conversation is a small failure that happens a thousand times a year.

Creation and cancellation of a 1:1 should email both participants. A daily reminder cron should notify both participants of their upcoming 1:1 with the current agenda attached, so nobody shows up empty-handed.

Private-Note Filtering

Private-note filtering must happen server-side on every API response, not just in the UI. A manager's private notes on their report do not leak to the report. The report's private notes do not leak to the manager. This is the single most common place where performance modules leak data, because the obvious implementation — "return all notes, hide the private ones in the UI" — fails the first time someone inspects a network tab.

Training as Policy, Not Assignment

The mistake most companies make with training is to manage it as individual assignments. HR thinks "every engineer needs the secure coding refresher annually," and then hand-assigns it, hire by hire, year after year. It works for six months.

The correct model is to define training requirements as policy and let the system assign them:

  • Frequency — one-time, annual, every 2 years, every 3 years, every 5 years
  • Categories — safety, compliance, skills, role-specific, onboarding
  • Due-from-hire-days — how many days after hire date the first completion is due
  • Required-for filter — all employees, a department, a role, or specific employees
  • URL — optional link to the course provider
  • Self-complete toggle — whether the employee can mark the training complete themselves

When a requirement is created or its target filter changes, the system automatically creates training records for everyone it applies to, with due dates calculated from each person's hire date. New hires in the target scope get the training auto-assigned when they join. Leavers stop receiving reminders when they offboard.

The Profile Training Tab

On each employee profile, the Training tab groups courses by category and shows due date, status, and last completion date. Inline edit lets managers update completion dates without leaving the profile. Mark-complete and dismiss actions handle the two normal outcomes: "the employee actually took the course" and "this training no longer applies to this person."

Crucially, the tab only shows courses that actually apply to the user based on their current department and role. An engineer doesn't see the kitchen-safety course that was required for the one-person kitchen staff filter.

Training Reminders

A training reminder cron runs daily and emits 7-day, 3-day, and 1-day reminders before due date, plus overdue detection that notifies both the employee and their manager. The manager loop is important. Training that silently goes overdue is a compliance risk that HR doesn't see from the dashboard until it's been a problem for weeks.

Small UX Details That Matter

Two small things that add up:

No page refresh after recording completion. Marking a training complete used to require a full page reload. Single-request creation with an optimistic UI update makes the interaction instant — the difference between "I'll update training later" and "I'll update training now."

Reports To picker respects the role hierarchy. When assigning a manager, the picker filters to users at or above the employee's level and excludes inactive users. If an employee already has a saved manager outside the filtered list (a legacy assignment from before a reorg), the picker preserves them so the admin doesn't accidentally unassign. Live updates react to in-form role changes.

How BookYourPTO Supports This

Version 1.0.9 introduces the performance foundation described above. A performance settings page lets admins configure goal users (none, all, or specific), enable cascading goals, and turn the 1:1 module on or off independently. Per-employee goal cards include a progress slider, status, due date, and category, and expand to show threaded comments with timestamps and author avatars.

The 1:1 module supports recurring series with weekly, biweekly, monthly, or one-time frequency. Each 1:1 includes an inline profile preview of the other participant, an agenda, and side-by-side notes with shared and private columns. Private-note filtering is enforced server-side on every API response. Creation and cancellation emails fire automatically, and a daily reminder cron sends upcoming-1:1 notifications with the current agenda.

Training settings let admins define requirements with frequency (one-time, annual, every 2/3/5 years), categories, due-from-hire days, required-for filters (all, department, role, or specific employees), an optional URL, and a self-complete toggle. Required training auto-assigns to targeted users on create or update, with due dates calculated from each user's hire date. The profile training tab groups courses by category, shows only courses that apply to the user, and supports inline edit, mark-complete, and dismiss. A training reminder cron sends 7-day, 3-day, and 1-day reminders plus overdue notifications to both the employee and their manager.

Recording a completed training now uses an optimistic UI with single-request creation, so the page no longer refreshes after each completion. The Reports To picker filters on role hierarchy, excludes inactive users, reacts live to in-form role changes, and preserves a currently saved manager even if they fall outside the filtered list.

If your team is ready to move goals, 1:1s, and training off ad-hoc docs and into something queryable, the performance module in 1.0.9 is a reasonable starting point.

Share

Try BookYourPTO for free

Simplify leave management for your team. Set up in minutes.