Features
StableBetaComing soon
Asset ManagementGive hrmq its first asset register: company property (laptops, phones, vehicles, tools, access passes, clothing) as Asset records with a declarative custody lifecycle, and effective-dated AssetAssignment uitgiftes linking assets to employees.AVG DsrOCA\OpenRegister\Service\DsarService already implements the heavy lifting for AVG data-subject rights: locating every object referencing a subject (Art 15 inzage / Art 20 portabiliteit, the same call rendered two ways), soft-deleting every object matching a subject in one wholesale sweep (Art 17 vergetelheid), and updating a single object with DSAR attribution (Art 16 rectificatie).Cao LibraryTurns the payroll engine into a *compliance* engine by giving the audit something sector-specific to check a contract against.Comp CyclesHrmq owns the personnel dossier, the payroll engine that reads Employee.grossMonthlySalary, and a maintained CAO corpus, but had no surface for the recurring management ritual every employer runs on top of those numbers: a periodic compensation review where managers propose salary adjustments against a band, a second actor approves them, and the approved figure lands on the employee's compensation on a chosen effective date.Dga Payroll ModeA DGA (directeur-grootaandeelhouder.Fleet BijtellingBijtelling privégebruik auto (Wet LB 1964 art.Goals OkrMeasurable OKR tracking as a new member of the performance-review family (ADR-001 Rule 6): an Objective with several measurable KeyResults, each carrying a numeric start/target/current value and a writer-maintained progress reading tracked *between* reviews and optionally rolled up under a ReviewCycle.Hr SignalsStop temporary contracts from lapsing unnoticed (Spectr hrmq-canon-hr-signals, 3/9 competitor coverage): the rule corpus signals a temporary contract ending within 60 days that has no successor, and enforces the statutory aanzegplicht (written notice one month before the end of a ≥6-month fixed term, BW 7:668.Hrmq Docudesk DocumentsGenerate the standard Dutch HR documents (arbeidsovereenkomst, aanbiedingsbrief, werkgeversverklaring, getuigschrift) from templates hosted in docudesk (namespace: hrmq), by calling docudesk's DocumentService::generateDocument() on the same instance (never HTTP), storing the returned PDF on a new GeneratedDocument record via OpenRegister's FileService, degrading gracefully to skipped-no-docudesk when docudesk is absent, and giving EmploymentContract.writtenContract machine-checked document evidence (nl-contract-schriftelijk).Interview SchedulingClose the gap recruiting-ats-basic's uitnodigen transition docblock states plainly ("No calendar/scheduling integration in the MVP"): today an interview invitation is a bare status flip with no artifact, so nobody on the recruiting team can see from a calendar when and with whom a gesprek is actually happening.Jurisdiction PacksHrmq owns the first open-source Dutch payroll engine, and its *parameters* were already data (lib/Standards/tables/nl-2026.json).Leave Accrual JobThe leave-verzuim MVP shipped the LeaveBalance ledger.Leave Buy SellHrmq's leave surface (leave-management) gives employees a LeaveRequest workflow and a LeaveBalance ledger with a declaratively calculated remainingHours (entitledHours + bovenwettelijkHours − usedHours), guarded by the three mandatory NL leave rules in lib/Standards/rules/labour.json (nl-verlof-wettelijk-minimum, nl-verlof-saldo-niet-negatief, nl-verlof-vervaltermijn).Leave Calendar NcMake approved absence visible on a plain, shareable Nextcloud calendar.Leave ManagementMake the existing LeaveRequest workflow (shipped schema-only by portal-schemas) a usable back-office feature: the frozen ADR-001 menu-5 Verlof & verzuim surface with request, approval-queue and detail pages bound to the already-declared submit→approve/reject lifecycle, a LeaveBalance schema with a declaratively calculated remaining-hours figure (statutory minimum 4× contractual weekly hours per BW art.Loonaangifte Filing LifecycleTurn the passive LoonaangifteFiling record into a real Dutch wage-tax filing workflow: a declarative create→review→confirm→send state machine, first-class tijdvakcode data per Belastingdienst LH 210, statutory deadline derivation (period end + one calendar month, no weekend extension) and alerting as versioned machine-checkable corpus rules, and filing pages that drive the lifecycle.LoonbeslagHrmq computes NL gross-to-net (PayrollCalculator, pure, table-driven) and already folds current-run, post-tax components onto Payslip.nettoPay without ever re-invoking the calculator (retro-adjustments, leave-buy-sell).Mijn Hr Self ServiceGive hrmq's logged-in employees an in-app self-service surface per ADR-001 Rule 2 (role-filtered wrapper, never a sibling portal app): Mijn HR index pages that show only the current user's records.Mileage RulesBring the Belastingdienst's onbelaste kilometervergoeding.Mss Team ScopeGive managers a team-scoped self-service surface per ADR-001 Rule 2 (Dashboard widgets + scoped acties inside existing menus.Multi AdministratieLet one hrmq instance carry multiple administraties (companies/clients).Offboarding WizardGive hrmq its departure surface, closing the hire-to-leave case bracket the hr-onboarding fragment opened: one Offboarding case per departure with a deterministic, declarative lifecycle whose milestones (departure announced, afronding planned, eindafrekening ready, completed) are gated by concrete checklist and eindafrekening fields.Offer EsignClose the MVP gap the Application.aanbieden transition's own docblock names ("An offer is extended to the candidate.Onboarding WizardGive hrmq its first onboarding surface: one Onboarding case per hire with a deterministic, declarative lifecycle whose milestones (contract signed, data validated, ready for first workday, proeftijd running, completed) are gated by concrete checklist fields.Org Chart BasicGive hrmq its first organisational model: an OrgUnit hierarchy (self-referencing parent, type, cost-center, manager) and effective-dated OrgAssignment placements linking employees to units, in a new hr-org register fragment.Payroll Core EngineThe strategic centerpiece: the only open-source Dutch payroll calculation engine (verified 2026-07-12/13.Payroll Core SchemaChain head for the open-source Dutch payroll engine (Spectr hrmq-canon-payroll-engine, P1-strategic; no OSS NL payroll engine exists.Payroll Glpost ShillinqMake payroll flow automatically into the books.Payroll Mutation ReportsThe one thing a loonadministrateur does before flipping a run from draft to approved: compare it to the previous period.Payroll SEPA Netpay ShillinqPay the salaries an approved payroll run owes.Payslip PDF DocudeskGive every Payslip a downloadable loonstrook PDF and every employee-year a jaaropgaaf PDF.Pension Filing Upa MvpGive hrmq its first sector-pension filing surface (UPA.Performance Review CyclesThe orchestration container of the performance-review MVP: a generic ReviewCycle (jaargesprek / beoordeling / tussentijds) with a declarative open/close lifecycle, surfaced as SUB_PAGEs under the existing Personeel group per ADR-001 Rule 6.Performance ReviewsThe dossier half of the performance-review MVP: the PerformanceReview object per employee per cycle, carrying rating, sterktes, ontwikkelpunten, afspraken and a goals array **inside** the review (one dossier document, one lifecycle, one retention context.Portal ContributionHrmq contributes to portaliq, the shared external portal for people without Nextcloud accounts (hydra ADR-046 + 2026-07-06 amendment, contribution contract v2): external employees get UUID-scoped self-service over their own employee record, payslips, employment contracts, timesheets, expenses and leave requests (with strict create whitelists for timesheet/expense/leave), and clients get a read-only view over the timesheets whose billable hours they review.Portal SchemasDeclarative register foundation for hrmq's Wave-1 contribution to portaliq, the shared external portal for people without Nextcloud accounts (hydra ADR-046 + 2026-07-06 amendment).Proforma PayslipHR admins repeatedly need the answer to a hypothetical ("if I offer €4.100 bruto wit, what is the net?", "what does an AOW-age hire net?", "how does a 0,8 part-time factor land?") without creating throw-away Employee/Contract/Run/Payslip records.Receipt OCRGive every Expense with an attached receiptFile an automatic prefill of its still-empty amount/expenseDate/vendor/vatAmount fields, extracted by docudesk's FinancialExtractionService from the receipt, with confidence and provenance recorded so a reviewer can tell a value was machine-suggested rather than hand-entered.Recruiting ApplicationsThe application half of the recruiting MVP: candidate PII lives inside the Application object (AVG data-minimisation.Recruiting VacanciesOpen the frozen ADR-001 menu-6 Onboarding & ATS surface with the vacancy half of the recruiting MVP: a Vacancy schema with a declarative publish lifecycle (publiceren stamps publishedDate on the carrying write; sluiten closes; terminal), index/detail pages with the per-vacancy candidate list via the related panel, and a seeded published vacancy.Retro AdjustmentsThe payroll engine (payroll-core-engine) seals a period's payslips into a run whose engineVersion/calculatedAt are stamped and whose non-draft states refuse recalculation.RosteringHrmq administers who is employed, what they clocked and what they claim, but had no forward-looking plan.Sick Pay CalcHrmq already modelled the *administrative* side of sickness (leave-verzuim-mvp's SickLeaveCase + the nl-loondoorbetaling-minimum check) and already had the actual gross-to-net engine (payroll-core-engine's PayrollCalculator/PayrollRunService).Time AttendanceGive hrmq a raw clock surface with Dutch working-time-law depth no Nextcloud app has (Spectr hrmq-insight-nc-ecosystem-gap: German ArbZG time-compliance apps exist in the ecosystem, nothing covers the Arbeidstijdenwet): a per-employee/per-day AttendanceRecord (clockIn/clockOut/breakMinutes, stored writer-maintained workedHours, declarative open⇄gesloten lifecycle), three versioned machine-checkable ATW rules.Time Entry CaptureHome the fleet's timesheet / hours-capture surface in hrmq (HR's domain) and emit an approved-time-entry event a finance app consumes.Verzuim Analytics WidgetsGive HR the absence analytics the stored data already supports: four demonstrably-supported stat widgets on the Dashboard (open ziektegevallen, langdurig verzuim past the WVP 42-weken horizon via an @today-relative date-threshold filter, verlofaanvragen in behandeling, and this-month approved verlofuren as a windowed sum) plus a VerzuimOverzicht open-cases werkvoorraad sorted by the UWV 42-weken deadline (the round-1 LoonaangifteFilings deadline-queue pattern).Verzuim WvpDutch employers must run Wet-verbetering-poortwachter case management from day one of sickness: probleemanalyse in week 6 and plan van aanpak in week 8 (Regeling procesgang eerste en tweede ziektejaar), the 42-weken ziekmelding at UWV (ZW art.Wkr AdministrationWKR is administered from the employer's ledger of allowances/benefits for the WHOLE administration and fiscal year, not from one payslip in isolation: the vrije ruimte is a percentage of the entire fiscal wage bill, and "used" sums every payslip's designated allowances plus every stand-alone declaration.