Public changelog

What we shipped, in plain language.

Every release to Biztimize — new features, improvements, fixes, and breaking changes — documented here, for everyone. No marketing gloss.

3.36.27

Short Permission — Late-In, Early-Out and Gate Pass

September 02, 2026
Production

A few hours away from the shift is now a thing the system can express: an hours-denominated permission against the rostered shift, with a monthly entitlement, an ESS request path and a Permission Register — and an approved permission excuses the late-in without erasing what the terminal measured.

Bug Fix

Hours Can Never Be Deducted From a Quota Counted in Days

The leave quota engine matched a balance by category alone and never looked at the unit it was counted in. The first hours-denominated absence would have taken two days of annual leave for a two-hour errand — silently, and in the direction that costs the employee.

Hours now deduct from hours and days from days, on deduction and on cancellation alike, and a balance that holds both is reported as two figures rather than one meaningless sum. Where no balance of the right unit exists at all, the refusal names the unit — a different problem from “you have none left”, with a different fix.

Administrators: a monthly permission entitlement is itself an hours quota block, generated per employee and per month. Until it is generated the Permission Register has nothing to draw on. Unpaid permission is refused by name until payroll can express it, rather than being recorded as though it were free.

Human Resources Global
Improvement

An Approved Permission Excuses the Exception, Not the Fact

When a permission covers a late arrival, the time evaluation stops raising the exception — but what the terminal measured stays on the record for ever. The minutes late are the measurement; the excused minutes are the judgement, and they are capped at what the permission actually granted. Two hours late on a one-hour permission is still an hour late.

The excused time is credited to the day’s paid hours as well, without which a two-hour permitted late-in would silently have turned the day into a half day.

Human Resources Global
New Feature

Short Permission, Measured in Hours Against the Shift

Coming in late, leaving early or stepping out mid-shift had no record other than the exception it raised. Short Permission gives it one: an absence measured in hours, granted against the shift the employee was rostered onto, in the three shapes the shop floor actually uses — late-in, early-out and a mid-shift gate pass.

Employees request one from the Permission tab of their leave page; HR records and reviews them on the new Permission Register, and can record one on an employee’s behalf exactly as with any other absence.

A permission is meaningless without a shift to measure it against, so an employee with no published roster day is refused by name rather than being measured against a nine-to-five the plant does not work. The monthly entitlement is checked when the permission is asked for, not discovered at month end: past the cap it is refused, or deliberately overridden and stamped.

A mid-shift gate pass is recorded but costs nothing — the middle punches are not part of the day’s pairing, so the excursion is already inside paid time. It is kept because the fact that someone left the premises matters, not because it changes the pay.

Human Resources Global
3.36.25

Payroll Posting Refuses Rather Than Writing a Wrong Journal

September 02, 2026
Production

Posting a payroll run to the general ledger now stops and names what is missing — an unmapped wage type, or no net-pay account — instead of quietly posting less salary expense than was paid, or an unbalanced entry already marked posted.

Bug Fix

A Failed Posting No Longer Leaves the Journal Behind

The posting wrapped its writes in a transaction opened on the wrong database connection, so on a tenant it was effectively running unwrapped. A failure part way through left the journal committed while the payroll run stayed Approved and no posting record was written — a general ledger entry that no payroll document admitted to.

The posting is now one transaction on the tenant’s own connection: it either completes in full or leaves nothing behind.

Human Resources Global
Bug Fix

The Net Pay Credit Can No Longer Go Missing

The net-pay credit leg had no check on it at all. Where no net-pay account was configured the leg was simply left out — and because payroll writes its journal as already posted, the ledger accepted an unbalanced entry marked POSTED with no error raised anywhere. A missing net-pay mapping is now refused by name before anything is written.

Human Resources Global
Bug Fix

An Unmapped Wage Type Stops the Posting and Is Named

A wage type with no GL account mapped against it was skipped, with a line in the server log and nothing on the screen. It did not even show up as an imbalance: the salary-payable credit is derived from the debits, so dropping an earning shrank the credit to match. The journal balanced perfectly while posting less salary expense than the run actually paid — the worst shape a defect can take, because everything downstream reconciles.

Posting now refuses, and the message lists every unmapped wage type with its amount in one go, so the mapping table is completed in a single pass rather than one refusal at a time. The refusal comes back as a plain validation message with the remedy in it, not a server error.

Human Resources Global
3.36.28

Task Dashboard: Co-Assignees, an Editable Time Spent, and a Grid That Searches What It Shows

September 02, 2026
Production

A task can now be assigned to several people, a supervisor can correct the Time Spent total without rewriting anybody’s timer entries, and the task list’s search, sort and filters finally reach the Project, Assignee and Status columns it displays.

Bug Fix

The Task List Searches, Sorts and Filters the Columns It Displays

The task list’s search box only ever looked at the task’s own fields, so searching for a project or an assignee — both plainly on screen — returned nothing, which reads as a broken search. It now covers what the grid shows: task, project, category, priority and assignee, employees and contacts alike.

Three related faults are gone with it:

  • The box now means one phrase. Searching “Website Creation” used to return a task called “Creation of banner” on a project called “Website Redesign” — a row containing neither of the words the user typed together.
  • Typing anything into the box raised a server error, because the search named two fields a task does not have. An unsearched list loaded fine, which is why it went unnoticed.
  • Sorting and filtering on Project, Category, Priority and Assignee were being dropped in silence — the click did nothing and said nothing. Status now filters by picking from the real list rather than by typing a label that never matched, and the export answers to the same column names the grid filters on, so a download matches what is on screen.

Paging is steadier too: rows sharing a creation timestamp could previously swap between page fetches, showing one task twice and another not at all.

Task Management Global
New Feature

A Task Can Be Assigned to More Than One Person

A task carried exactly one assignee, so shared work had to be duplicated into a task each. A task — and a recurring task definition, so every occurrence it generates — can now name additional assignees alongside the primary one.

The primary assignee is unchanged and remains the one owner every existing report, notification and filter reads, so nothing that worked before changes meaning. What the co-assignees add is visibility: a task whose primary owner sits outside your part of the organisation is still yours if you are on it, and it appears in your list accordingly.

Task Management Global
New Feature

A Supervisor Can Correct the Time Spent Total

The Time Spent figure on the task list is now editable, and the cell also opens the full list of time entries behind the total — everyone’s entries, not just your own — so a number can be explained before it is changed.

Correcting the total is a supervisory act: the assignee’s supervisor, anyone above them in the chain, or a system administrator. The person whose hours they are cannot quietly restate them.

Timer entries are facts and are never rewritten. The difference between what the timers recorded and the total asked for is carried by a single adjustment entry, recalculated on each edit rather than stacking up a new row every time somebody changes their mind. Two things are refused by name: a total below what the timers already logged — the honest way to remove logged time is to correct the entry that logged it, and the message says how much is logged — and any edit while a timer is still running.

Task Management Global
3.36.26

HR Can Record an Absence on Behalf of an Employee

September 02, 2026
Production

A new Absence Entry screen lets HR record, amend and cancel leave for any employee — including the people who have no self-service login at all — against the same record, the same quota and the same payroll the employee’s own request uses.

Improvement

One Definition of a Working Day, Shared With Payroll

Two answers to “what is a working day” were live in the product and they disagreed. Leave counted Monday to Friday and ignored holidays and the published roster; payroll already used the proper ladder. An employee whose three-day sick leave deducted three days of quota but two days of pay was a dispute the system could not answer.

There is now one definition, shared by leave and payroll: the published roster first, then the plant’s weekly pattern less that plant’s holidays, and only then the plain calendar fallback — and each answer says which rung it came from.

Human Resources Global
New Feature

Absence Entry on Behalf of an Employee

Until now an absence could only be entered by the employee, through self-service. On a factory floor that is the wrong way round: absence is observed, not applied for, and many of the people it happens to have no login. The only way in was the raw database admin, which writes the row with no duration, no quota deduction, no overlap check and no trail.

Time › Absence Entry closes that. HR picks the employee, the absence type and the dates, and the entry lands on the same record the employee’s own request would have created — so payroll, the leave balance and HR analytics need no special knowledge that it came from HR.

An HR entry is an observation, not an application. It is recorded as approved and the quota is deducted in the same transaction; it does not invent an approval trail through people who never saw it. What it does record is how it came to be there: whether the employee, HR or an import entered it, the reason HR gave, and whether a quota was overridden. Every audit and every payroll dispute reads those from the row rather than guessing.

Where a quota is short the entry is refused. HR may override — real absence must not be blocked by a balance nobody loaded — but only by asking for it, only with the right to do so, and the row is stamped with the fact for ever.

Corrections are honest too. Amending an absence reverses the original and reapplies rather than editing it under the balance, so the quota can never drift. A cancellation hands the quota back. Marking a whole shift or department absent reports row by row — the ones recorded, and each one that was not, with the reason — instead of one number that hides the failures.

Human Resources Global
3.36.23

A Half-Day Absence Costs Half a Day of Pay

September 01, 2026
Production

Payroll proration now reads how much of the day an unpaid absence actually covered, so a half-day leave stops docking a full day’s pay.

Bug Fix

A Half-Day Leave No Longer Deducts a Whole Day

Loss-of-pay proration counted one full day for every date an unpaid absence touched, whatever the absence said about itself. A half-day leave — a shape the leave screen has always offered and the quota engine has always honoured — therefore cost the employee twice the intended deduction, quietly, with nothing on the payslip to show why.

The day’s weight now comes from the absence record itself: a full day counts as one, a half day as a half, and a partial absence spread over several dates is shared across the span it covers. A weight that could only come from contradictory data is held between nothing and one whole day rather than being trusted.

A full-day absence is deliberately not divided across its span: leave is counted in working days while a span is counted in calendar days, so dividing one by the other would discount every leave that happens to straddle a weekend.

Administrators: this changes net pay for any employee with half-day unpaid absence. On one August run the affected employee moved from 16 to 17 paid days out of 25. Runs already posted are not restated — recalculate the period if the earlier figure needs correcting.

Human Resources Global
3.36.18

Tasks Upload

September 01, 2026
Production

Drop the TA template workbook onto Tasks Upload, review exactly what will be created and what will not, then commit — instead of keying a project plan in task by task.

New Feature

Load a TA Template Workbook Into a Project

Tasks Upload takes the TA template Excel sheet a merchandiser already maintains and creates the project’s tasks from it. The upload is in two steps: a preview that writes nothing, showing the project it resolved, the counts and every question it has, and then a commit.

Only the rows marked Task reqmnt = Y are loaded. An N row is a task the plan says this order does not need — it is counted and reported as not required, never as a failure.

Where the sheet and the system disagree, the upload reports rather than guesses:

  • A department name matching more than one department in the hierarchy is refused, naming both candidates, rather than picked.
  • A near-miss spelling is matched, but the substitution is stated in full — both spellings, on the row — never applied silently.
  • An employee is resolved by id; if the Name column disagrees with the record found, that is reported, and the name never overrides the id.
  • The Dependent Task column is free text that does not name a task exactly, so it is recorded in the task’s notes and never turned into a real dependency. A dependency guessed from prose would drive the schedule off unvalidated text.

Re-uploading over a project whose work has already begun is safe: the opening status is set on creation only, so a task already in progress or completed is never walked back and no recorded progress is erased. The commit re-reads and re-checks the file itself rather than trusting the preview sent back to it, so an edited preview cannot slip a row past validation.

Reading the preview needs task view access; committing needs the right to create tasks.

Task Management Global
3.36.16

Dropdowns That Fill In Without Module Access

September 01, 2026
Production

The customer, warehouse and storage location dropdowns on three forms are served from the reference tier, so the people who use those forms no longer see an empty list where a permission gate refused a master-data endpoint.

Bug Fix

The Customer Dropdown on Direct Invoices and Adjustment Notes

The Customer box on the AR direct invoice and on an adjustment note was blank for accounts-receivable users. The list was being read from the CRM customer master, which those users are correctly not members of, and the refusal was swallowed into an empty dropdown — so a permission gate doing its job looked exactly like a broken screen.

Both forms now read the customer list from the reference tier, under a permission the affected roles already hold. Nobody gains access to the CRM module in order to fill in a dropdown. The list carries the credit currency and payment term with it, because the invoice defaults both from the customer.

Two further consequences of the same fault are gone. A refusal now names the missing permission on the field instead of showing an empty list. And the adjustment note loaded its five lookups as one batch, so a single refusal emptied companies, currencies, suppliers and the chart of accounts too and reported “Failed to load reference data”; each list now stands on its own. An invoice raised against a customer since deactivated shows that customer’s name rather than an empty box.

Finance Global
Bug Fix

Warehouse and Storage Location at the Front Desk

The gate operators recording a front-desk entry had no warehouse or storage location to choose from: both lists came from the inventory master, and no front-desk role grants inventory module access.

Both lists are now served from the reference tier under a permission those roles already hold, and the storage location list carries its parent warehouse so the second dropdown still narrows to the first.

System Global
3.36.17

A Foreign-Currency Receipt Relieves the Ledger at the Invoice Rate

September 01, 2026
Production

A receipt against foreign-currency invoices now credits the customer ledger with the amount those invoices were booked at, so the customer ledger and the receivables control account agree and the exchange difference sits only on the exchange account.

Bug Fix

The Customer Ledger No Longer Absorbs the Exchange Gain

An export receipt settles invoices that were booked at their own exchange rates, while the bank pays at today’s. The gap between the two is the realised exchange difference and it belongs on the gain or loss account.

The journal has posted it that way since the foreign-currency work shipped, which is why Simulate always showed the right figures. The customer ledger row did not: it converted the receipt at the receipt’s own rate, so the difference landed on the customer’s account as well as on the exchange account, and the customer ledger disagreed with the receivables control account by exactly the gain. In foreign currency the customer was always square; in rupees the account was overstated.

The ledger row now takes the settlement figure from the same calculation the journal uses — read, not recomputed — so there is one definition of what the receipt relieved and not two. Reversing a receipt no longer quietly puts the difference back onto the customer either.

Administrators: rows written before this can be repaired with the backfill_receipt_local_relief command. It refuses a row it cannot settle honestly — a foreign-currency invoice carrying no usable rate, or a home-currency row, where a gap is a discrepancy rather than an exchange difference — and names it for someone to look at.

Finance Global
3.36.19

ESI and PF Nomination Forms, and Application Forms in the Applicant’s Language

September 01, 2026
Production

ESI Form-1 and PF Form-2 print from the employee record with the nominees behind them and the statutory emblems at their head, and the employment application and job request now print in the applicant’s own mother tongue.

Improvement

The ESIC and EPFO Emblems at the Head of the Forms

Form-1 now carries the ESI Corporation seal at its head and Form-2 the EPFO seal, as the sheets filed with the branch office do.

The seal identifies the form, not the employer, so it is shipped with the system rather than being tenant configuration — neither form identifies the employer by letterhead in any case (Form-1 does it by code and address, Form-2 by establishment code). The company logo remains only as a fallback, and if the emblem cannot be read the head prints without a seal rather than the document failing.

Human Resources Global
Improvement

Mother Tongue Is Picked From a Language List, Not Typed

Because the mother tongue now decides which language a personnel form prints in, a typo in it is a form in the wrong language. Application Particulars therefore offers the language list instead of a free-text box — the same list the Languages tab uses, so the two screens cannot spell the same language differently — and a value already recorded stays selectable, so opening the dialog can never blank it.

A starting list of languages is seeded, and the dropdown can add to it from its own dialog for a language that is not on the list. Adding is a deliberate act, never a side effect of choosing a value; renaming or removing a language people are already recorded against stays an administrator decision.

Tenant lists built by hand held the same languages twice, under different spellings and casings, once the seeded list arrived beside them. Those duplicates are merged, not deleted: everything pointing at a duplicate is moved onto the single surviving row first, so no employee’s recorded language is lost. A row that cannot be removed because something still points at it is deactivated instead and simply leaves the dropdown.

Human Resources Global
Improvement

The Application Form Prints in the Applicant’s Mother Tongue

The employment application and the job request are bilingual forms, and the second language now follows the applicant’s mother tongue rather than being fixed. A Hindi mother tongue prints the title, every label and the declaration in Hindi; a Tamil one prints the form exactly as it printed before.

Both forms read from one shared catalogue of labels, because they are the same seventeen sections and must not end up saying different things about the same line. A translation is a lookup and never a transliteration: a mother tongue with no translated set prints in the language the form was drawn in, and a line with no translation prints in English alone rather than mixing two scripts on one page. The mother tongue itself now prints in both scripts — “TAMIL / தமிழ்” — taken from the language master, never invented.

The second lines can still be switched off outright when a plain English sheet is wanted.

Administrators: each language needs its font installed on the print server. Without one the second line simply drops out and the English label carries the meaning.

Human Resources Global
New Feature

ESI Form-1 and PF Form-2, With a Nominee Register Behind Them

ESI Declaration Form-1 and PF Nomination Form-2 now print from the employee record, in the statutory layout, ready to be signed and filed with the branch office.

They are printed from the employee profile, with a preview before the paper. Both are locked layouts: their wording is prescribed, so unlike the tenant’s own forms they cannot be redesigned in the print designer.

Behind them is a proper nominee register. A nomination is not a family member: it is recorded per scheme — the ESI nominee and the PF nominee may be different people — with a share, and it is ended by being revoked rather than deleted, so the record of who was nominated when survives. Form-2 keeps the two apart as the statute does: the family table is the family, the nomination box is the nomination.

What the record does not say, the form does not invent. Shares are reported as recorded and never quietly adjusted to add up — a set that does not total 100% is flagged for HR to correct in the record, not corrected on the paper. An unanswered question prints blank rather than ticking a box, and the establishment code is taken from the statutory filing details in force today, with none on file printing blank.

Human Resources Global
3.36.10

Payroll Proration Arithmetic Corrected

August 31, 2026
Production

Six defects found during a payroll go-live: unpaid leave was always counted as zero, a mid-month joiner was paid a full month, the working-day denominator was estimated rather than counted, and the rounding was applied to the wrong number.

Bug Fix

Round the Money, Not the Multiplier

The proration factor was rounded to four decimals before being multiplied, so 22/31 became 0.7097 and overpaid a few paise a month on a mid-range basic — an error that scales with salary and headcount and never reconciles. The factor is now carried at full precision through the arithmetic, with the four-decimal value kept for display on the payslip.

Human Resources Global
Bug Fix

Unpaid Leave Was Being Paid in Full

Loss-of-pay days were silently always zero. The engine looked for unpaid leave by matching the word “unpaid” in a field that does not exist, the resulting failure was swallowed, and every unpaid day was paid in full.

Unpaid is now read from the leave type’s explicit paid / unpaid flag rather than guessed from its name, and a failure is reported loudly instead of being absorbed — this direction of error overpays.

Human Resources Global
Bug Fix

Mid-Month Joiners Were Paid a Full Month

Proration counted the denominator over the whole period but the numerator as “all working days less unpaid days”, never consulting the employment start date. Someone who joined on the 20th came out at a full month’s factor and was paid a full month. Both sides are now counted the same way, and an unpaid day falling on a rest day is no longer deducted from a working-day denominator.

Human Resources Global
Bug Fix

Working Days Are Counted, Not Estimated

The working-day denominator was extrapolated from weeks × days per week, which gives 26.57 days for August 2026 on a six-day week against an actual 26 — the denominator of gross pay, wrong by half a day, every month, in both directions. The rest-day pattern is now counted for the period, with dated holidays from the production calendar taken off as an overlay.

The proration method is also configurable per payroll area instead of being fixed in the engine. It defaults to calendar days, so an existing payroll area keeps exactly the behaviour it has today.

Human Resources Global
Bug Fix

A Failed Payroll Run No Longer Leaves Half a Result Behind

A payroll run for one employee was not actually running as a single unit of work on the tenant’s own database connection, so a failure part way through left a partial result committed. It is now bound to the right connection and either completes or leaves nothing.

Two related corrections: the run number is allocated under a real lock, so two runs started at the same moment can no longer claim the same number; and generating payroll periods from the command line now requires the user and tenant it records, refusing by name instead of writing an empty tenant.

Human Resources Global
Bug Fix

An Inactive Employee Stays Off the Employee List

The employee list filtered on one of the two flags that record whether somebody still works here, so an employee marked inactive could still appear. The two are kept in step now — approving or revoking a separation moves both — and the default list scope excludes inactive employees, while asking for a status explicitly still returns them.

Human Resources Global

Want a walkthrough of what's new?

We run monthly release briefings for customers — what shipped, what changed, what's next. Bring your team.