Demo Laboratory (sample)
Report no. 37 · 2026-11-10 15:42
User: Demo Admin

Validation pack

SAMPLE - demo laboratory, made with demo values · The UP↑SCALE system: weighing data, users, audit trail, signatures, records · Pipette check and pipette calibration · Compounding assistant and solution mode · Routine check before use, minimum weight and air buoyancy correction · Fill weighing and the check of prepackages (℮, NIST HB 133) · Density mode (Archimedes) · LIMS / ELN forwarding · 📡 Sensors and instruments (room, liquid, pressure)

SystemSAMPLE - demo laboratory, made with demo values
UP↑SCALEUP⬆SCALE (DIY) #76439 (DIY) · E83DC1241BB0
VersionsApp 1.01312 · Firmware 1.01312
DocumentUPSCALE-VALPACK-1 · 11/10/2026, 3:42:22 PM · Demo Admin
Statusdraft until it is signed (chapter 14)

Contents

1Purpose, scope and intended use
2System description
3Validation approach and acceptance criteria
4References
5Requirements and their tests
6Risk assessment
7Installation qualification (IQ)
8Operational qualification (OQ), part A: the calculations
9Operational qualification (OQ), part B: test scripts
10Performance qualification (PQ)
1121 CFR Part 11 / EU GMP Annex 11 checklist
12Supplier information
13Change control and periodic review
14Deviations, conclusion and approval
AAnnex A - the reference cases of this device

1 Purpose, scope and intended use

This pack documents the validation of the UP↑SCALE system in your laboratory: the UP↑SCALE (scale or RS-232 adapter with your balance), its firmware and the UP↑SCALE app on the devices you use. It shows that the system is installed as described (IQ), works as specified (OQ) and gives correct results under your conditions (PQ).

Fill in the blank fields, attach the records named in the tests, assess every deviation and sign chapter 14. The release for use follows with the Validation Summary Report (VSR) of the app.

Chapters in this pack: The UP↑SCALE system: weighing data, users, audit trail, signatures, records · Pipette check and pipette calibration · Compounding assistant and solution mode · Routine check before use, minimum weight and air buoyancy correction · Fill weighing and the check of prepackages (℮, NIST HB 133) · Density mode (Archimedes) · LIMS / ELN forwarding · 📡 Sensors and instruments (room, liquid, pressure)

Intended use

Not covered by this pack

2 System description

App version1.01312
App code fingerprint (SHA-256)76598f1485eff4e3b90536ab5e8259fe4c5eb09502d0e7942c84cf2aa5af58ce
UP↑SCALEUP⬆SCALE (DIY) #76439 (DIY)
Device IDE83DC1241BB0
EditionENTERPRISE & COMPLIANCE
Firmware1.01312
Firmware fingerprint (SHA-256 of the build)128bc3a1e12e90a5815d8da9741da650165334455680cc3b705b402ba9c00938
Weighing range (scale data)Max 120 g · d 10 µg
Instrument, counters, certificate dataFirmware 1.01312
configuration counter 61
Sensors and instruments (register)S-0001 Room sensor (demo) · DEMO-THP-2026-10 · 2027-10-01
S-0002 Water thermometer (demo) · DEMO-WT-2026-07 · 2027-07-01
Equipment register entry–
Users and auditusers with roles
Qualified devices (phones / PCs)0 of 0 devices qualified
Browser of this deviceMozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/157.0.0.0 Safari/537.36
Validation of the calculationsValidation of the calculations on this device, 11/10/2026, 3:41:56 PM: 431 cases passed, 0 failed.

Pipette check and pipette calibration

Balance (lab settings)Analytical balance (demo) Max 120 g, d 0.01 mg · DEMO-BAL-2026-09
Instruments (lab settings)Water thermometer: Water thermometer (demo) · DEMO-WT-2026-07
Barometer: Room sensor (demo) · DEMO-THP-2026-10
Hygrometer: Room sensor (demo) · DEMO-THP-2026-10
Standard uncertainties of the instruments (k = 1)u(water) 0.1 °C · u(air) 0.15 °C · u(p) 5 hPa · u(RH) 2.5 %
The runscheck 4 / calibration 10 deliveries per volume · evaporation 60 s · room reference 20 °C · water air-saturated
Decision rulesimple acceptance (|e| ≤ limit) · k = 2
Limits of ISO 8655-2ISO 8655-2 - app table (secondary sources)
SHA-256 3cba194d8834724b2324b9b78b70347c88e74148c12e8bbadcf7ee6ab608c849
CMC table (version in use)–
Pipette register5 instruments in the register (without the retired ones)

3 Validation approach and acceptance criteria

Risk-based, along GAMP 5 (second edition) and ISO/IEC 17025:2017, 7.11.2: the effort follows the risk of each function for your results and your data (chapter 6). Your laboratory decides the GAMP category of the system; for a configured product with its own calculations, category 4 is a common choice.

The supplier gives the structure, the reference cases and the test scripts; your laboratory executes the tests, records what it observed, assesses deviations and approves the result.

Acceptance criteria

4 References

  1. ISO/IEC 17025:2017 - General requirements for the competence of testing and calibration laboratories (6.4 equipment, 6.4.10 intermediate checks, 7.11 control of data and information management)
  2. US FDA 21 CFR Part 11 - Electronic records; electronic signatures
  3. EudraLex Volume 4, Annex 11 - Computerised systems (2011)
  4. ISPE GAMP 5: A risk-based approach to compliant GxP computerized systems, second edition (2022)
  5. OECD Series on Principles of Good Laboratory Practice No. 17 - Application of GLP principles to computerised systems (2016)
  6. PIC/S PI 041-1 - Good practices for data management and integrity in regulated GMP/GDP environments (2021)
  7. OIML R 76-1:2006 - Non-automatic weighing instruments (the test suite of the app)
  8. USP <41> Balances and USP <1251> Weighing on an analytical balance (the routine check of the app)
  9. EURAMET Calibration Guide No. 18, version 4.0 (2015) - Calibration of non-automatic weighing instruments
  10. In the US: 21 CFR 211.68 and 211.160 (GMP), 21 CFR Part 58 (GLP), 42 CFR Part 493 (CLIA)
  11. ISO 8655-1:2022 - Piston-operated volumetric apparatus - Part 1: Terminology, general requirements and user recommendations
  12. ISO 8655-2:2022 - Part 2: Pipettes (the maximum permissible errors)
  13. ISO 8655-6:2022 (corrected version 2022-06) - Part 6: Gravimetric reference measurement procedure for the determination of volume
  14. ISO/TR 20461:2023 - Determination of uncertainty for volume measurements made using the gravimetric method
  15. JCGM 100:2008 (GUM) - Evaluation of measurement data, guide to the expression of uncertainty in measurement; JCGM 200:2012 (VIM)
  16. ILAC P14:09/2020 - ILAC policy for measurement uncertainty in calibration
  17. ILAC G8:09/2019 - Guidelines on decision rules and statements of conformity
  18. EURAMET Calibration Guide No. 19, version 4.1 (12/2025) - Guidelines on the determination of uncertainty in gravimetric volume calibration
  19. NIST IR 7383 (2019), SOP 14 - Gravimetric calibration of volumetric standards using an electronic balance
  20. M. Tanaka, G. Girard, R. Davis, A. Peuto, N. Bignell: Recommended table for the density of water between 0 °C and 40 °C based on recent experimental reports, Metrologia 38 (2001) 301-309
  21. OIML R 111-1:2004 - Weights of classes E1 ... M3, annex E (air density)
  22. ISO 3696:1987 - Water for analytical laboratory use
  23. ISO 4787:2021 - Laboratory glass and plastic ware - Volumetric instruments - Methods for testing of capacity and for use
  24. ISO 1042:1998 (flasks), ISO 648:2008 (one-mark pipettes), ISO 835:2007 (graduated pipettes), ISO 385:2005 (burettes), ISO 4788:2005 (measuring cylinders) - the class tolerances
  25. ASTM E542-22 - Gravimetric calibration of laboratory volumetric instruments; ASTM E288, E969, E1293, E287, E1272 - the class tolerances; USP <31> Volumetric apparatus
  26. European Pharmacopoeia (Ph. Eur.) 2.9.5 - Uniformity of mass of single-dose preparations (the edition your laboratory follows)
  27. EudraLex Volume 4, Part I, Chapter 4 - Documentation (2011)
  28. PIC/S PE 010-4 (1 March 2014) - Guide to good practices for the preparation of medicinal products in healthcare establishments
  29. USP <795> Pharmaceutical compounding - nonsterile preparations (official 1 November 2023)
  30. In the US: 21 CFR 211.101 (charge-in of components) and 211.188 (batch production and control records)
  31. In Germany: Apothekenbetriebsordnung (ApBetrO), § 7 Rezepturarzneimittel and § 8 Defekturarzneimittel
  32. European Pharmacopoeia (Ph. Eur.) 2.1.7 - Balances for analytical purposes (the edition your laboratory follows)
  33. OIML D 28:2004 - Conventional value of the result of weighing in air (the air buoyancy correction)
  34. Council Directive 76/211/EEC of 20 January 1976 on the making-up by weight or by volume of certain prepackaged products
  35. Germany: Fertigpackungsverordnung (FPackV) of 18 November 2020
  36. NIST Handbook 133-2026 - Checking the net contents of packaged goods (Category A)
  37. OIML R 87:2016 - Quantity of product in prepackages
  38. IETF RFC 8259 (2017) - The JavaScript Object Notation (JSON) data interchange format
  39. IETF RFC 9110 (2022) - HTTP semantics
  40. NIST FIPS 180-4 (2015) - Secure Hash Standard (SHA-256)
  41. EudraLex Volume 4, Annex 11 (2011), clause 5 - Data exchanged with other systems
  42. MHRA GXP Data Integrity Guidance and Definitions, revision 1 (March 2018)
  43. ISO 8655-6:2022, 5.5 table 2 - Measuring devices (thermometers, hygrometer, barometer)
  44. ISO/IEC 17025:2017, 6.4 Equipment and 6.5 Metrological traceability
  45. OIML R 111-1:2004, annex E - Air density
  46. Bluetooth SIG, GATT Specification Supplement - Environmental Sensing and Health Thermometer characteristics
  47. EudraLex Volume 4, Annex 11 (2011), clause 5 - Data and clause 9 - Audit trails

Editions as used for this version of the app. The limits of ISO 8655-2 in the app come from public secondary sources unless your laboratory typed its own table (chapter 2). UP↑SCALE is not affiliated with ISO, OIML, EURAMET, NIST, ILAC, ISPE or any authority.

5 Requirements and their tests

The requirements of the intended use and the tests that show them. Add your own requirements at the end and give each one a test.

IDRequirementShown by
URS-01The recorded weight is the weight the balance shows (same digits, unit, stable mark).IQ-04, OQ-F01
URS-02The calculations of the app and the firmware are correct.OQ part A
URS-03Only users with a login work; a role limits what each one may do.IQ-06, IQ-07, OQ-F03, OQ-F04
URS-04Every change of a setting or a record is in the audit trail: who, when, what (old and new value) and why.OQ-F02
URS-05Electronic signatures carry the name, date, time and meaning and stay linked to their record.OQ-F05
URS-06A saved record or report cannot be changed unnoticed.OQ-F06
URS-07Records can be exported and archived in a readable form.OQ-F07, IQ-10
URS-08Time stamps are right.IQ-08, OQ-F08
URS-09A power cut loses no record and does not break the audit trail.OQ-F09
URS-10The software in use is the validated version.IQ-01, IQ-02, chapter 13
URS-P1Volumes by the gravimetric procedure of ISO 8655-6:2022: Z factor, evaporation, the conditions at the start and the end.OQ part A (PIP), OQ-P02, OQ-P05
URS-P2Systematic and random error against the limits, PASS / FAIL by the decision rule of the lab.OQ part A (PIP, MPE, LIM), OQ-P03
URS-P3The uncertainty of every volume along ISO/TR 20461:2023; the reported U never below the CMC.OQ part A (PIP, CMC), OQ-P07
URS-P4The balance and the instruments are suitable (ISO 8655-6:2022 tables 1 and 2); a deviation from the standard is shown on the report.IQ-P1 ... IQ-P3, OQ part A (BAL, DEV), OQ-P06
URS-P5Every delivery is taken from the balance; an implausible value is kept or redone with a reason.OQ-P01, OQ-P04
URS-P6Each run is kept in the register with all values; the due dates follow; old data can be imported with an import record.OQ-P08, OQ-P09
URS-P7Multichannel pipettes: every channel tested and named on the report.OQ-P10
URS-P8The results agree with an external calibration under the conditions of the lab.PQ-P1
URS-P9Volumetric glassware along ISO 4787: to contain - the item is weighed empty before every fill; to deliver - a value only after the vessel was off the balance or an OK; masses up to 2 kg; the setting of the meniscus in U.OQ part A (PIP-31 ... PIP-36, GLS), OQ-P12, OQ-P13
URS-C1Only the approved version of a master formula (rows, SOP, process plan) runs; a change needs a new approval.IQ-C2, OQ-C01
URS-C2An expired or locked lot blocks the start; a weigh step opens only for a container with an approved code and the lot of the batch, or a confirmed label.IQ-C1, OQ-C02
URS-C3Every ingredient is weighed to its goal within its tolerance; only a stable value is taken, with user and time.OQ part A (SOL), OQ-C03, OQ-C08
URS-C4A value over its goal needs a QM release (another user, password, reason) or a recalculation of the other goals; both are in the batch record.OQ-C04, OQ-C08
URS-C5A NO to a check or an in-process value out of its tolerance needs a reason and is a deviation in the batch record.OQ-C05
URS-C6The uniformity of mass along Ph. Eur. 2.9.5 is right.OQ part A (UM), OQ-C06
URS-C7The batch record is complete, sealed and signed by the operator and by a QM who did not make it; the label shows the batch number and the use-by date.IQ-C3, OQ-C07, PQ-C1
URS-C8A tolerance the balance cannot resolve (narrower than d at the batch size) is flagged by the UP↑SCALE before the start, and the batch record names the band that was accepted.OQ part A (SOL), OQ-C09
URS-R1Repeatability and accuracy (or sensitivity) are judged by the limits of the profile: PASS or FAIL.OQ part A (RT), OQ-R01, OQ-R02
URS-R2Every value comes from the balance when it is stable, minus the empty plate before it.OQ-R01
URS-R3After a failed check every device shows NOT RELEASED FOR USE until a check passes or an ADMIN removes the warning with a reason; a due check is shown too.OQ-R03, OQ-R04
URS-R4A weight below the minimum weight is recorded only after a warning, and then logged.IQ-R2, OQ-R05
URS-R5Checks, removed warnings and changes of these settings are recorded (activity log, sealed PDF).OQ-R06
URS-R6The true mass is worked out from the density of the THING and the air density; the reading stays unchanged.IQ-R3, OQ part A (AB), OQ-R07
URS-W1The limits of the rule are right: TNE, T1, T2; MAV and moisture allowance; own - / +.OQ part A (FE, FM, HB), OQ-W01
URS-W2Every fill is judged and shown: orange under, yellow between T1 and the nominal, green in the tolerance, red over.OQ part A (FS), OQ-W02
URS-W3Only a stable fill is taken; one outside the limits only after a confirmation.OQ-W03
URS-W4Statistics and verdict of the run are right; the run goes on after a reload, on another device and after a restart.OQ-W04, OQ-W05
URS-W5The report names the rule and its limits and lists every bag with time, weight and deviation.OQ-W06
URS-W6A lot of closed packs is checked with the sample plan of the rule.IQ-W1, OQ-W07, PQ-W1
URS-D1Both weights come from the balance, taken when stable and after a zero.OQ-D01
URS-D2The liquid density is right: water from the table of the firmware (0 ... 40 °C), the listed liquids, an own value.OQ part A (DEN), OQ-D02
URS-D3Density, volume, uncertainty and the air term are right; an implausible measurement is shown.OQ part A (DEN, AB), OQ-D03, OQ-D04
URS-D4The result agrees with a body of known density.OQ-D05, PQ-D1
URS-D5Results can be copied into your records and saved as a THING.IQ-D2, OQ-D06
URS-L1Only the chosen events go to your https address, with your token.IQ-L1, OQ-L01
URS-L2Every event has a fixed id, device, UP↑SCALE, user and time, so a double can be dropped.OQ-L01, OQ-L05
URS-L3The values equal the records: weight, unit, user, time, below the minimum weight.OQ-L03
URS-L4Lines of the activity log come with sequence number and chain hash; missed lines follow.IQ-L3, OQ-L02
URS-L5Sealed files come with their SHA-256 and the seal.OQ-L04
URS-L6When the server is not reachable, events wait and go again in order; a warning shows.OQ-L05
URS-L7Batches, solutions, routine checks and validation runs arrive as structured records.OQ-L06, OQ-L07
URS-S1A typed value always wins; a sensor fills only an empty field or on request, and every recorded value says whether it came from a sensor (which one) or was typed (from which instrument).OQ-S02, OQ-S03
URS-S2A value older than the limit of its role is not used (liquid 30 s, room 5 min, pressure 1.5 s).OQ-S04
URS-S3The correction of the certificate is added to every reading of a registered device; the record keeps the raw value, the correction and the value used.OQ-S05
URS-S4A calibration that is due shows a warning and counts as a deviation of a pipette or glassware calibration.IQ-S1, OQ-S06
URS-S5Every change of the register is kept with user, time, old and new value (and the reason with the strict audit trail); entries are retired, never deleted; only an ADMIN or a QM changes it.OQ-S07
URS-S6The values of the devices are decoded as their published formats say.OQ-A (SEN-01 … SEN-23, SEN-27 … SEN-35)
URS-S7Room limits: a crossing is shown and logged; the room log keeps one mean a minute while the app is open.OQ-S08
URS-S8The pipette budget takes the bigger of the lab's standard uncertainty and U / 2 of the instrument.OQ-A (SEN-24 … SEN-26)

6 Risk assessment

Pre-filled by UP↑SCALE as a starting point: confirm or change the ratings for your use (H high, M medium, L low) and write your own rating in the last column.

FunctionPossible failureEffectSeverityLikelihoodControl in the systemTested byYour rating
Reading the balancea wrong or rounded value is recordedwrong resultHLthe value of the balance line with its digits; stable markOQ-F01
Calculationsa wrong formula or limitwrong resultHLreference cases worked out by handOQ part A
Audit traila change is not recordeddata integrityHLhash-chained activity log in the scaleOQ-F02
Access controlan unauthorised person changes datadata integrityHMusers, roles, lockoutOQ-F03, OQ-F04
Electronic signaturesa signature is not linked to its recorddata integrityHLsigned with the number and code of the reportOQ-F05
Records and reportsa record is changed after savingdata integrityHLseal and integrity codeOQ-F06
Power cuta record is lost or the log is brokendata lossMMrepair of the log at the startOQ-F09
Time stampsa wrong time in the recordsdata integrityMMclock of the scale, device qualificationOQ-F08
Taking a deliveryan unstable or wrong value is takenwrong volumeHLstable hold, plausibility check, KEEP / REDOOQ-P01, OQ-P04
Conditions (Z factor)wrong temperatures or pressuresmall volume errorMMasked at the start and the end; deviations listedOQ-P02, OQ-P06
Limitsa wrong limits tablewrong verdictHMthe source of the limits on every reportOQ-P03, IQ-P4
Uncertainty and CMCU smaller than the CMCwrong statementMLreported U = max(U, CMC)OQ-P07
Balance suitabilityd too coarse for the volumewrong volumeHLa calibration does not startOQ-P06, IQ-P3
Due datesan overdue pipette is usedwrong results in the labMMdue list, stickers, statusOQ-P08
Data migrationan import changes datawrong registerMMpreview and import record with SHA-256OQ-P09
Glassware: an early valuea value taken while the meniscus is set on the balance or during the waiting timewrong volumeHLa value only after the item / vessel was lifted or an OK (MENISCUS SET)OQ-P12, OQ-P13
Glassware: the empty reading (to contain)the item not emptied and dried, or not on the balancewrong volumeMLthe EMPTY prompt after every fill; the empty reading needs an item on the panOQ-P12
Identity of the raw materialsa wrong container or lot is usedwrong productHMidentity check of the code, its lot and use-by date; wrong scans recordedOQ-C02
Lots and use-by datesan expired or locked lot is usedwrong productHLstart blocked; the UP↑SCALE checks the dates with its own clockOQ-C02
Weighinga wrong amount is takenwrong productHLtolerance per ingredient, stable value onlyOQ-C03
Value over its goalit is accepted without reviewwrong productHMQM release with a reason, or recalculation; both in the batch recordOQ-C04
Master formulaa changed formula runswrong productHLa change needs a new approvalOQ-C01
Batch recordit is incomplete or changeddata integrityHLmade by the UP↑SCALE, seal, four eyesOQ-C07
Tolerance narrower than da row is accepted outside its tolerancewrong productHLthe UP↑SCALE flags the row, the app warns and asks at the start, the batch record names the accepted bandOQ-C09
Verdict of the checka wrong formula or limita faulty balance is usedHLreference cases; every value, mean and s shownOQ part A (RT), OQ-R01
Test weightsa wrong value typed or a weight out of tolerancewrong verdictMMa note when the weight tolerance is over a third of a limitIQ-R1, OQ-R02
Failed or due checkit is ignoredresults from an unchecked balanceHMbars on every device; only an ADMIN removes a warning, with a reason, loggedOQ-R03, OQ-R04
Minimum weighta weighing below it is recordedrelative error too bigHMwarning first, entry in the activity logOQ-R05
Air buoyancya wrong density or air densitysmall mass errorMLno correction without a density; the reading is kept; changes loggedOQ-R07
Limits of the rulea wrong TNE or MAVpacks short or overfilledHLreference cases; the limits on the reportOQ part A, OQ-W01
Taking a fillan unstable or wrong valuewrong statisticsMLstable value only; confirmation outside the limits; UNDOOQ-W03
Verdicta wrong verdict for the runpacks shortHLreference cases; every bag on the reportOQ-W04
Open bagscontent is lost before the bag is closedpacks shortMMa note that this is not the ℮ control; the lot check of the closed packsOQ-W07
Balancenot verified, used for packs sold by quantitylegal riskHMyour procedure (the 420 and 710 are not verified)IQ-W1
Readingsan unstable value or a wrong zerowrong densityHLtaken when stable; waits for the zeroOQ-D01
Liquida wrong water temperature or liquidsmall density errorMMthe liquid density is in the saved resultIQ-D1, OQ-D02
Handlingbubbles; the item touches the containerwrong densityHMwarnings; MEASURE AGAINOQ-D04, PQ-D1
Recordkept only in the browser, without user or sealdata integrityMMCOPY TABLE into your recordIQ-D2, OQ-D06
App not openclosed, or the device sleepsweighings missing on the serverMMactivity log and sales catch up; one fixed lab computerIQ-L2, OQ-L02
Server not reachablequeue full, the oldest events droppedrecords missingML1000 events wait, sent in order, red bar; the records stay in the UP↑SCALEOQ-L05
Transfera value differs, or an event comes twicewrong data in the LIMSHLvalues of the record as JSON; fixed idOQ-L03, OQ-L05
Fileschanged on the waydata integrityMLSHA-256 and the seal of the UP↑SCALEOQ-L04
Settingsswitched off or queue emptied unnoticedrecords missingMMa gap in the sequence numbers of the activity logIQ-L3, OQ-L02
Wrong device or rolea probe used for the air, two sensors swappedwrong conditions in a recordHMone device per role; the record names the device and its register entryIQ-S2, OQ-S01
Stale valuesensor out of range, battery emptyan old value recordedHLfreshness limit per role; the app asks to type the valueOQ-S04
Uncalibrated sensorcertificate missing or duevalue not traceable or wrongHMregister with due date; overdue = deviation; correction from the certificateIQ-S1, OQ-S06
Wrong decodinga firmware change by the maker of the devicewrong valueHLpublished formats, reference cases SEN-, plausible ranges only; comparison with a referenceOQ-A, PQ-S1
Register changed unnoticeda correction or U editedwrong values in later recordsHLhistory of every change, ADMIN / QM only, reason with the strict audit trail, sealed register reportOQ-S07
Gaps in the room logapp closed, sensor disconnectedroom not documented for a periodMMthe report shows the logged period; a broadcasting sensor for long periodsOQ-S08, PQ-S1

7 Installation qualification (IQ)

The app fills in what it knows from this device and marks it; "by the tester" means: check it and write down what you found.

IDCheckExpectedFoundResultInitials / date
IQ-01App version and code fingerprintrecorded; the same as in the validation run of chapter 81.01312 · 76598f1485eff4e3b90536ab5e8259fe4c5eb09502d0e7942c84cf2aa5af58cemet
IQ-02Firmware and its fingerprintrecorded; the version you planned to validate1.01312 · 128bc3a1e12e90a5815d8da9741da650165334455680cc3b705b402ba9c00938met
IQ-03Edition and Device ID of the UP↑SCALEENTERPRISE & COMPLIANCE on the UP↑SCALE of this packENTERPRISE & COMPLIANCE · E83DC1241BB0met
IQ-04Balance connected, weighing range and dthe range and d of the balance (its display or data sheet)Max 120 g · d 10 µgmet
IQ-05Identity and calibration certificate of the balanceentered in the certificate data; the certificate is validFirmware 1.01312
configuration counter 61
by the tester
IQ-06Users and auditusers with roles; strict audit if your procedure asks for reasonsusers with rolesmet
IQ-07Every person has a user of their own; the user access register is up to date and reviewedyes (user access register, signed)by the tester
IQ-08Devices (phones / PCs) that keep records are qualified (clock, storage)every device in use is qualified0 of 0 devices qualifiedby the tester
IQ-09The seal of the UP↑SCALE checks on the public check pagea sealed report of this UP↑SCALE checks as validby the tester
IQ-10Backup: archive of the activity log and the record files on your storagesaved where your procedure saysby the tester
IQ-P1Balance, thermometers, barometer and hygrometer entered with their certificates (lab settings)all enteredall entered with a certificatemet
IQ-P2The uncertainties of the instrumentswithin ISO 8655-6:2022 table 2within ISO 8655-6:2022 table 2met
IQ-P3The d of the balance for the instruments in the register (pipettes, dispensers, burettes, glassware)fine enough (ISO 8655-6:2022 table 1; glassware: ISO 4787 table 1)d 0.0100 mg - fine enough for all 5 instruments (pipettes, dispensers, burettes, glassware)met
IQ-P4Lab settings reviewed: limits table, decision rule, k, reference temperature, wateras your procedure saysISO 8655-2 - app table (secondary sources) · simple acceptance (|e| ≤ limit)by the tester
IQ-P5CMC table in use (accredited laboratories)the version of your scope–by the tester
IQ-S1Every sensor and instrument used for records is in the register with certificate, due date and U (k = 2); none is duecompleteall entered with a certificatemet
IQ-S2The roles of the connected sensors are checked (room air, liquid, humidity, air pressure) and the sensors placed next to the balance / in the waterby the testerby the tester
IQ-S3U of the instruments within ISO 8655-6 table 2 where used for pipettes (air 0.3 °C, liquid 0.2 °C, 5 %RH, 10 hPa)withinwithin ISO 8655-6:2022 table 2met
IQ-C1THINGS of the ingredients with approved codes and label names; lots with use-by dates in the lot storeentered and checked against the containersby the tester
IQ-C2Formulas approved by a QM; the protection "only approved recipes can run"as your procedure saysby the tester
IQ-C3At least one QM besides the operators; label printer; storage of the sealed batch records outside the browseras your procedure saysby the tester
IQ-R1Profile, test weights with certificates, weight tolerance (self-check data), smallest net weight, minimum intervalas your procedure saysby the tester
IQ-R2Minimum weight of the balance (SCALE DATA block)the value of its certificate or qualificationby the tester
IQ-R3Air buoyancy correction, if used: the air density at the balance and the densities of the THINGSset; the block shows when and by whomby the tester
IQ-W1Balance for packs sold by quantity: verified (legal for trade) where your national rules ask for itbalance and its verification recordedby the tester
IQ-W2Rules, nominal quantities, tolerances, label unit and moisture allowance (HB 133)as your procedure saysby the tester
IQ-W3The d of the balance (HB 133: at most MAV / 6); bag THINGS and the label setupchecked on a test labelby the tester
IQ-D1Calibrated thermometer; water quality; density of an own liquid; string, container and standas your procedure saysby the tester
IQ-D2Where the results are recorded (the browser keeps the last 30, without user)written in your procedureby the tester
IQ-L1Receiver: https, token, CORS headers, a 2xx answer, POST size for files; a store where entries are only added📡 TEST answers OKby the tester
IQ-L2One forwarding app only, on a qualified device next to the UP↑SCALE that stays open and connectednamed in your procedureby the tester
IQ-L3Events ticked; the receiver drops doubles and checks the sequence and the chain of the activity logas your procedure saysby the tester

8 Operational qualification (OQ), part A: the calculations

The reference cases are worked out by hand from the standards named in each case and computed on this device by the code that judges the results: the cases of the tests and of the pipettes by the firmware of the connected UP↑SCALE, the others by this app. The working of every case is public on up-scales.com/check.

A different app or firmware gives a different fingerprint (chapter 2): run the validation again after every update (chapter 13).

Validation of the calculations on this device, 11/10/2026, 3:41:56 PM: 431 cases passed, 0 failed.

AreaCasesPassedFailed
Scale test suite (OIML R 76-1)98980
Routine check (USP <41>)770
Air buoyancy (OIML D 28 / R 111)880
Uniformity of mass (Ph. Eur. 2.9.5)770
Rounding of money (DIN 1333)770
Package checks (NIST HB 133)29290
Density mode880
Fill weighing (℮, HB 133)32320
Pipettes: density, Z, volumes, uncertainty, decision rule36360
Recipes, solutions, compounding: goals, recalculation, state of a row16160
Units (the legal definitions of oz, lb, ozt, gr, tola, dwt, ct)11110
Pipettes: limits (ISO 8655-2) and the lab table21210
Statistics page (also NIST StRD)660
Pipettes: balance requirements (ISO 8655-6 table 1)770
Pipettes: deviations from ISO 8655-6770
Sensors: decoding the values of other makers' devices (published formats) and their U in the pipette budget35350
Pipettes: CMC and the reported U11110
Glassware: class tolerances (ISO / ASTM), balance, test points and room rules (ISO 4787)17170
Coffee modes: flow rate and recipe maths68680

Every case with its expected and calculated value: annex A.

9 Operational qualification (OQ), part B: test scripts

Run each test with the equipment of your laboratory, write down what you observed, mark pass or fail and sign it. Attach the records the test names (printouts, PDFs, screenshots).

Use a test user or a test pipette where a test changes data, and note them in chapter 14.

The UP↑SCALE system: weighing data, users, audit trail, signatures, records

IDTest and stepsExpected resultObservedPass / failInitials / date
OQ-F01Weighing data path
Put three test weights one after the other on the balance (small, middle, near Max), wait for the stable value and save a record each; then press on the pan (unstable) and save.
Each saved value equals the display of the balance (digits and unit); an unstable reading is not saved as stable.
OQ-F02Audit trail
Change a setting that changes the weight or the records (e.g. the minimum weight) and give a reason; open the activity log.
One entry with user, date, time, old and new value and the reason; the chain check of the log shows no gap.
OQ-F03Roles
Log in as an OPERATOR and try to change the users, the calibration or a protected setting.
Refused; the refusal is in the activity log.
OQ-F04Lockout
Enter a wrong password five times for a test user.
The user is locked; the wrong passwords and the lock are in the log; an ADMIN can unlock.
OQ-F05Electronic signature
Sign a saved report with the meaning "reviewed"; try once with a wrong password.
The wrong password is refused; the signature shows name, date, time and meaning, is linked to the report number and is in the activity log.
OQ-F06Seal and integrity
Save a report as PDF and check it on the public check page; change one character in the HTML report attached to it and check that copy.
The original checks as valid (seal and integrity code); the changed copy is shown as changed.
OQ-F07Export and archive
Export a record file (CSV / JSON) and the archive of the activity log; open them on another device.
Complete and readable; sealed files check as valid.
OQ-F08Time
Compare the time of a new log entry with a reference clock; open the device qualification of this device.
Within the tolerance of your procedure; this device is shown as qualified.
OQ-F09Power cut
While a record is saved (or a run is going on), cut the power of the UP↑SCALE for 10 s, switch it on and connect again.
No record lost or changed; an interrupted log entry is finished or marked; the chain check passes.

Pipette check and pipette calibration

IDTest and stepsExpected resultObservedPass / failInitials / date
OQ-P01Delivery mass with a calibrated weight
Start a pipette check (100 µL, 4 deliveries). As each delivery put a calibrated weight of about 100 mg (class E2 or F1) into the vessel; take it out again in between (the UP↑SCALE takes a new vessel reading by itself).
Each single value (mg) on the record equals the conventional mass of the weight within its maximum permissible error plus d.
OQ-P02Z factor
Enter water 20.0 °C, air 20.0 °C, 1013 hPa, 50 %RH and run a check.
Z on the record 1.00285 µL/mg (1.0029 in the published tables); the record names the water density used.
OQ-P03Limits and verdict
Run a check whose deliveries are inside the limits, then one outside (calibrated weights as in OQ-P01, or a pipette set off by 1 %).
PASS inside, FAIL outside; the record shows the limits and their source.
OQ-P04Implausible value
In a run, deliver about half the volume once (or a much smaller weight); choose REDO with a reason.
The UP↑SCALE stops at the value; the discarded value and the reason are on the report and in the activity log.
OQ-P05Evaporation and conditions at the end
Run a calibration with the evaporation measurement; enter the conditions at the end.
The evaporation rate is on the report and corrects each delivery; the conditions at the start and the end are on the report.
OQ-P06Balance and deviations
Start a calibration of a pipette that needs a finer balance (e.g. 10 µL on a 0.01 mg balance); then one with a room of 25 °C and 4 deliveries.
The first does not start (the app shows the d and the d needed); the second lists the deviations before the start and its report says "based on ISO 8655-6:2022 with deviations".
OQ-P07Uncertainty and CMC
Upload a CMC table with a row for 20 - 200 µL; calibrate a 100 µL pipette at 100 µL and at a volume outside the table.
U is never below the CMC (marked "CMC" when raised); the volume outside the table is marked and the accreditation text is left off for it.
OQ-P08Records and due dates
Finish a run; open the pipette card, the sealed PDF and the activity log.
The run with all single values is in the register; the next due date moved; the PDF checks as valid; the activity log has the entry.
OQ-P09Import of old data
Import a CSV of pipettes from your old system (semicolon, decimal comma); keep the import record.
Every row new, updated, skipped or refused as shown in the preview; the import record names the file and its SHA-256.
OQ-P10Multichannel pipette
Run a check of a multichannel pipette with every channel (or a rotating group).
Each channel is a block of its own; the next channel starts by itself (or asks for an OK, lab setting); the report names the channels.
OQ-P11App lost during a run
Close the app during a run; open it and connect again.
The run goes on in the UP↑SCALE; the app shows it again; no value is lost.
OQ-P12Glassware to contain
Register a 100 mL volumetric flask (class A). Run a check with 2 fills: once fill it on the balance without lifting it, once take it off, fill it and put it back.
Filled on the balance: no value until the flask was lifted or MENISCUS SET was pressed. Lifted and back: the value is taken; after every fill the UP↑SCALE asks to empty and dry the flask and weighs it empty again; the record shows mL, the class tolerance and its source.
OQ-P13Glassware to deliver
Run a check of a one-mark pipette (class AS) into a weighing vessel: lift the vessel for each delivery and put it back.
The value is taken when the vessel is back and stable; the waiting time runs as a countdown; the record names the waiting time and the delivery time measured.

Compounding assistant and solution mode

IDTest and stepsExpected resultObservedPass / failInitials / date
OQ-C01Master formula and approval
Save a test formula with ➕ NEW FORMULA (3 ingredients, a check, an in-process control, a filling step). Try to start a batch; let a QM approve it; change one share and save again.
The batch starts only after the approval, and not after the change (⏳ waiting); the approval is in the activity log.
OQ-C02Lots and identity check
Identity check 📷 scan to unlock. Type an expired lot, then a locked one, then valid lots, and ▶ START BATCH. At a weigh step scan a code that is not approved, a GS1 code with another lot, then the right code.
The expired and the locked lot block the start; the wrong codes give wrong container and the step stays locked; the right code opens it; every scan is in the batch record.
OQ-C03Weighing to the goal
Batch size 100 g. Press ⚖ OVERTAKE with an ingredient under its goal, weigh another one, come back; press OVERTAKE while the weight moves, then stable on the goal. Open the formula on a second device.
The part under the goal is kept and counts; a moving weight is not taken; the value is taken with user and time; the second device shows the same step and values.
OQ-C04QM release and recalculation
Weigh an ingredient 5 % over its goal. 🔏 QM RELEASE: try the logged-in user, a QM with a wrong password, then a QM with password and reason. In another test batch use 🧮 RECALCULATE.
The first two are refused; the release is in the activity log and the batch record with name and reason; the other goals follow its proportion, noted in the batch record.
OQ-C05Checks and in-process controls
Answer a check with NO; type pH 6.2 for a control of 5.5 ± 0.3; give the reasons. Then ✕ ABORT BATCH with a reason.
Both are deviations with their reason in the batch record; the check stays open; the aborted record is closed as ABORTED.
OQ-C06Uniformity of mass
A filling step of 20 units with fills of known mass: one batch with 2 units outside the limit of the dosage form, a second batch with 3.
Average, units outside the limit and twice the limit agree with a hand calculation (e.g. capsules under 300 mg: 10 %); 2 outside: met; 3 outside: NOT met, and a reason is asked.
OQ-C07Batch record and label
✔ FINISH; make the 📄 PDF (SEALED) and ✍ SIGN it as the operator; the same user tries to sign as QM, then another QM signs; print the 🏷 LABEL; check the PDF on the public check page.
Lots, use-by dates, values, users, releases and deviations are listed; the maker is refused as QM; the PDF checks as valid; the label shows the batch and use by = end + shelf life.
OQ-C08Solution mode
🧪 SOLUTION MODE with 2 rows as parts 1 and 4, total 50 g. ⚖ WEIGH NOW the first row 4 % over its goal and press 🧮; weigh the second; ✔ FINISH; make the PDF.
New goals in the same proportion; a row is green within its ± % or within one d, whichever is wider; FINISH only when every row is green; one line per ingredient in the weighing log; the report lists goal, weight, user and time.
OQ-C09Tolerance narrower than d
A test formula with an ingredient of 10 % and a tolerance of 0.2 % on a balance with d 0.1 g. Set the batch size to 1000 g, then to 100 g; at 100 g press ▶ START BATCH, weigh that row 0.08 g over its goal and ✔ FINISH.
At 1000 g (tolerance ± 0.2 g) no warning; at 100 g (± 0.02 g) the warning box names the row with accepted ± 0.1 g and START asks once more; the row is green at +0.08 g; the batch record marks it with a warning line and the accepted band ± 0.1 g.

Routine check before use, minimum weight and air buoyancy correction

IDTest and stepsExpected resultObservedPass / failInitials / date
OQ-R01Repeatability (USP <41>)
On the ☑ TEST page choose Lab: USP <41>, a test weight of e.g. 100 g and your smallest net weight; START ROUTINE CHECK and load the weight 10 times.
Each value equals the display minus the empty plate; mean, s (at least 0.41 d), 2 s / smallest net weight and 2000 x s agree with a hand calculation; PASS at 0.10 % or less.
OQ-R02Accuracy and a failed check
Run Lab: Ph. Eur. 2.1.7 with a second weight of at least 5 % of Max; run it again with the value of that weight typed 0.2 % too high.
First run: the error is judged against 0.05 % (USP: 0.10 %). Second run: FAIL with an error of about -0.2 %.
OQ-R03Failed check on every device
After the FAIL open the app on a second device; press REMOVE WARNING as an OPERATOR; then ↻ RE-TEST.
The red bar NOT RELEASED FOR USE shows on both devices; the OPERATOR is refused; the bar goes after the pass; fail and pass are in the activity log.
OQ-R04Check due
Try to set the minimum interval as an OPERATOR; set every 4 hours as an ADMIN; wait 4 hours.
The OPERATOR is refused; a yellow bar with START shows on every device until a check passes; the change is logged.
OQ-R05Minimum weight
As an ADMIN type 20 g (a test value) in the SCALE DATA block and SUBMIT; save 10 g with ∑ and record it anyway; try a change as an OPERATOR; type the value of the certificate again.
BELOW THE MINIMUM WEIGHT with both values; the record and every change are in the activity log; the OPERATOR is refused.
OQ-R06Records of the checks
Make 📄 PDF OF THIS CHECK, PDF REPORT and EXPORT LOG; check the PDFs on the public check page.
Every value, limit, user and verdict; failures with their re-test or removed warning; missed intervals; both PDFs check as valid.
OQ-R07Air buoyancy correction
As an ADMIN switch it on with PRESET 0.00120 and SUBMIT; load a THING of density 1.0 g/ml and put 100 g on; then air density from 20 °C, 1013.25 hPa, 50 %.
The reading stays 100 g; 🌬 true mass 100.105 g, factor 1.001051 (shown to one digit more than the balance); air density 0.00120 g/cm³; each change logged with old and new value.

Fill weighing and the check of prepackages (℮, NIST HB 133)

IDTest and stepsExpected resultObservedPass / failInitials / date
OQ-W01Limits of the rules
Open 🛍 FILL WEIGHING (ROASTERY or CCLUB MODE). ℮ rules EU with 250 g, 150 g and 40 g; then NIST HB 133 with 454 g (label unit g).
250 g: TNE 9 g, T1 241 g, T2 232 g; 150 g: TNE 6.8 g, T1 143.2 g, T2 136.4 g; 40 g: TNE 3.6 g, T1 36.4 g, T2 32.8 g; 454 g: MAV 19.9 g, MAV line 434.1 g.
OQ-W02Fill state
START FILLING with ℮ 250 g, the green range one TNE, AUTO TARE off; load a tared container to 240, 241, 250, 259 and 260 g.
Orange at 240 g, yellow at 241 g, green at 250 and 259 g, red at 260 g.
OQ-W03Taking a bag
Press ✔ TAKE BAG while the weight moves; take a bag of 238 g; press ↶ UNDO.
A moving weight is not taken; the 238 g bag asks first; UNDO removes it from the run and the statistics.
OQ-W04Statistics and verdict
A new run (℮, 250 g): 8 bags of 252 g, 1 of 255 g, 1 of 238 g.
Mean 250.9 g, s 4.63 g, total 2509 g, overfill 9 g; 1 bag below T1 = 10 %: too many; none below T2; verdict ✗.
OQ-W05A run that goes on
During a run reload the app, take a bag on a second device, cut the power of the UP↑SCALE for 10 s.
Every bag is kept on both devices, none is counted twice.
OQ-W06Report and stock
✔ FINISH; make the print, PDF and CSV; check the PDF on the check page (sealed with ENTERPRISE).
Rule, limits, user, batch, verdict and every bag; the CSV has the same rows; the PDF checks as valid; the stock moved once, no sale booked.
OQ-W07Lot check of closed packs
In 📊 STATISTICS & ℮ choose EU ℮ packs, 250 g, lot size 300; weigh 50 closed packs (or HB 133, lot size 200: 12 packs).
Sample plan 50 / 3 / 4 (HB 133: 12, none over the MAV); the verdict follows the three rules; the lot report lists every pack.

Density mode (Archimedes)

IDTest and stepsExpected resultObservedPass / failInitials / date
OQ-D01Readings
Start DENSITY MODE with something on the plate; empty it; weigh a 50 g steel weight dry, then hanging in water.
Nothing is taken before the zero; both values are taken when stable and equal the display.
OQ-D02Density of the water
Water at 20, 23, 27 and 45 °C: measure and 💾 SAVE each; 📋 COPY TABLE.
Liquid 0.9982, 0.9975, 0.9965 (interpolated) and 0.9922 (the 40 °C value).
OQ-D03Calculation
From A (in air), W (displaced) and the liquid density ρ(liq) work out density = A / W x ρ(liq), volume = W / ρ(liq) and u = density x √((d / A)² + (d / W)²); with the air correction on: A / W x (ρ(liq) - ρ(air)) + ρ(air).
The app shows the same to the last digit; with the correction the 🌬 note with the air density.
OQ-D04Warnings
Let the item rest on the bottom; then measure an item under 5 g on a 0.1 g balance.
A warning that both weights are almost the same; for the small item the ± % it is good to.
OQ-D05Body of known density
Measure a body with a density certificate three times with MEASURE AGAIN.
Within the shown uncertainty plus that of the certificate, or within your limit.
OQ-D06Keeping the result
💾 SAVE, 📋 COPY TABLE; 🏷 SAVE AS THING with SAVE ON THE SCALE; weigh the body with this THING.
The table has name, date, both weights, liquid, density, uncertainty; the volume shown = weight / density.

LIMS / ELN forwarding

IDTest and stepsExpected resultObservedPass / failInitials / date
OQ-L01Connection
In Settings > 🔗 LIMS / ELN FORWARDING type address and token, press 📡 TEST; again with a wrong token.
The ping arrives with id, device and time, and the app shows OK; with the wrong token the server refuses and the app shows the error.
OQ-L02Activity log
Change a setting; close the forwarding app; make two changes on another device; open it again and wait a minute.
Every line arrives once with sequence number, user, text and chain hash; no gap; the chain checks.
OQ-L03Weighings
Save three weighings with ∑, one below the minimum weight.
grams, unit, user and time as in the weighing log; below_min_weight: true on that one.
OQ-L04Sealed file
Tick the sealed reports with the file itself; make a sealed PDF.
A sealed and a sealed_file event with the same log_seq; the decoded file has the SHA-256 of sha256_file and checks as valid.
OQ-L05Server not reachable
Stop the receiver for 10 minutes, make some records, start it again.
The waiting events and the error are shown; then all arrive in their order, every id once.
OQ-L06Finished programs
Tick the finished programs with the report as a file; finish a test batch.
A programs event of the kind batch (UPSCALE-BATCH-1) and the report file with its SHA-256, valid on the check page.
OQ-L07Status and validation
Run a passed, a failed and a passed routine check; run the validation of the calculations.
routine_check and release events (released, not_released, released); a validation event with every case.

📡 Sensors and instruments (room, liquid, pressure)

IDTest and stepsExpected resultObservedPass / failInitials / date
OQ-S01Connect and roles
Connect the room sensor and the thermometer in ☰ 📡 SENSORS; change the role of the thermometer to room air and back.
Values show live; one device per role; the roles are kept for the device.
OQ-S02Typed value wins
In a pipette setup type the water temperature; connect the thermometer.
The typed value stays and is recorded as typed.
OQ-S03Value from a sensor
Empty the field: it fills itself; START a check.
The record and the report name the sensor (and its register entry) for each value.
OQ-S04Stale value
Switch the room sensor off and wait 6 minutes; press 📡 next to the air temperature.
The app refuses the old value and asks to type it.
OQ-S05Correction
Enter a correction of +0.5 °C for the thermometer; compare the value in the app with the display of the device.
Value used = reading + 0.5 °C; raw value and correction in the record.
OQ-S06Calibration due
Set the due date of the room sensor to yesterday; open a pipette calibration setup.
⚠ in the register and the deviation "calibration was due" in the setup and the report.
OQ-S07Audit trail of the register
Change the U of an entry (with the strict audit trail: give a reason), retire another entry, print the register report.
Both changes in the history with user, time, old and new value (and reason); the retired entry is still listed.
OQ-S08Room limits and room log
Set the maximum below the room temperature for 5 minutes, then back; open the room log of the day.
One warning, the chip turns red, the events in the log; the minute values in the chart, CSV and report.

10 Performance qualification (PQ)

The performance under your conditions, with your balance, your operators and your room. Attach the records.

PQ-1 Balance

The final report of the test suite of this balance (repeatability, accuracy, eccentricity and what your procedure asks for) with traceable test weights - the PQ baseline the VSR asks for.

Report no.DateResultInitials

PQ-P1 Pipettes: comparison with an external calibration

Calibrate a reference pipette that has a recent calibration certificate of an accredited laboratory with this system under your routine conditions, at the volumes of the certificate. En = |V(this system) - V(certificate)| / √(U(this system)² + U(certificate)²); pass: En ≤ 1.

The rows below are pre-filled with the last calibrations in the register (mean and reported U of this system); fill in the certificate values.

Glassware: the same with a volumetric flask or a one-mark pipette that has an individual certificate of an accredited laboratory.

PipetteVolume µLCertificate no.Certificate mean µLCertificate U µLThis system mean µLThis system U µLEnEn ≤ 1

PQ-C1 Compounding: routine batches

Make three batches of a formula in routine use with your operators, raw materials and room. Pass: every batch record is complete and reviewed by a QM, and the results meet your specification (uniformity of mass, in-process values and, where your procedure asks, the assay).

TestResultAcceptance limitPass / failInitials / date

PQ-R1 Routine check in daily use

Run the routine check with your profile and weights at the planned interval for a set period (e.g. one month). Pass: the PDF REPORT shows no missed interval, and every failure is followed by a passed re-test or a removed warning with its reason.

TestResultAcceptance limitPass / failInitials / date

PQ-W1 Fill weighing of a production lot

Fill one lot under routine conditions, then check the closed packs with the lot check on your verified balance. Pass: the lot is accepted, and the mean and the overfill of the run are within your targets.

TestResultAcceptance limitPass / failInitials / date

PQ-D1 Density under the conditions of the lab

Measure a body of known density and a typical sample five times each, by your operators at your water temperature. Pass: the mean for the body agrees with its certificate, and the spread of both is within your limits.

TestResultAcceptance limitPass / failInitials / date

PQ-L1 Forwarding in routine use

After a set period of routine use (e.g. two weeks), compare your server with the UP↑SCALE and the app: the activity log by sequence number, sealed files by SHA-256, batch records and routine checks by number. Pass: no gap, no double, the same values.

TestResultAcceptance limitPass / failInitials / date

PQ-S1 Sensors against a reference

At a set interval (e.g. monthly, and after a battery change) read the room sensor and the thermometer next to a calibrated reference instrument and record both values. Pass: the difference stays within the U of the sensor plus the U of the reference. On the days of pipette and glassware calibrations the room log has no gap.

TestResultAcceptance limitPass / failInitials / date

11 21 CFR Part 11 / EU GMP Annex 11 checklist

What the system brings for each point, and what stays with your procedures. A function of the product is no compliance by itself: compliance comes from the validated system together with your procedures.

ClauseRequirementUP↑SCALEYour procedure
§11.10(a)Validationthis pack, reference cases, fingerprintsexecute, assess, approve
§11.10(b)Accurate and complete copiesPDF and HTML reports, CSV / JSON exports - sealed-
§11.10(c)Protection and retention of recordsrecords in the UP↑SCALE, sealed files, archive of the activity logstorage and retention period
§11.10(d)Access limited to authorised peopleusers, roles, passwordswho gets a user
§11.10(e)Audit trailhash-chained activity log: who, when, what (old / new), whyaudit trail review (record in the app)
§11.10(e)Audit trail of the register of sensors and instrumentsevery change with user, time, old / new value, reason (strict audit); entries retired, never deleted; sealed register reportreview with the audit trail
§11.10(f)Operational checks (sequence)guided steps, e.g. the pipette sequence and the routine check-
§11.10(g)Authority checksroles QM, ADMIN, OPERATORassignment of the roles
§11.10(h)Device checksDevice ID of the UP↑SCALE, qualification of each phone / PCqualify the devices
§11.10(i)Trainingtraining dates in the user access registertraining
§11.10(j)Accountability policy-written policy
§11.10(k)Control of the system documentationmanual, changelog, this packdocument control
§11.50 / §11.70Signature manifestation and linkingname, date, time, meaning; linked to the number and code of the report-
§11.100Uniqueness of signaturespermanent user numbers, never given twiceidentity check of the people
§11.200 / §11.300Signature components, password controlsuser and password; lockout after 5 wrong passwords; password age; a password set by an ADMIN is changed at the first loginpassword policy
Annex 11 §4Validationthis packyour validation
Annex 11 §5Data from other instruments (sensors)each value with its source: device, register entry, certificate, raw value, correction; age and plausibility checks; a typed value winsqualify the sensors (chapter 📡 sensors)
Annex 11 §7 / §17Data storage, archivingrecords in the UP↑SCALE, exports, archive of the logbackups and archive
Annex 11 §10Change managementa firmware change is in the activity log; the VSR asks to confirm the releasechange control (chapter 13)
Annex 11 §11Periodic evaluation-periodic review (chapter 13)
Annex 11 §12Securityusers, roles, lockoutIT security
Annex 11 §16Business continuity-plan for a failure of the system

12 Supplier information

Product: the UP↑SCALE app (a web app, also as a single file for offline use) and the firmware of the UP↑SCALE, up-scales.com.

Versions: every app and firmware release has a version number. The app computes a code fingerprint (SHA-256) of its calculation code and of the reference cases; the firmware reports the SHA-256 of its build. The same build gives the same fingerprints on every device.

Changes: the changes of each version are in the changelog on up-scales.com; a new firmware build is written into the activity log of the UP↑SCALE ("Firmware changed").

Reference cases: worked out by hand from the named standards; the working of each case is public on up-scales.com/check, so your laboratory can check every expected value.

Known limits: the limits of ISO 8655-2 come from public secondary sources unless your laboratory types its own table; UP↑SCALE makes no claim of certification or compliance and is not affiliated with any standards body or authority.

13 Change control and periodic review

When to repeat which part of the validation. Record every change in your change control.

ChangeWhat to do
New firmware of the UP↑SCALE (activity log "Firmware changed"; the VSR asks to confirm the release)IQ-02, OQ part A, the OQ tests touched by the change (changelog) or all, new VSR
New app version (a new code fingerprint)IQ-01, OQ part A, the touched OQ tests, new VSR
Balance replaced, repaired, calibrated or adjusted (start the change control yourself - only the UP↑SCALE 420, 710 and HDS count their own calibrations)IQ-04, IQ-05, PQ-1; pipettes: PQ-P1; new VSR
Lab settings of the pipettes changed (limits table, CMC, decision rule, instruments)IQ-P1 ... IQ-P5, OQ-P03, OQ-P07 as touched
New phone or PCdevice qualification, IQ-08
Periodic review (e.g. yearly)audit trail review, user access review, open deviations, the release status in the VSR

14 Deviations, conclusion and approval

Deviations

No.TestDeviationAssessment and actionClosed (date, initials)
1
2
3
4

Conclusion

Remarks

Approval

RoleNameDateSignature
Performed by
Reviewed by
Approved by (QA)

The release for use of the UP↑SCALE follows with the Validation Summary Report (VSR) on the TEST page of the app, which takes this pack as its IQ/OQ document.

Annex A - the reference cases of this device

CaseClauseResultExpectedCalculated
T3-01R 76-1 Table 3✓[II][II]
T3-02R 76-1 Table 3✓[II][II]
T3-03R 76-1 Table 3✓[III][III]
T3-04R 76-1 Table 3✓[III, IIII][III, IIII]
T3-05R 76-1 Table 3✓IIIIIIII
T3-06R 76-1 Table 3✓[IIII][IIII]
T3-07R 76-1 Table 3✓[I, II][I, II]
T3-08R 76-1 Table 3✓[III][III]
T3-09R 76-1 Table 3✓[II, III][II, III]
T3-16R 76-1 Table 3✓[I, II][I, II]
T3-10R 76-1 Table 3, 3.4.3✓0.10.1
T3-11R 76-1 Table 3, 3.4.3✓0.20.2
T3-12R 76-1 Table 3, 3.4.3✓55
T3-13R 76-1 Table 3, 3.4.3✓2020
T3-14R 76-1 Table 3, 3.4.3✓5050
T3-15R 76-1 Table 3, 3.4.3✓22
T6-01R 76-1 Table 6✓0.50.5
T6-02R 76-1 Table 6✓11
T6-03R 76-1 Table 6✓11
T6-04R 76-1 Table 6✓1.51.5
T6-05R 76-1 Table 6✓11
T6-06R 76-1 Table 6✓0.50.5
T6-07R 76-1 Table 6✓11
T6-08R 76-1 Table 6✓1.51.5
T6-09R 76-1 Table 6✓0.50.5
T6-10R 76-1 Table 6✓1.51.5
T6-11R 76-1 Table 6✓11
T6-12R 76-1 Table 6✓1.51.5
T6-13R 76-1 Table 6✓1010
LV-01R 76-1 3.5.1, 3.5.2✓okok
LV-02R 76-1 3.5.1, 3.5.2✓okok
LV-03R 76-1 3.5.1, 3.5.2✓maybemaybe
LV-04R 76-1 3.5.1, 3.5.2✓warnwarn
LV-05R 76-1 3.5.1, 3.5.2✓badbad
LV-06R 76-1 3.5.1✓okok
A44-01R 76-1 A.4.4.1, Table 3✓[5, 300, 500, 2000, 3000][5, 300, 500, 2000, 3000]
A44-02R 76-1 A.4.4.1, Table 3✓[5, 300, 500, 600, 750, 1050, 1500, 2000, 2250, 3000][5, 300, 500, 600, 750, 1050, 1500, 2000, 2250, 3000]
A44-03R 76-1 A.4.4.1, Table 3✓[20, 300, 500, 2000, 3000][20, 300, 500, 2000, 3000]
A410-01R 76-1 A.4.10✓66
A410-02R 76-1 A.4.10✓33
A410-03R 76-1 A.4.10✓1010
A410-04R 76-1 A.4.10✓[2400][2400]
A410-05R 76-1 A.4.10✓[1500, 3000][1500, 3000]
A443-01R 76-1 A.4.4.3✓{err: 1, errD: 0.2, u: 0}{err: 1, errD: 0.2, u: 0}
A443-05R 76-1 A.4.4.3✓{err: 0.5, errD: 0.1, u: 0}{err: 0.5, errD: 0.1, u: 0}
A443-06R 76-1 A.4.4.3, 3.5.3.2✓{err: 1, errD: 0.2, u: 0.5}{err: 1, errD: 0.2, u: 0.5}
A443-02R 76-1 3.5.3.2✓{err: 0.1, errD: 1, u: 0.5}{err: 0.1, errD: 1, u: 0.5}
A443-03R 76-1 A.4.1.6✓{err: 0.03, errD: 0.3, u: 0.1}{err: 0.03, errD: 0.3, u: 0.1}
A443-04R 76-1 3.7.1✓{err: 0.1, errD: 1, u: 1.5}{err: 0.1, errD: 1, u: 1.5}
W-01R 76-1 A.4.4.1, 3.5.1✓{checks: [[0.2, 0.1], [0.6, 0.1], [1.2, 0.1], [0.9, 0.1], [0.3, 0.1], [0.3, 0.2], [0.1, 0.2]], status: meets}{checks: [[0.2, 0.1], [0.6, 0.1], [1.2, 0.1], [0.9, 0.1], [0.3, 0.1], [0.3, 0.2], [0.1, 0.2]], status: meets}
R-01R 76-1 3.6.1, A.4.10✓{checks: [[1, 0.5], [2, 1]], status: maybe}{checks: [[1, 0.5], [2, 1]], status: maybe}
R-02R 76-1 3.6.1, A.4.10✓{checks: [[0.5, 0.1], [0.7, 0.2]], status: meets}{checks: [[0.5, 0.1], [0.7, 0.2]], status: meets}
R-03R 76-1 3.6.1, 3.5.2✓{checks: [[2, 0.1], [3, 0.2]], status: fails}{checks: [[2, 0.1], [3, 0.2]], status: fails}
C-01R 76-1 3.9.4.1, 3.9.4.2, A.4.11✓{checks: [[0.4, 0.5], [0.1, 0.2], [0.2, 0.5]], status: meets}{checks: [[0.4, 0.5], [0.1, 0.2], [0.2, 0.5]], status: meets}
C-02R 76-1 3.9.4.1✓{checks: [[0.4, 0.5], [0.3, 0.2], [0.1, 0.5]], status: fails}{checks: [[0.4, 0.5], [0.3, 0.2], [0.1, 0.5]], status: fails}
Z-01R 76-1 4.5.2, A.4.2.3.1✓{checks: [[0.1, 0.25]], status: meets}{checks: [[0.1, 0.25]], status: meets}
Z-02R 76-1 4.5.2✓{checks: [[0.3, 0.25]], status: maybe}{checks: [[0.3, 0.25]], status: maybe}
Z-03R 76-1 4.5.2✓{checks: [[0.5, 0.25]], status: fails}{checks: [[0.5, 0.25]], status: fails}
S-01R 76-1 4.4.2, A.4.12✓{checks: [[1, 1], [2, 1]], status: fails}{checks: [[1, 1], [2, 1]], status: fails}
D-01R 76-1 3.8.2.2, A.4.8.2✓{checks: [[0, 0.5], [1, 0.5]], status: fails}{checks: [[0, 0.5], [1, 0.5]], status: fails}
LIN-01least squares (EURAMET cg-18 style, R 76 has no linearity limit)✓{a: 1.0001, maxDev: 0}{a: 1.0001, maxDev: 0}
LIN-02least squares✓{a: 1.5, maxDev: 0.333333}{a: 1.5, maxDev: 0.333333}
ECC-01R 76-1 3.6.2, Table 6 (difference to the middle, EURAMET cg-18)✓{maxD: 0.7, mpe: 1, u: 0.2, level: ok}{maxD: 0.7, mpe: 1, u: 0.2, level: ok, absD: null, absU: null, absMpe: null, absLevel: null}
ECC-02R 76-1 3.6.2, Table 6✓{maxD: 1, mpe: 1, u: 1, level: maybe}{maxD: 1, mpe: 1, u: 1, level: maybe, absD: null, absU: null, absMpe: null, absLevel: null}
ECC-03R 76-1 3.6.2, 3.5.2✓{maxD: 2.5, mpe: 1, u: 0.2, level: bad}{maxD: 2.5, mpe: 1, u: 0.2, level: bad, absD: null, absU: null, absMpe: null, absLevel: null}
ECC-04R 76-1 3.6.2, A.4.7 (against the true mass)✓{absD: 0.5, absU: 0.1, absMpe: 1, absLevel: ok}{maxD: 0.5, mpe: 1, u: 0.2, level: ok, absD: 0.5, absU: 0.1, absMpe: 1, absLevel: ok}
ECC-05R 76-1 3.6.2, A.4.7, 3.7.1✓{absD: 1, absU: 1, absMpe: 1, absLevel: maybe}{maxD: 1, mpe: 1, u: 1, level: maybe, absD: 1, absU: 1, absMpe: 1, absLevel: maybe}
ECC-06R 76-1 3.6.2, 3.5.2✓{absD: 1.2, absU: 0.1, absMpe: 1, absLevel: warn}{maxD: 1.2, mpe: 1, u: 0.2, level: maybe, absD: 1.2, absU: 0.1, absMpe: 1, absLevel: warn}
ECC-07R 76-1 A.4.7✓{absD: 0, absLevel: ok}{maxD: 3, mpe: 1, u: 0.2, level: bad, absD: 0, absU: 0.1, absMpe: 1, absLevel: ok}
W111-01R 76-1 3.7.1✓falsefalse
W111-02R 76-1 3.7.1✓truetrue
W111-03R 76-1 3.7.1✓falsefalse
RT-01USP <41> repeatability + accuracy✓{mean: 100.03, s: 0.048305, minW: 96.609178, checks: [[0.966092, 1], [0, 1]], pass: true}{mean: 100.03, s: 0.048305, sEff: 0.048305, minW: 96.609178, checks: [[0.966092, 1], [0, 1]], pass: true}
RT-02USP <41> repeatability (s replaced by 0.41 d)✓{s: 0, sEff: 0.041, minW: 82, checks: [[0.82, 0.5], [0, 0.5]], pass: false}{mean: 50, s: 0, sEff: 0.041, minW: 82, checks: [[0.82, 0.5], [0, 0.5]], pass: false}
RT-03Ph. Eur. 2.1.7 sensitivity✓{checks: [[0.82, 2], [6, 5]], pass: false}{mean: 100, s: 0, sEff: 0.041, minW: 82, checks: [[0.82, 2], [6, 5]], pass: false}
RT-04Routine check, own tolerance (quick profile)✓{mean: 1005, checks: [[5, 10]], pass: true}{mean: 1005, s: 1, sEff: 1, minW: 2000, checks: [[5, 10]], pass: true}
RT-05Routine check, own tolerance (minimum 2 d)✓{mean: 102.666667, checks: [[2.666667, 2]], pass: false}{mean: 102.666667, s: 0.57735, sEff: 0.57735, minW: 1154.700538, checks: [[2.666667, 2]], pass: false}
RT-06R 76-1 3.5.2 (in use = 2 x mpe of Table 6)✓{checks: [[2, 2], [3, 3]], pass: true}{mean: 1001, s: 1, sEff: 1, minW: 2000, checks: [[2, 2], [3, 3]], pass: true}
DS-01R 76-1 Table 3; NIST HB 44 S.1.2.1 (d = 1, 2 or 5 x 10^n)✓[II, III][II, III]
DS-02R 76-1 Table 3, 3.4.3✓1010
DS-03R 76-1 Table 3✓[III][III]
DS-04R 76-1 Table 3✓[][]
DS-05R 76-1 Table 3✓[][]
MI-01R 76-1 3.3 / Table 3 for each partial range (multi-interval; our reading: a class fits when it fits every range)✓[III][III]
MI-02R 76-1 Table 6 (mpe in e of the partial range of the load)✓2.52.5
MI-03R 76-1 Table 6 (mpe in e of the partial range of the load)✓1.51.5
MI-04R 76-1 Table 6, the boundary of a partial range✓2.52.5
MI-05R 76-1 A.4.4 (error of a reading, rounding d / 2 of the range of the load)✓{err: 5, errD: 2.5, u: 1.25}{err: 5, errD: 2.5, u: 1.25}
AB-01OIML D 28 (conventional mass, reference 8000 kg/m3, air 1.2 kg/m3) - air buoyancy correction✓1.0010531.001053
AB-02OIML D 28 - air buoyancy correction✓1.0013721.001372
AB-03OIML D 28 - air buoyancy correction✓11
AB-04OIML D 28 - air buoyancy correction✓0.9999120.999912
AB-05OIML R 111-1:2004 E.3-1 (air density, approximation)✓0.0011990.001199
AB-06OIML R 111-1:2004 E.3-1 (air density, approximation)✓0.0011170.001117
AB-07Archimedes with the air term (density mode, readings are conventional masses)✓{density: 2.695498, volume: 10.008529}{density: 2.695498, volume: 10.008529}
AB-08OIML D 28 - true mass of a reading✓50.04254350.042543
UM-01Ph. Eur. 2.9.5 - capsules, average mass < 300 mg✓{n: 20, mean: 0.25, limitPct: 10, out1: 2, out2: 0, pass: true}{n: 20, mean: 0.25, limitPct: 10, out1: 2, out2: 0, pass: true}
UM-02Ph. Eur. 2.9.5 - more than 2 units outside the limit✓{n: 20, mean: 0.25, limitPct: 10, out1: 4, out2: 0, pass: false}{n: 20, mean: 0.25, limitPct: 10, out1: 4, out2: 0, pass: false}
UM-03Ph. Eur. 2.9.5 - a unit outside twice the limit✓{n: 20, mean: 0.25, limitPct: 10, out1: 2, out2: 2, pass: false}{n: 20, mean: 0.25, limitPct: 10, out1: 2, out2: 2, pass: false}
UM-04Ph. Eur. 2.9.5 - tablets, average mass 250 mg or more✓{n: 20, mean: 0.3, limitPct: 5, out1: 2, out2: 0, pass: true}{n: 20, mean: 0.3, limitPct: 5, out1: 2, out2: 0, pass: true}
UM-05own limit around the target fill (not Ph. Eur.)✓{n: 4, mean: 10.125, limitPct: 5, out1: 1, out2: 0, pass: false}{n: 4, mean: 10.125, limitPct: 5, out1: 1, out2: 0, pass: false}
UM-06Ph. Eur. 2.9.5 - 20 units are needed✓{n: 10, mean: 0.25, limitPct: 10, out1: 0, out2: 0, pass: false}{n: 10, mean: 0.25, limitPct: 10, out1: 0, out2: 0, pass: false}
UM-07Ph. Eur. 2.9.5 - the limits of the table✓[10, 5, 7.5, null, 5][10, 5, 7.5, null, 5]
PR-01DIN 1333 - commercial rounding to the cent✓1.011.01
PR-02DIN 1333 - price x weight✓4.524.52
PR-03DIN 1333 - price x weight✓1.51.5
PR-04DIN 1333 - price x weight✓9.989.98
PR-05DIN 1333 - price x weight✓4.524.52
PR-06DIN 1333 - a minus amount✓-2.68-2.68
PR-07DIN 1333 - six decimals (Bitcoin)✓0.0000130.000013
HB-01NIST HB 133-2026 Table 2-5 (g)✓12.712.7
HB-02NIST HB 133-2026 Table 2-5 (g)✓3.63.6
HB-03NIST HB 133-2026 Table 2-5 (g)✓3.593.59
HB-04NIST HB 133-2026 Table 2-5 (g)✓3.63.6
HB-05NIST HB 133-2026 Table 2-5 (g)✓5.45.4
HB-06NIST HB 133-2026 Table 2-5 (g)✓35.335.3
HB-07NIST HB 133-2026 Table 2-5 (g)✓600600
HB-08NIST HB 133-2026 Table 2-5 (oz)✓19.49029719.490297
HB-09NIST HB 133-2026 Table 2-5 (lb)✓19.95806419.958064
HB-10NIST HB 133-2026 Table 2-1✓[[1, null, 0], [5, 1.242, 0], [12, 0.635, 0], [24, 0.422, 0], [48, 0.29, 1]][[1, null, 0], [5, 1.242, 0], [12, 0.635, 0], [24, 0.422, 0], [48, 0.29, 1]]
HB-11NIST HB 133-2026 2.3.7 - average within the SEL✓{n: 12, ume: 0, avgError: -0.5, sel: 0.74152, pass: true}{n: 12, ume: 0, avgError: -0.5, sel: 0.74152, pass: true}
HB-12NIST HB 133-2026 2.3.7 - average outside the SEL✓{n: 12, ume: 0, avgError: -1.333333, sel: 0.988694, pass: false}{n: 12, ume: 0, avgError: -1.333333, sel: 0.988694, pass: false}
HB-13NIST HB 133-2026 2.3.7 - unreasonable minus error✓{n: 12, ume: 1, avgError: 1.666667, pass: false}{n: 12, ume: 1, avgError: 1.666667, sel: 2.932939, pass: false}
HB-14NIST HB 133-2026 Table 2-1 - one pack over the MAV allowed (n = 48)✓{n: 48, ume: 1, avgError: 0.708333, pass: true}{n: 48, ume: 1, avgError: 0.708333, sel: 0.586011, pass: true}
HB-15NIST HB 133-2026 2.3.7 - cannabis without the moisture allowance✓{n: 12, ume: 0, avgError: -0.583333, sel: 0.123587, pass: false}{n: 12, ume: 0, avgError: -0.583333, sel: 0.123587, pass: false}
HB-16NIST HB 133-2026 2.3.8.1, Table 2-3 - cannabis, moisture allowance 3 %✓{n: 12, ume: 0, avgError: 0.256667, pass: true}{n: 12, ume: 0, avgError: 0.256667, sel: 0.123587, pass: true}
HB-17NIST HB 133-2026 2.3.8.1 - example flour✓27.2127.21
HB-18NIST HB 133-2026 Table 2-7 - MAV by count✓[0, 1, 1, 2, 7, 20, 20, 30][0, 1, 1, 2, 7, 20, 20, 30]
HB-19NIST HB 133-2026 Table 2-11 - low count (50 or fewer)✓[[5, 1], [12, 1], [24, 2], [48, 3]][[5, 1], [12, 1], [24, 2], [48, 3]]
HB-20NIST HB 133-2026 4.2.1 - example pencils✓{n: 12, short: 1, defective: 1, pass: true}{n: 12, short: 1, defective: 1, pass: true}
HB-21NIST HB 133-2026 4.2.1 - too many short packs✓{n: 12, short: 2, defective: 0, pass: false}{n: 12, short: 2, defective: 0, pass: false}
HB-22NIST HB 133-2026 4.2.2 / 2.3.7 - more than 50 items✓{n: 12, ume: 0, avgError: -0.166667, sel: 0.247173, pass: true}{n: 12, ume: 0, avgError: -0.166667, sel: 0.247173, pass: true}
HB-23NIST HB 133-2026 Table 2-6 - MAV by volume✓[0.5, 14.7, 29, 300, 14.786765][0.5, 14.7, 29, 300, 14.786765]
HB-24NIST HB 133-2026 3.2 - density of 2 packs✓{density: 0.944, diff: 2}{density: 0.944, diff: 2}
HB-25NIST HB 133-2026 3.2 / 2.3.7 - a lot labeled by volume✓{n: 12, ume: 0, avgError: -0.833333, sel: 1.235867, pass: true}{n: 12, ume: 0, avgError: -0.833333, sel: 1.235867, pass: true}
HB-26NIST HB 133-2026 Table 2-3 - packs to open for the tare✓[12, 17, 8, 2, 24, 2, 2][12, 17, 8, 2, 24, 2, 2]
HB-27NIST HB 133-2026 2.3.5 - tare sample, few packs✓{init: 2, total: 2, ratio: 11.5, avg: 12.2, done: true}{init: 2, total: 2, rc: 4.6, rt: 0.4, ratio: 11.5, avg: 12.2, done: true, need: 0}
HB-28NIST HB 133-2026 2.3.5 - tare sample, open more✓{init: 2, total: 12, need: 10, done: false}{init: 2, total: 12, rc: 0.5, rt: 0.5, ratio: 1, avg: null, done: false, need: 10}
HB-29NIST HB 133-2026 Table 2-1 col. 5 / 6 - initial tare sample✓[2, 3, 2, 2, 1][2, 3, 2, 2, 1]
CAL-01R 76-1 A.4.4.3 (rounding of a digital reading), 3.7.1, Table 6 - calibration check✓{mean: 1000.016667, errD: 0.166667, u: 0.55, mpe: 1, level: ok, verdict: ok}{mean: 1000.016667, errD: 0.166667, u: 0.55, mpe: 1, level: ok, verdict: ok}
CAL-02R 76-1 A.4.4.3, Table 6 - calibration check (the rounding does not average out)✓{mean: 1000.05, errD: 0.5, u: 0.55, mpe: 1, level: maybe, verdict: ok}{mean: 1000.05, errD: 0.5, u: 0.55, mpe: 1, level: maybe, verdict: ok}
CAL-03R 76-1 3.7.1 (test weights), A.4.4.3 - calibration check✓{mean: 1000.016667, errD: 0.166667, u: 1, mpe: 1, level: maybe, verdict: ok}{mean: 1000.016667, errD: 0.166667, u: 1, mpe: 1, level: maybe, verdict: ok}
CAL-04R 76-1 A.4.4.3 (readings before rounding), Table 6 - calibration check✓{mean: 1000.13, errD: 1.3, u: 0.15, mpe: 1, level: warn, verdict: ok}{mean: 1000.13, errD: 1.3, u: 0.15, mpe: 1, level: warn, verdict: ok}
CAL-05R 76-1 A.4.4.3, Table 6 - calibration check, own limits✓{mean: 1003.333333, errD: 3.333333, u: 0.55, mpe: 1, level: bad, verdict: acceptable}{mean: 1003.333333, errD: 3.333333, u: 0.55, mpe: 1, level: bad, verdict: acceptable}
CAL-06R 76-1 Table 6 - calibration check, own limits✓{mean: 1006.333333, errD: 6.333333, u: 0.55, mpe: 1, level: bad, verdict: recalibrate}{mean: 1006.333333, errD: 6.333333, u: 0.55, mpe: 1, level: bad, verdict: recalibrate}
CAL-07R 76-1 A.4.4.3, Table 6 (multi-interval: rounding and mpe in the partial range of the load) - calibration check✓{mean: 10006.666667, errD: 3.333333, u: 1.5, mpe: 2.5, level: maybe, verdict: acceptable}{mean: 10006.666667, errD: 3.333333, u: 1.5, mpe: 2.5, level: maybe, verdict: acceptable}
A443-07R 76-1 A.4.4.3 note (multi-interval: ½ e of the range of the load, ½ e1 at the zero)✓{err: 0.6, errD: 0.3, u: 0}{err: 0.6, errD: 0.3, u: 0}
MI-06R 76-1 A.4.4.1, 3.3 (the example of the standard: Max = 2 / 5 / 15 kg, e = 1 / 2 / 10 g)✓[20, 500, 2000, 4000, 5000, 15000][20, 500, 2000, 4000, 5000, 15000]
R-04R 76-1 3.6.1, 3.7.1 (the same weight: its tolerance is not in the difference)✓{checks: [[1, 0.62], [2, 1]], status: maybe}{checks: [[1, 0.62], [2, 1]], status: maybe}
W-02R 76-1 3.5.1 (up and down each within the mpe; no limit for their difference)✓{checks: [[0.1, 0.1025], [0.8, 0.11], [0.5, 0.115], [0.8, 0.11], [0.2, 0.1025], [1.6, 0.2], [0.1, 0.2]], status: meets}{checks: [[0.1, 0.1025], [0.8, 0.11], [0.5, 0.115], [0.8, 0.11], [0.2, 0.1025], [1.6, 0.2], [0.1, 0.2]], status: meets}
ECC-08R 76-1 3.6, A.4.7 (the error at each measurement, not the mean of the rounds)✓{maxD: 0.75, u: 0.2, level: ok, absD: 1.2, absU: 0.1, absMpe: 1, absLevel: warn}{maxD: 0.75, mpe: 1, u: 0.2, level: ok, absD: 1.2, absU: 0.1, absMpe: 1, absLevel: warn}
ECC-09EURAMET cg-18, R 76-1 3.3 (multi-interval: the rounding in the range of the load)✓{maxD: 5, mpe: 2.5, u: 2.5, level: maybe}{maxD: 5, mpe: 2.5, u: 2.5, level: maybe, absD: null, absU: null, absMpe: null, absLevel: null}
C-03R 76-1 3.9.4.1, 3.9.4.2, 3.3 (multi-interval: e of the load, zero return 0.5 e1)✓{checks: [[2.5, 1.25], [2.5, 0.5], [0, 0.5]], status: maybe}{checks: [[2.5, 1.25], [2.5, 0.5], [0, 0.5]], status: maybe}
S-02R 76-1 4.4.2, A.4.12, 3.3 (multi-interval: e of the load)✓{checks: [[2.5, 2.5]], status: meets}{checks: [[2.5, 2.5]], status: meets}
D-02R 76-1 3.8.2.2, A.4.8.2 (the actual scale interval at the load)✓{checks: [[0, 1.25]], status: meets}{checks: [[0, 1.25]], status: meets}
RT-07USP <41> repeatability (0.41 d with the d at the test weight)✓{mean: 10000, s: 0, sEff: 2.05, minW: 4100, checks: [[2.05, 2.5], [0, 5]], pass: true}{mean: 10000, s: 0, sEff: 2.05, minW: 4100, checks: [[2.05, 2.5], [0, 5]], pass: true}
DEN-01Density mode - water at 20 °C, no air term✓{liquid: 0.9982, density: 2.69754, volume: 9.997996, u: 0.002882}{liquid: 0.9982, density: 2.69754, volume: 9.997996, u: 0.002882}
DEN-02Density mode - water at 23 °C (a row of the table)✓{liquid: 0.99754, density: 18.855939, volume: 0.822022, u: 0.023027}{liquid: 0.99754, density: 18.855939, volume: 0.822022, u: 0.023027}
DEN-03Density mode - water at 27 °C (interpolated between 25 and 30 °C) with the air term✓{liquid: 0.996484, density: 7.824717, volume: 13.330878, u: 0.005944}{liquid: 0.996484, density: 7.824717, volume: 13.330878, u: 0.005944}
DEN-04Density mode - isopropanol (0.786 g/cm³ at 20 °C) with the air term✓{liquid: 0.786, density: 2.117711, volume: 3.837345, u: 0.00075}{liquid: 0.786, density: 2.117711, volume: 3.837345, u: 0.00075}
DEN-05Density mode - own liquid 1.2 g/cm³✓{liquid: 1.2, density: 2.678571, volume: 18.666667, u: 0.013103}{liquid: 1.2, density: 2.678571, volume: 18.666667, u: 0.013103}
DEN-06Density mode - salt water, temperature unknown✓{liquid: 1.025, density: 7.1684, volume: 1.083941, u: 0.065236}{liquid: 1.025, density: 7.1684, volume: 1.083941, u: 0.065236}
DEN-07Density mode - water above 40 °C: the 40 °C value✓{liquid: 0.99222, density: 1.98444, volume: 5.039205, u: 0.004437}{liquid: 0.99222, density: 1.98444, volume: 5.039205, u: 0.004437}
DEN-08Density mode - own liquid outside 0.5 - 3 g/cm³: not known✓{liquid: 0, density: null, volume: null, u: null}{liquid: 0, density: null, volume: null, u: null}
FE-0176/211/EEC annex I - 250 g: TNE 9 g, T1 241 g, T2 232 g, max. 2.5 % below T1✓{tne: 9, t1: 241, t2: 232, pct: 2.5, nominal: 250}{tne: 9, t1: 241, t2: 232, pct: 2.5, nominal: 250}
FE-0276/211/EEC annex I - 40 g: 9 % = 3.6 g✓{tne: 3.6, t1: 36.4, t2: 32.8, pct: 2.5, nominal: 40}{tne: 3.6, t1: 36.4, t2: 32.8, pct: 2.5, nominal: 40}
FE-0376/211/EEC annex I - 150 g: 4.5 % = 6.75 g, rounded up to 0.1 g✓{tne: 6.8, t1: 143.2, t2: 136.4, pct: 2.5, nominal: 150}{tne: 6.8, t1: 143.2, t2: 136.4, pct: 2.5, nominal: 150}
FE-0476/211/EEC annex I - below 5 g: no TNE✓{tne: null, t1: null, t2: null, pct: 2.5, nominal: null}{tne: null, t1: null, t2: null, pct: 2.5, nominal: null}
FE-0576/211/EEC annex I - 2 kg: 1.5 % = 30 g✓{tne: 30, t1: 1970, t2: 1940, pct: 2.5, nominal: 2000}{tne: 30, t1: 1970, t2: 1940, pct: 2.5, nominal: 2000}
FE-06FPackV § 22 - above 10 kg: no TNE in the German table✓{tne: null, t1: null, t2: null, pct: 2, nominal: null}{tne: null, t1: null, t2: null, pct: 2, nominal: null}
FE-07FPackV § 9 / § 10 (3) - drained weight 500 g: T2 = Qn - 3 TNE, max. 2 % below T1✓{tne: 15, t1: 485, t2: 455, pct: 2, nominal: 500}{tne: 15, t1: 485, t2: 455, pct: 2, nominal: 500}
FE-08NIST HB 133-2026 Table 2-5 - 454 g labeled in g: MAV 19.9 g✓{tne: 19.9, t1: 434.1, t2: null, pct: null, nominal: 454}{tne: 19.9, t1: 434.1, t2: null, pct: null, nominal: 454}
FE-09NIST HB 133-2026 2.3.8.1 - 907 g flour (3 % moisture), labeled in oz✓{tne: 31.751466, t1: 848.038534, t2: null, pct: null, nominal: 879.79}{tne: 31.751466, t1: 848.038534, t2: null, pct: null, nominal: 879.79}
FE-10NIST HB 133-2026 - own moisture allowance 5 %, labeled in lb✓{tne: 63.502932, t1: 2091.059068, t2: null, pct: null, nominal: 2154.562}{tne: 63.502932, t1: 2091.059068, t2: null, pct: null, nominal: 2154.562}
FE-1176/211/EEC - 40 fills of 250 g, 1 below T1 (2.5 % of 40 = 1 allowed)✓{mean: 250.725, belowT1: 1, belowT2: 0, ok: true}{mean: 250.725, belowT1: 1, belowT2: 0, ok: true}
FE-1276/211/EEC - 40 fills, 2 below T1: more than 2.5 %✓{mean: 251.375, belowT1: 2, belowT2: 0, ok: false}{mean: 251.375, belowT1: 2, belowT2: 0, ok: false}
FE-1376/211/EEC - one fill below T2✓{mean: 253.75, belowT1: 1, belowT2: 1, ok: false}{mean: 253.75, belowT1: 1, belowT2: 1, ok: false}
FE-1476/211/EEC - the mean below Qn✓{mean: 249.5, belowT1: 0, belowT2: 0, ok: false}{mean: 249.5, belowT1: 0, belowT2: 0, ok: false}
FE-15FPackV - 50 fills, 1 below T1 = 2 %: allowed✓{mean: 501.64, belowT1: 1, belowT2: 0, ok: true}{mean: 501.64, belowT1: 1, belowT2: 0, ok: true}
FE-16NIST HB 133 - mean below the nominal (no lot: every pack against the MAV)✓{mean: 453.5, belowT1: 0, belowT2: 0, ok: false}{mean: 453.5, belowT1: 0, belowT2: 0, ok: false}
FE-17NIST HB 133 - one pack below Qn - MAV (unreasonable minus error)✓{mean: 454.166667, belowT1: 1, belowT2: 0, ok: false}{mean: 454.166667, belowT1: 1, belowT2: 0, ok: false}
FS-01fill weighing ℮ 250 g, green up to Qn + 9 g: under T1 / low / ok / over✓[0, 3, 3, 1, 1, 2][0, 3, 3, 1, 1, 2]
FS-02fill weighing ℮ 250 g without an upper limit (over 0)✓[3, 1, 1][3, 1, 1]
FS-03fill weighing own tolerance 100 g - 2 / + 5 g✓[0, 1, 1, 2][0, 1, 1, 2]
FS-04filling step Ph. Eur. 2.9.5 capsules 250 mg: ± 10 % around the target✓[0, 1, 1, 2][0, 1, 1, 2]
FS-05filling step own limit ± 5 % around 10 g✓[0, 1, 1, 2][0, 1, 1, 2]
FS-06fill weighing US 454 g (MAV 19.9 g): below Qn - MAV is under✓[0, 3, 3, 1][0, 3, 3, 1]
FM-01NIST HB 133-2026 Table 2-5 (g) - the fill weighing of the UP↑SCALE✓12.712.7
FM-02NIST HB 133-2026 Table 2-5 (g) - the fill weighing of the UP↑SCALE✓3.63.6
FM-03NIST HB 133-2026 Table 2-5 (g) - the fill weighing of the UP↑SCALE✓3.593.59
FM-04NIST HB 133-2026 Table 2-5 (g) - the fill weighing of the UP↑SCALE✓3.63.6
FM-05NIST HB 133-2026 Table 2-5 (g) - the fill weighing of the UP↑SCALE✓5.45.4
FM-06NIST HB 133-2026 Table 2-5 (g) - the fill weighing of the UP↑SCALE✓35.335.3
FM-07NIST HB 133-2026 Table 2-5 (g) - the fill weighing of the UP↑SCALE✓600600
FM-08NIST HB 133-2026 Table 2-5 (oz) - the fill weighing of the UP↑SCALE✓19.49029719.490297
FM-09NIST HB 133-2026 Table 2-5 (lb) - the fill weighing of the UP↑SCALE✓19.95806419.958064
PIP-01Water density - Tanaka 2001, 15 °C, 1013.25 hPa✓0.9991030.999103
PIP-02Water density - 20 °C, 1013.25 hPa (table 998.2067 kg/m3)✓0.9982070.998207
PIP-03Water density - 25 °C, 1013.25 hPa✓0.9970470.997047
PIP-04Water density - 20 °C, 950 hPa (compressibility)✓0.9982040.998204
PIP-05Air density - OIML R 111-1 E.3-1 (= the simplified CIPM formula, EURAMET cg-19 eq. 4), 20 °C, 1013.25 hPa, 50 %RH✓0.0011990.001199
PIP-06Air density - 23 °C, 980 hPa, 40 %RH✓0.0011480.001148
PIP-07Z factor at 20 °C, 1013.25 hPa (published tables: 1.0029 µL/mg)✓1.0028511.002851
PIP-08Z factor at 15 °C (published table: 1.0020)✓1.001971.00197
PIP-09Z factor at 25 °C (published table: 1.0040)✓1.0041.004
PIP-10Z factor at 30 °C (published table: 1.0054)✓1.0053921.005392
PIP-11Volumes of 10 deliveries of a 100 µL pipette, no evaporation✓{mean: 100.036037, es: 0.036037, esp: 0.036037, sr: 0.016071, cv: 0.016066, volumes: [100.027009, 100.050082, 100.012965, 100.056101, 100.037041, 100.024, 100.045066, 100.031022, 100.05911, 100.017981]}{mean: 100.036037, es: 0.036037, esp: 0.036037, sr: 0.016071, cv: 0.016066, volumes: [100.027009, 100.050082, 100.012965, 100.056101, 100.037041, 100.024, 100.045066, 100.031022, 100.05911, 100.017981]}
PIP-12The same with an evaporation rate of 0.0005 mg/s (corrected per cycle time)✓{mean: 100.045422, es: 0.045422, esp: 0.045422, sr: 0.016171, cv: 0.016163, volumes: [100.036238, 100.059662, 100.021943, 100.06553, 100.046821, 100.033128, 100.054445, 100.040552, 100.06844, 100.02746]}{mean: 100.045422, es: 0.045422, esp: 0.045422, sr: 0.016171, cv: 0.016163, volumes: [100.036238, 100.059662, 100.021943, 100.06553, 100.046821, 100.033128, 100.054445, 100.040552, 100.06844, 100.02746]}
PIP-13The same with gamma 2.4e-4 /°C at a water temperature of 21.5 °C (volume referred to 20 °C)✓{mean: 99.999645, es: -0.000355, esp: -0.000355, sr: 0.016066, cv: 0.016066, volumes: [99.99062, 100.013684, 99.976581, 100.019701, 100.000648, 99.987612, 100.00867, 99.994631, 100.022709, 99.981595]}{mean: 99.999645, es: -0.000355, esp: -0.000355, sr: 0.016066, cv: 0.016066, volumes: [99.99062, 100.013684, 99.976581, 100.019701, 100.000648, 99.987612, 100.00867, 99.994631, 100.022709, 99.981595]}
PIP-14Quick check: 4 deliveries of 100 µL✓{mean: 99.99429, es: -0.00571, esp: -0.00571, sr: 0.021664, cv: 0.021665, volumes: [99.99429, 99.974233, 100.024376, 99.984262]}{mean: 99.99429, es: -0.00571, esp: -0.00571, sr: 0.021664, cv: 0.021665, volumes: [99.99429, 99.974233, 100.024376, 99.984262]}
PIP-15Uncertainty of the mean volume - 100 µL, d 0.01 mg (ISO/TR 20461 model as rebuilt)✓{uc: 0.016264, U: 0.032528, uuse: 0.224856, Uuse: 0.449713, contrib: [0.005114, 0.010032, 0.001, 0.010032, 0.001295, 0.005418, 0.002229, 0.00019, 0.000099, 0.000051, 0.000065, 0.000201, 0.000025, 0, 0.016171, 0.200091, 0.100045, 0, 0]}{uc: 0.016264, U: 0.032528, uuse: 0.224856, Uuse: 0.449713, contrib: [0.005114, 0.010032, 0.001, 0.010032, 0.001295, 0.005418, 0.002229, 0.00019, 0.000099, 0.000051, 0.000065, 0.000201, 0.000025, 0, 0.016171, 0.200091, 0.100045, 0, 0]}
PIP-16Uncertainty - 10 µL on a micro balance (d 0.001 mg)✓{uc: 0.004793, U: 0.009586, uuse: 0.023692, Uuse: 0.047385, contrib: [0.00207, 0.002006, 0.0001, 0.002006, 0.000129, 0.00325, 0.000215, 0.000019, 0.00001, 0.000005, 0.000007, 0.00002, 0.000003, 0, 0.006544, 0.019993, 0.009997, 0, 0]}{uc: 0.004793, U: 0.009586, uuse: 0.023692, Uuse: 0.047385, contrib: [0.00207, 0.002006, 0.0001, 0.002006, 0.000129, 0.00325, 0.000215, 0.000019, 0.00001, 0.000005, 0.000007, 0.00002, 0.000003, 0, 0.006544, 0.019993, 0.009997, 0, 0]}
PIP-17Uncertainty - 1000 µL on an analytical balance (d 0.1 mg), no evaporation measured✓{uc: 0.157907, U: 0.315813, uuse: 2.251289, Uuse: 4.502578, contrib: [0.063298, 0.100326, 0.010006, 0.100326, 0.012952, 0, 0.022803, 0.001895, 0.000991, 0.000525, 0.000641, 0.002008, 0.000247, 0, 0.200164, 2.001159, 1.00058, 0, 0]}{uc: 0.157907, U: 0.315813, uuse: 2.251289, Uuse: 4.502578, contrib: [0.063298, 0.100326, 0.010006, 0.100326, 0.012952, 0, 0.022803, 0.001895, 0.000991, 0.000525, 0.000641, 0.002008, 0.000247, 0, 0.200164, 2.001159, 1.00058, 0, 0]}
PIP-18Decision rule - simple acceptance, pass✓{verdict: 1, sys: true, rand: true}{verdict: 1, sys: true, rand: true}
PIP-19Decision rule - simple acceptance, random error too big✓{verdict: 2, sys: true, rand: false}{verdict: 2, sys: true, rand: false}
PIP-20Decision rule - guard band, pass✓{verdict: 1, sys: true, rand: true}{verdict: 1, sys: true, rand: true}
PIP-21Decision rule - guard band, inconclusive✓{verdict: 3, sys: true, rand: true}{verdict: 3, sys: true, rand: true}
PIP-22Decision rule - guard band, fail✓{verdict: 2, sys: false, rand: true}{verdict: 2, sys: false, rand: true}
PIP-23Decision rule - one delivery: no random error✓{verdict: 1, sys: true, rand: true}{verdict: 1, sys: true, rand: true}
PIP-24EURAMET cg-19 v4.1 (2025), example 2: 100 mL pycnometer, m 99.7500 g, 18.94 °C, air density 0.0012 g/mL, 1e-5 /°C (published V20 = 100.014 mL)✓{mean: 100014.182682}{mean: 100014.182682, es: 14.182682, esp: 0.014183, sr: null, cv: null, volumes: [100014.182682]}
PIP-25EURAMET cg-19 v4.1 (2025), example 1: 1000 mL flask, m 996.9505 g, 19.11 °C, air density 0.0012 g/mL, 1e-5 /°C (published V20 = 999.628 mL)✓{mean: 999622.565086}{mean: 999622.565086, es: -377.434914, esp: -0.037743, sr: null, cv: null, volumes: [999622.565086]}
PIP-26Water density of air-saturated water - 20 °C, 1013.25 hPa (Tanaka 2001; EURAMET cg-19 eq. 3)✓0.9982040.998204
PIP-27Z factor with air-saturated water - 20 °C, 1013.25 hPa, 50 %RH✓1.0028541.002854
PIP-28EURAMET cg-19 v4.1 example 2 (100 mL pycnometer) with air-saturated water✓{mean: 100014.443882}{mean: 100014.443882, es: 14.443882, esp: 0.014444, sr: null, cv: null, volumes: [100014.443882]}
PIP-29A lab with the reference temperature 27 °C: gamma 2.4e-4 /°C, water 26.5 °C - the volume referred to 27 °C✓{mean: 100.16993, es: 0.16993, esp: 0.16993, sr: 0.016093, cv: 0.016066, volumes: [100.160889, 100.183993, 100.146826, 100.19002, 100.170934, 100.157876, 100.17897, 100.164907, 100.193033, 100.151849]}{mean: 100.16993, es: 0.16993, esp: 0.16993, sr: 0.016093, cv: 0.016066, volumes: [100.160889, 100.183993, 100.146826, 100.19002, 100.170934, 100.157876, 100.17897, 100.164907, 100.193033, 100.151849]}
PIP-30Handling of the instrument 0.1 % of the volume in U of the mean volume (EURAMET cg-19 v4.1 6.3.7.2) - otherwise as PIP-15✓{uc: 0.101359, U: 0.202718, uuse: 0.246109, Uuse: 0.492217, contrib: [0.005114, 0.010032, 0.001, 0.010032, 0.001295, 0.005418, 0.002229, 0.00019, 0.000099, 0.000051, 0.000065, 0.000201, 0.000025, 0, 0.016171, 0.200091, 0.100045, 0, 0.100045]}{uc: 0.101359, U: 0.202718, uuse: 0.246109, Uuse: 0.492217, contrib: [0.005114, 0.010032, 0.001, 0.010032, 0.001295, 0.005418, 0.002229, 0.00019, 0.000099, 0.000051, 0.000065, 0.000201, 0.000025, 0, 0.016171, 0.200091, 0.100045, 0, 0.100045]}
SOL-01Recipe / solution: the goals of the rows from their shares - 200 g, shares 50 / 30 / 20 %✓{goals: [100, 60, 40], sum: 100}{goals: [100, 60, 40], sum: 100}
SOL-02The shares as the app sends them (goal / biggest x 100): 90 g, shares 50 / 100✓{goals: [30, 60], sum: 150}{goals: [30, 60], sum: 150}
SOL-03A share of exactly 100 % counts in the sum (above 100: a fixed weight, not counted) - 300 g, shares 100 / 50✓{goals: [200, 100], sum: 150}{goals: [200, 100], sum: 150}
SOL-04Recalculation: the base row (goal 100 g) was taken with 105 g - every goal in the same proportion✓{goals: [105, 63, 42], total: 210}{goals: [105, 63, 42], total: 210}
SOL-05Recalculation from the second row: goal 60 g taken with 57 g✓{goals: [95, 57, 38], total: 190}{goals: [95, 57, 38], total: 190}
SOL-06No recalculation when the base row has nothing weighed✓{goals: [100, 60, 40], total: 200}{goals: [100, 60, 40], total: 200}
SOL-07State of a row - goal 100 g, tolerance 0.5 %, d 0.1 g: 100.4 g✓{state: ok, w: 100.4}{state: ok, w: 100.4, tolg: 0.5, band: 0.5, below: false}
SOL-08The same row with 100.6 g✓{state: over, w: 100.6}{state: over, w: 100.6, tolg: 0.5, band: 0.5, below: false}
SOL-09The same row with 99.4 g✓{state: under, w: 99.4}{state: under, w: 99.4, tolg: 0.5, band: 0.5, below: false}
SOL-10Tolerance 0: a value within 1 d of the goal is ok (100.1 g, d 0.1 g)✓{state: ok, w: 100.1}{state: ok, w: 100.1, tolg: 0, band: 0.1, below: false}
SOL-11Already in the vessel: base 40 g + reading 60.3 g, tolerance 0✓{state: over, w: 100.3}{state: over, w: 100.3, tolg: 0, band: 0.1, below: false}
SOL-12Air buoyancy correction of the row +1000 ppm: reading 99.95 g, tolerance 0.1 %✓{state: ok, w: 100.04995}{state: ok, w: 100.04995, tolg: 0.1, band: 0.1, below: false}
SOL-13Tolerance narrower than d - goal 10 g, tolerance 0.2 %, d 0.1 g: flagged, accepted within 1 d (10.08 g)✓{state: ok, w: 10.08, tolg: 0.02, band: 0.1, below: true}{state: ok, w: 10.08, tolg: 0.02, band: 0.1, below: true}
SOL-14Tolerance equal to d - goal 10 g, tolerance 1 %, d 0.1 g: not flagged (10.1 g)✓{state: ok, w: 10.1, tolg: 0.1, band: 0.1, below: false}{state: ok, w: 10.1, tolg: 0.1, band: 0.1, below: false}
SOL-15Tolerance wider than d - goal 100 g, tolerance 0.5 %, d 0.1 g: the band is the tolerance (100.4 g)✓{state: ok, tolg: 0.5, band: 0.5, below: false}{state: ok, w: 100.4, tolg: 0.5, band: 0.5, below: false}
SOL-16No tolerance - goal 100 g, d 0.1 g: the band is 1 d, not flagged (100.1 g)✓{state: ok, tolg: 0, band: 0.1, below: false}{state: ok, w: 100.1, tolg: 0, band: 0.1, below: false}
UNIT-01Unit - 100 g in avoirdupois ounces (1 oz = 28.349523125 g)✓3.5273963.527396
UNIT-02Unit - 1000 g in pounds (1 lb = 453.59237 g, international pound 1959)✓2.2046232.204623
UNIT-03Unit - 1 troy ounce (31.1034768 g)✓11
UNIT-04Unit - 10 kg in grains (1 gr = 64.79891 mg)✓154323.583529154323.583529
UNIT-05Unit - 10 kg in tola (1 tola = 180 gr = 11.6638038 g)✓857.353242857.353242
UNIT-06Unit - 1 pennyweight (24 gr = 1.55517384 g)✓11
UNIT-07Unit - 1 g in metric carats (1 ct = 0.2 g)✓55
UNIT-08Unit - 3.5 g in eighths (the eighth of the shops: 3.5 g - not 1/8 oz)✓11
UNIT-09Unit - 2500 g in kg✓2.52.5
UNIT-10Unit - 12.5 mg as mg✓12.512.5
MPE-01ISO 8655-2:2022 (secondary sources) - 100 µL single-channel at the nominal volume✓{sys: 0.8, rand: 0.3}{sys: 0.8, rand: 0.3}
MPE-02Multichannel 1000 µL x 8: the default of the app, two times the single-channel limits (the rule of ISO 8655-2:2002)✓{sys: 16, rand: 6}{sys: 16, rand: 6}
MPE-03A nominal volume between the rows (300 µL): the % of the next bigger row (500 µL)✓{sys: 2.4, rand: 0.9}{sys: 2.4, rand: 0.9}
MPE-0410 µL single-channel✓{sys: 0.12, rand: 0.08}{sys: 0.12, rand: 0.08}
MPE-05Test volumes of a calibration: nominal, 50 %, max(10 %, lower limit) - 100-1000 µL✓[1000, 500, 100][1000, 500, 100]
MPE-06Test volumes - 0.5-10 µL (10 % above the lower limit)✓[10, 5, 1][10, 5, 1]
MPE-07Test volumes - a fixed-volume pipette✓[200][200]
MPE-08Lab table with multichannel columns - 100 µL x 8✓{sys: 1.5, rand: 0.6}{sys: 1.5, rand: 0.6}
MPE-09The same table - a single-channel 100 µL pipette✓{sys: 0.8, rand: 0.3}{sys: 0.8, rand: 0.3}
MPE-10Lab table - 150 µL x 8 between the rows 100 and 200 µL✓{sys: 2.25, rand: 0.9}{sys: 2.25, rand: 0.9}
MPE-11Lab limits at one test volume - 100 µL pipette at 10 µL✓{sys: 0.25, rand: 0.15}{sys: 0.25, rand: 0.15}
MPE-12The same line for 100 µL x 8 without multichannel columns✓{sys: 0.5, rand: 0.3}{sys: 0.5, rand: 0.3}
MPE-13A test volume without its own line - the line of the nominal volume✓{sys: 0.8, rand: 0.3}{sys: 0.8, rand: 0.3}
MPE-14Piston burette, motor-driven, 25 mL at the nominal volume (ISO 8655-3:2022 table 1: 0.20 % / 0.070 %)✓{sys: 50, rand: 17.5}{sys: 50, rand: 17.5}
MPE-15The same burette at 10 % (2.5 mL): the 10 % column of table 1 (2.0 % / 0.70 %)✓{sys: 50, rand: 17.5}{sys: 50, rand: 17.5}
MPE-16Motor-driven burette 50 mL at 50 % (25 mL): the 50 % column (0.40 % / 0.10 %)✓{sys: 100, rand: 25}{sys: 100, rand: 25}
MPE-17Motor-driven burette 1 mL at 10 % (0.1 mL): the row up to 1 mL (6.0 % / 1.0 % at 10 %)✓{sys: 6, rand: 1}{sys: 6, rand: 1}
MPE-18Piston burette, manual, 25 mL (maker procedure: 0.2 % / 0.1 %)✓{sys: 50, rand: 25}{sys: 50, rand: 25}
MPE-19Bottle-top dispenser 10 mL at 10 % (1 mL): 6.0 % / 2.0 % (maker procedure, ISO 8655-5:2022)✓{sys: 60, rand: 20}{sys: 60, rand: 20}
MPE-20Repeating dispenser: no default limits (maker or own limits needed)✓{sys: null, rand: null}{sys: null, rand: null}
LIM-01The limits table as typed in the lab settings (decimal comma, a line for a test volume, two bad lines)✓{rows: [[100, 0.8, 0.3, 1.5, 0.6]], vrows: [[100, 10, 0.25, 0.15]], bad: [3, 4]}{rows: [[100, 0.8, 0.3, 1.5, 0.6]], vrows: [[100, 10, 0.25, 0.15]], bad: [3, 4]}
WU-01The unit table of the app: g per unit = the legal definitions, gram -> unit = 1 / (g per unit)✓[[1, 1], [28.349523, 0.035274], [3.5, 0.285714], [453.59237, 0.002205], [31.103477, 0.032151], [0.2, 5], [0.064799, 15.432358], [11.663804, 0.085735], [1.555174, 0.643015], [420, 0.002381], [1000, 0.001], [0.001, 1000], [0.000001, 1000000], [1000000, 0.000001]][[1, 1], [28.349523, 0.035274], [3.5, 0.285714], [453.59237, 0.002205], [31.103477, 0.032151], [0.2, 5], [0.064799, 15.432358], [11.663804, 0.085735], [1.555174, 0.643015], [420, 0.002381], [1000, 0.001], [0.001, 1000], [0.000001, 1000000], [1000000, 0.000001]]
ST-01Statistics page - 10, 12, 14 g✓{n: 3, mean: 12, min: 10, max: 14, range: 4, sd: 2, cv: 16.666667}{n: 3, mean: 12, min: 10, max: 14, range: 4, sd: 2, cv: 16.666667}
ST-02Statistics page with limits: setpoint 10 g, perfect +/- 1 %, ok +/- 5 % - 9.8, 10.0, 10.2, 10.4 g✓{mean: 10.1, range: 0.6, sd: 0.258199, cv: 2.556425, perfect: 25, ok: 75, out: 0, cp: 0.645497, cpk: 0.516398}{n: 4, mean: 10.1, min: 9.8, max: 10.4, range: 0.6, sd: 0.258199, cv: 2.556425, perfect: 25, ok: 75, out: 0, cp: 0.645497, cpk: 0.516398}
ST-03NIST StRD univariate data set NumAcc1 (10000001, 10000003, 10000002): certified mean 10000002, standard deviation 1✓{n: 3, mean: 10000002, sd: 1}{n: 3, mean: 10000002, min: 10000001, max: 10000003, range: 2, sd: 1, cv: 0.00001}
ST-04A large offset after the design of NIST StRD NumAcc3: 1000000.2 and 50 pairs 1000000.1 / 1000000.3 (101 values)✓{n: 101, mean: 1000000.2, sd: 0.1, min: 1000000.1, max: 1000000.3}{n: 101, mean: 1000000.2, min: 1000000.1, max: 1000000.3, range: 0.2, sd: 0.1, cv: 0.00001}
ST-05One value: no standard deviation✓{n: 1, mean: 5, sd: 0, cv: 0, range: 0}{n: 1, mean: 5, min: 5, max: 5, range: 0, sd: 0, cv: 0}
ST-06The limits of the statistics from % of a setpoint: 200 g, perfect -1 % / +2 %, ok +/- 5 %✓{perfect: [198, 204], ok: [190, 210]}{perfect: [198, 204], ok: [190, 210]}
BAL-01ISO 8655-6:2022 balance - 10 µL: d 0.001 mg, s 0.006 mg, U in use 0.012 mg✓{d: 0.001, s: 0.006, u: 0.012}{d: 0.001, s: 0.006, u: 0.012}
BAL-02ISO 8655-6:2022 table 1 - 100 µL: d 0.01 mg, s 0.025 mg, U in use 0.05 mg✓{d: 0.01, s: 0.025, u: 0.05}{d: 0.01, s: 0.025, u: 0.05}
BAL-031000 µL x 8 on a single-channel balance: repeatability and uncertainty x 2 (table 1, footnote a)✓{d: 0.1, s: 0.4, u: 0.8}{d: 0.1, s: 0.4, u: 0.8}
BAL-0420 µL: the second row starts at 20 µL✓{d: 0.01, s: 0.025, u: 0.05}{d: 0.01, s: 0.025, u: 0.05}
BAL-050.5 µL single-channel: below 2 µL the U in use must stay below 1/4 of the max. systematic error (table 1, footnote e)✓{d: 0.001, s: 0.006, u: 0.00625}{d: 0.001, s: 0.006, u: 0.00625}
BAL-0610 mL: the row 200 µL - 10 mL includes 10 mL✓{d: 0.1, s: 0.2, u: 0.4}{d: 0.1, s: 0.2, u: 0.4}
BAL-071 µL x 8 on a single-channel balance: footnote e is for single-channel pipettes, footnote a doubles✓{d: 0.001, s: 0.012, u: 0.024}{d: 0.001, s: 0.012, u: 0.024}
DEV-01ISO 8655-6:2022 clause 4 - a calibration with no deviation the app can see (100 µL, 10-100 µL)✓[][]
DEV-028.1.1 / 8.1.2 - only the nominal volume of an adjustable pipette and 4 deliveries✓[volumes, n][volumes, n]
DEV-036 / 7.2 - room 24.0 °C, 40 %RH, water 23.0 °C (start)✓[room_t, room_rh, water_air][room_t, room_rh, water_air]
DEV-047.2 - reference temperature 27 °C, humidity not entered, the room 26.0 -> 26.8 °C✓[rh_none, room_change][rh_none, room_change]
DEV-055.5 table 2 - air thermometer u 0.5 °C, hygrometer u 5 %RH (k = 1)✓[inst_ta, inst_rh][inst_ta, inst_rh]
DEV-06Air temperature left empty, a fixed 200 µL pipette, stopped early✓[ta_none, stopped][ta_none, stopped]
DEV-075.1 - the room thermometer of the run was due for calibration (register of the sensors)✓[inst_due][inst_due]
SEN-01RuuviTag data format 5 - the valid test vector of the maker✓{t: 24.3, rh: 53.49, pa: 1000.44}{t: 24.3, rh: 53.49, pa: 1000.44}
SEN-02RuuviTag data format 5 - the maximum test vector✓{t: 163.835, rh: 163.835, pa: 1155.34}{t: 163.835, rh: 163.835, pa: 1155.34}
SEN-03RuuviTag data format 5 - the minimum test vector✓{t: -163.835, rh: 0, pa: 500}{t: -163.835, rh: 0, pa: 500}
SEN-04RuuviTag data format 5 - the invalid test vector gives no value✓{t: null, rh: null, pa: null}{t: null, rh: null, pa: null}
SEN-05Health Thermometer 0x2A1C - IEEE-11073 FLOAT 36.5 °C✓{t: 36.5, rh: null, pa: null}{t: 36.5, rh: null, pa: null}
SEN-06Health Thermometer 0x2A1C - in °F (flag bit 0)✓{t: 37, rh: null, pa: null}{t: 37, rh: null, pa: null}
SEN-07Health Thermometer 0x2A1C - NaN gives no value✓––
SEN-08Health Thermometer 0x2A1C - a negative mantissa✓{t: -5.25, rh: null, pa: null}{t: -5.25, rh: null, pa: null}
SEN-09Environmental Sensing 0x2A6E temperature (sint16, 0.01 °C)✓{t: 21.38, rh: null, pa: null}{t: 21.38, rh: null, pa: null}
SEN-10Environmental Sensing 0x2A6F humidity (uint16, 0.01 %)✓{t: null, rh: 45, pa: null}{t: null, rh: 45, pa: null}
SEN-11Environmental Sensing 0x2A6D pressure (uint32, 0.1 Pa)✓{t: null, rh: null, pa: 1013.25}{t: null, rh: null, pa: 1013.25}
SEN-12Xiaomi LYWSD03MMC (its own firmware) - int16 LE 0.01 °C, %, mV✓{t: 18.67, rh: 61, pa: null}{t: 18.67, rh: 61, pa: null}
SEN-13Nordic Thingy:52 temperature - int8 + hundredths, below zero✓{t: -5.5, rh: null, pa: null}{t: -5.5, rh: null, pa: null}
SEN-14Nordic Thingy:52 pressure - int32 LE + hundredths (hPa)✓{t: null, rh: null, pa: 1013.25}{t: null, rh: null, pa: 1013.25}
SEN-15Aranet4 current readings (13 bytes)✓{t: 21.5, rh: 45, pa: 1013.2}{t: 21.5, rh: 45, pa: 1013.2}
SEN-16BTHome v2 - the example of the format: 40 02 CA 09 03 BF 13✓{t: 25.06, rh: 50.55, pa: null}{t: 25.06, rh: 50.55, pa: null}
SEN-17BTHome v2 - packet id, battery, a negative temperature, pressure (uint24, 0.01 hPa)✓{t: -5.5, rh: 50.55, pa: 1013.25}{t: -5.5, rh: 50.55, pa: 1013.25}
SEN-18BTHome v2 - an encrypted packet is not read✓––
SEN-19pvvx custom format (service data 0x181A, 15 bytes)✓{t: 21.37, rh: 45.1, pa: null}{t: 21.37, rh: 45.1, pa: null}
SEN-20Govee H5075 family (maker 0xEC88) - packed value✓{t: 21.8, rh: 44.4, pa: null}{t: 21.8, rh: 44.4, pa: null}
SEN-21Govee H5075 family - below zero (bit 23)✓{t: -3.2, rh: 61.5, pa: null}{t: -3.2, rh: 61.5, pa: null}
SEN-22A serial sensor line (Vaisala style): T= 21.3 'C RH= 45.2 %RH P= 1013.2 hPa✓{t: 21.3, rh: 45.2, pa: 1013.2}{t: 21.3, rh: 45.2, pa: 1013.2}
SEN-23A serial sensor line in °F and inHg✓{t: 22, rh: null, pa: 1013.207888}{t: 22, rh: null, pa: 1013.207888}
SEN-24Pipette budget: an instrument with U 0.4 °C (k = 2), the lab 0.1 °C - the bigger standard uncertainty is used✓0.20.2
SEN-25Pipette budget: an instrument with U 0.2 °C, the lab 0.15 °C✓0.150.15
SEN-26Pipette budget: a value without an instrument of the register✓0.10.1
SEN-27Modbus RTU read request with its CRC-16/MODBUS: device 1, function 03, register 0, 10 registers✓01030000000AC5CD01030000000AC5CD
SEN-28Modbus float32, the low word first (Vaisala HMP110: 0x0000 relative humidity, 0x0002 temperature)✓21.521.5
SEN-29Modbus float32, the high word first✓21.521.5
SEN-30Modbus int16 below zero (function 04)✓-200-200
SEN-31Modbus uint32✓100000100000
SEN-32Modbus frame with a wrong CRC gives no value✓––
SEN-33JSON paths of the HTTP and MQTT sources✓[21.4, 45.5, 22.1, null][21.4, 45.5, 22.1, null]
SEN-34MQTT 3.1.1: the remaining length (2.2.3) and topic filters with + and # (4.7)✓[[0], [127], [128, 1], [193, 2], [255, 127]][[0], [127], [128, 1], [193, 2], [255, 127]]
SEN-35MQTT topic filters✓[true, true, false, true][true, true, false, true]
CMC-01CMC lookup - an absolute row (10-100 µL: 0.1 µL)✓0.10.1
CMC-02CMC lookup - a relative row (100-1000 µL: 0.2 %)✓11
CMC-03CMC lookup - a + b x V (1-10 µL: 0.05 + 0.001 V)✓0.0550.055
CMC-04CMC lookup - two rows meet at 100 µL: the bigger CMC✓0.20.2
CMC-05CMC lookup - outside the scope (no row for 20 mL air displacement)✓––
CMC-06CMC lookup - a row for positive displacement only does not cover an air displacement pipette✓––
CMC-07ILAC P14 - the reported U is never smaller than the CMC (raised)✓{U: 0.1, raised: true, outside: false}{U: 0.1, raised: true, outside: false}
CMC-08ILAC P14 - U bigger than the CMC stays✓{U: 0.2, raised: false, outside: false}{U: 0.2, raised: false, outside: false}
CMC-09ILAC P14 - no CMC: outside the scope, U as calculated✓{U: 0.2, raised: false, outside: true}{U: 0.2, raised: false, outside: true}
CMC-10CMC of a burette: only the burette row (5 mL: 0.1 % = 5 µL; the pipette row is not used)✓55
CMC-11CMC of a pipette (air displacement): only the pipette row, never a burette row✓1515
PIP-31Glassware: setting the meniscus at a ring mark, u = u_p x π/4 x ز (EURAMET cg-19 v4.1 6.3.7.1) - neck Ø 12 mm, u_p 0.025 mm✓2.8274332.827433
PIP-32Glassware: reading a graduated item once (cylinder), triangular over half the reading step: u = r / (2√6) - reading resolution r = 1 mL✓204.124145204.124145
PIP-33Glassware: reading a graduated item twice (burette: zero and the mark): √2 x r / (2√6) - reading resolution r = 0.1 mL✓28.86751328.867513
PIP-34Glassware: no meniscus method - no component✓00
PIP-35Glassware: uncertainty of a 100 mL volumetric flask (to contain, 10 fills, borosilicate 3.3 γ 9.9e-6 /°C at the water temperature against 20 °C, u(γ) = 5 %/√3, the meniscus of a 13 mm neck in U as component 20)✓{uc: 4.043739, U: 8.087478, uuse: 4.690016, Uuse: 9.380032, contrib: [0.791828, 0.200629, 0.200048, 0.200629, 0.012951, 0, 2.129349, 0.037976, 0.099152, 0.025627, 0.064631, 0.20071, 0.024907, 0.042879, 2.503979, 0, 0, 0, 0, 3.318307]}{uc: 4.043739, U: 8.087478, uuse: 4.690016, Uuse: 9.380032, contrib: [0.791828, 0.200629, 0.200048, 0.200629, 0.012951, 0, 2.129349, 0.037976, 0.099152, 0.025627, 0.064631, 0.20071, 0.024907, 0.042879, 2.503979, 0, 0, 0, 0, 3.318307]}
PIP-36Glassware: soda-lime glass (γ 27e-6 /°C, ISO 4787) referred to 27 °C, the item at the water temperature 25.4 °C✓{mean: 100123.998696, es: 123.998696, esp: 0.123999, sr: 2.115835, cv: 0.002113, volumes: [100124.199522, 100121.789608, 100126.006958]}{mean: 100123.998696, es: 123.998696, esp: 0.123999, sr: 2.115835, cv: 0.002113, volumes: [100124.199522, 100121.789608, 100126.006958]}
GLS-01Glassware: ISO 1042 volumetric flask 100 mL class A (secondary sources)✓{sys: 100, rand: 0, std: ISO 1042}{sys: 100, rand: 0, std: ISO 1042}
GLS-02Glassware: ASTM E288 / USP <31> volumetric flask 100 mL class A✓{sys: 80, rand: 0, std: ASTM E288}{sys: 80, rand: 0, std: ASTM E288}
GLS-03Glassware: class B = 2 x class A (ISO 1042 flask 250 mL)✓{sys: 300, rand: 0, std: ISO 1042}{sys: 300, rand: 0, std: ISO 1042}
GLS-04Glassware: ISO 648 one-mark pipette 25 mL class AS (= class A)✓{sys: 30, rand: 0, std: ISO 648}{sys: 30, rand: 0, std: ISO 648}
GLS-05Glassware: ASTM E1272 graduated cylinder 100 mL class A✓{sys: 500, rand: 0, std: ASTM E1272}{sys: 500, rand: 0, std: ASTM E1272}
GLS-06Glassware: ISO 385 burette 50 mL class A (the same tolerance at every point)✓{sys: 50, rand: 0, std: ISO 385}{sys: 50, rand: 0, std: ISO 385}
GLS-07Glassware: a size not in the table (150 mL flask) has no default tolerance✓{sys: null, rand: 0, std: ISO 1042}{sys: null, rand: 0, std: ISO 1042}
GLS-08Glassware: an item without an accuracy class has no default tolerance✓{sys: null, rand: 0, std: ISO 1042}{sys: null, rand: 0, std: ISO 1042}
GLS-09Glassware: the balance of ISO 4787 table 1 for 10 mL (ISO/DIS 4787 sample)✓{d: 0.1, s: 0.2, u: 0.4}{d: 0.1, s: 0.2, u: 0.4}
GLS-10Glassware: the balance of ISO 4787 table 1 for 100 mL✓{d: 1, s: 2, u: 4}{d: 1, s: 2, u: 4}
GLS-11Glassware: the balance of ISO 4787 table 1 for 2000 mL✓{d: 10, s: 10, u: 40}{d: 10, s: 10, u: 40}
GLS-12Glassware: the default test points of a 50 mL glass burette (100 / 80 / 60 / 40 / 20 %)✓[50000, 40000, 30000, 20000, 10000][50000, 40000, 30000, 20000, 10000]
GLS-13Glassware: the default test points of a 100 mL measuring cylinder (100 / 50 / 20 %)✓[100000, 50000, 20000][100000, 50000, 20000]
GLS-14Glassware: a one-mark item has one test point, its nominal capacity✓[100000][100000]
GLS-15Glassware, ISO 4787 room rules: RH 40 % and a change of 0.8 °C are allowed (they are not for pipettes); a calibration without the meniscus is listed✓[men_none][men_none]
GLS-16Glassware, ISO 4787 room rules: air thermometer U 0.3 °C (> 0.2), RH 30 / 33 % (< 35), water 1.4 °C from the air at the end, the room changed 1.2 °C (> 1)✓[inst_ta, room_rh, room_rh, water_air, room_change][inst_ta, room_rh, room_rh, water_air, room_change]
GLS-17The instrument of an imported row from its words (glassware and piston instruments)✓[flask, cylinder, vpipette, gpipette, gburette, burette, pipette][flask, cylinder, vpipette, gpipette, gburette, burette, pipette]
COF-01Coffee: the flow rate of the scale - least squares over 1 s of the samples (here 2 g/s, a sample every 25 ms)✓{slope: 2, span: 1, used: 41}{slope: 2, span: 1, used: 41}
COF-02Coffee: a drop hitting the cup (+0.8 g in one sample) is left out - the flow stays 2 g/s✓{slope: 2, span: 1, used: 40}{slope: 2, span: 1, used: 40}
COF-03Coffee / factory cut-off: the fast flow - the last 16 samples, no trimming✓{slope: 2, span: 0.375, used: 16}{slope: 2, span: 0.375, used: 16}
COF-04Coffee: a slow scale (a weight every 250 ms) - the 1 s window takes at least 6 samples✓{slope: 3, span: 1.25, used: 6}{slope: 3, span: 1.25, used: 6}
COF-05Espresso: the yield of the recipe = dose x ratio (drink : coffee)✓3636
COF-06Espresso: no ratio, no yield✓00
COF-07Pour-over: all the water (bloom included) and the bloom water of the recipe✓{water: 240, bloom: 45}{water: 240, bloom: 45}
COF-08Pour-over: a bloom time of 0 = no bloom water✓{water: 240, bloom: 0}{water: 240, bloom: 0}
COF-09Pour-over: the result with the coffee in the jug measured (lift-off at the end)✓{retained: 35, ratio: 16.666667, beverageRatio: 14.333333, flow: 1.25}{retained: 35, ratio: 16.666667, beverageRatio: 14.333333, flow: 1.25}
COF-10Pour-over: the result without a lift-off - no beverage, no water kept✓{retained: null, ratio: 16.666667, beverageRatio: null, flow: 1.25}{retained: null, ratio: 16.666667, beverageRatio: null, flow: 1.25}
COF-11Espresso: the average flow since the first drops, in 0.01 g/s✓1.311.31
COF-12Espresso: no average flow in the first 0.5 s✓00
COF-13Pour-over: the coffee in the jug while the dripper is lifted, and the drop that counts as a lift-off✓{jug: 65, limit: 62.5}{jug: 65, limit: 62.5}
COF-14Pour-over: a light dripper - the lift-off needs at least 10 g; the jug never below 0✓{jug: 0, limit: 10}{jug: 0, limit: 10}
COF-15Pour-over with own pours: the water of every step - a pour its part of all the water, a stir the water of the pour before it✓[60, 120, 120, 180, 240, 300][60, 120, 120, 180, 240, 300]
COF-16Pour-over with own pours: a step before the first pour has no water; the last pour is all the water✓[0, 50, 250][0, 50, 250]
COF-17Pour-over with own pours: parts that are no round numbers, in 0.01 g✓[39.94, 120.06, 256][39.94, 120.06, 256]
COF-18Pour-over with own pours: the step at a time - the last one whose start has come✓11
COF-19Pour-over with own pours: all starts passed - the last step✓33
COF-20Pour-over with own pours: a step that began early (its pour started) is never taken back✓22
COF-21Pour-over with own pours: a step begins at its start exactly✓11
COF-22Pour-over: the coffee to expect in the jug - all the water minus what the coffee keeps (2 g per g at the start)✓220220
COF-23Pour-over: the coffee to expect with the weighed dose and a learned value, in 0.01 g✓214.34214.34
COF-24Pour-over: learning what the coffee keeps - half of the way to the measured value✓2.22.2
COF-25Pour-over: no lift-off at the end - nothing is learned✓22
COF-26Pour-over: a measured value outside 0.5 - 4 g per g is not taken (lifted off too early)✓2.12.1
COF-27Espresso: the dial-in hint - on time for the recipe (within 10 %): 1✓11
COF-28Espresso: the dial-in hint - too fast (below 90 % of the shot time): 2 = grind finer✓22
COF-29Espresso: a shot stopped early counts as if it had run to the target yield✓11
COF-30Espresso: the pre-infusion is not scaled - too slow (above 110 %): 3 = grind coarser✓33
COF-31Espresso: hardly any coffee in the cup (below 1 g) - no hint✓00
COF-32Coffee: the extraction yield = beverage x TDS / dose - a filter brew in the classic box (EY 18 - 22 %, TDS 1.15 - 1.35 %): verdict 0✓{ey: 21.67, verdict: 0}{ey: 21.67, verdict: 0}
COF-33Coffee: a filter brew under-extracted and weak: verdict 1 + 4 = 5✓{ey: 17.6, verdict: 5}{ey: 17.6, verdict: 5}
COF-34Coffee: an espresso in the common range (EY 18 - 22 %, TDS 8 - 12 %): verdict 0✓{ey: 21.11, verdict: 0}{ey: 21.11, verdict: 0}
COF-35Coffee: an espresso over-extracted and strong: verdict 2 + 8 = 10✓{ey: 25.6, verdict: 10}{ey: 25.6, verdict: 10}
COF-36Coffee: no TDS - no extraction yield (verdict 255)✓{ey: null, verdict: 255}{ey: null, verdict: 255}
COF-37Pour-over, a timed pour: on its plan line (within max(5 g, 10 % of the pour)) - no hint✓00
COF-38Pour-over, a timed pour: behind the plan - 1 = pour faster✓11
COF-39Pour-over, a timed pour: ahead of the plan - 2 = pour slower✓22
COF-40Pour-over, a timed pour: nothing in the first second✓00
COF-41Pour-over, a timed pour: nothing in the last 2 seconds✓00
COF-42Pour-over, a timed pour: a big pour has 10 % of it as tolerance✓00
COF-43Pour-over: stop pouring soon - more than 3 s to go: nothing✓00
COF-44Pour-over: stop pouring in 3 s (the water on its way counted: flow x lag)✓33
COF-45Pour-over: stop pouring in 1 s✓11
COF-46Pour-over: stop now - the water still on its way fills the pour✓44
COF-47Pour-over: no steady flow (below 1 g/s) - no countdown✓00
COF-48Pour trainer: a timed pour right on its line (its planned rate from where it began, up to its water) - score 100✓{mean: 0, score: 100}{mean: 0, score: 100}
COF-49Pour trainer: poured at double the rate - the mean distance is 2.5 tolerances, score 0✓{mean: 15, score: 0}{mean: 15, score: 0}
COF-50Pour trainer: too slow and stopped short - the time until it stopped counts✓{mean: 11.82, score: 21}{mean: 11.82, score: 21}
COF-51Pour trainer: a later pour that began above its plan (the pour before overshot by 6 g) - the line starts where it began✓{mean: 0, score: 100}{mean: 0, score: 100}
COF-52Pour trainer: a small pour has 5 g as tolerance✓{mean: 2.14, score: 83}{mean: 2.14, score: 83}
COF-53Espresso: the peak flow - the highest valid flow from 1 s after the first drops✓2.42.4
COF-54Espresso: the peak flow - a flow that is not valid and the flow after STOP NOW of the early stop do not count✓1.81.8
COF-55Espresso: the peak flow - above 20 g/s is no espresso (a cup put on, a hand)✓2.22.2
COF-56Espresso: the peak flow - no valid flow after the first drops: none✓––
COF-57Espresso: the time to the first drops after a START - 5 d for 1.5 s, the drops came when it first rose✓{ttfd: 6.2, state: 2}{ttfd: 6.2, state: 2}
COF-58Espresso: the time to the first drops - a short bump (the cup touched) is no drop, the watch starts again✓{ttfd: 8, state: 2}{ttfd: 8, state: 2}
COF-59Espresso: the time to the first drops - coffee already in the cup at the START (pressed late): not measured✓{ttfd: null, state: 3}{ttfd: null, state: 3}
COF-60Espresso: the time to the first drops - a cup put on after the START (more than max(15 g, 50 d)): not measured✓{ttfd: null, state: 3}{ttfd: null, state: 3}
COF-61Espresso: the time to the first drops on a scale with d = 1 g (5 g for 1.5 s)✓{ttfd: 5.4, state: 2}{ttfd: 5.4, state: 2}
COF-62Espresso: the time to the first drops - rising, but not 1.5 s yet: no time yet✓{ttfd: null, state: 1}{ttfd: null, state: 1}
COF-63Coffee weighing: the dose in a remembered holder = the weight above the empty scale - the empty holder✓{dose: 18.2, state: 0}{dose: 18.2, state: 0}
COF-64Coffee weighing: nothing on the scale (within max(0.5 g, 5 d) of 0) - no dose✓{dose: null, state: 1}{dose: null, state: 1}
COF-65Coffee weighing: less than the empty holder by more than the tolerance - another holder✓{dose: null, state: 2}{dose: null, state: 2}
COF-66Coffee weighing: the empty holder a little lighter (within the tolerance) shows the dose as it is✓{dose: -0.3, state: 0}{dose: -0.3, state: 0}
COF-67Coffee weighing: more than a dose (above 40 g) - another holder or something else on the scale✓{dose: null, state: 3}{dose: null, state: 3}
COF-68Coffee weighing: a scale with d = 1 g has 5 g of tolerance✓{dose: -4, state: 0}{dose: -4, state: 0}

Made by the UP↑SCALE app. The validation is the work and the decision of your laboratory: this pack gives the structure, the data of the system and the tests. UP↑SCALE does not certify the system, its use or its compliance with a rule.

Report no. 37 · UP⬆SCALE (DIY) #76439 · Device ID E83DC1241BB0
Firmware 1.01312 · configuration counter 61 · Code: 188f5d07e551d668

Check this file yourself: up-scales.com/check - the check runs in your browser, nothing is uploaded.

🔏 Sealed by the scale E83DC1241BB0, 2026-11-10 15:42, log entry #674 · certificate BC772B2A of UP⬆SCALE