Stable capabilities
Ordered by level: primitives at the bottom of the graph, workflows at the top. Each one carries its own tests, at least 8 per function.
Suites — the capabilities a kind of app is built from: accounting, payroll, an online shop, a clinic…
Collection: React form elements — accessible form components for React, and the pure helpers they use.
Level 0 primitive
charts.extent
The minimum and maximum of a series as [min, max], skipping gaps (null), or null when there is no value.
extent in Rust
math.exp
e to the power x from + - * / only, so TypeScript, Python and Rust return the same double for the same input.
exp in Rust
education.academic-year
The academic year and term a date falls in: 1 September to 31 August by default, terms from the caller.
academic_year in Rust
validation.uk-utr
Check an HMRC Unique Taxpayer Reference's modulus 11 check digit, accepting the K and spacing people type.
validate_uk_utr in Rust
charts.color
Hex colours to RGB and back, and sRGB channels to linear light and back, identically in every language.
A group of 4:
parse_hex, to_hex, srgb_to_linear, linear_to_srgb
collections.chunk
Split a list into consecutive batches of at most n items, in order; the last batch may be short.
chunk in Rust
crypto.constant-time-equal
Compare two byte strings in time that does not depend on where they differ, for checking MACs and hashes.
constant_time_equal in Rust
crypto.hmac-sha256
HMAC-SHA256 of a message under a secret key (RFC 2104, RFC 4231), in pure code that also runs in the browser.
hmac_sha256 in Rust
dates.quarter
Calendar quarter and fiscal quarter of a date, with the fiscal year and quarter date ranges, for any start month.
quarter in Rust
encoding.hex
Bytes to lowercase hexadecimal text and back (RFC 4648 base16), strictly, identically in every language.
A group of 2:
hex_encode, hex_decode
geo.distance
Great-circle distance in metres between two latitude/longitude points (haversine), to the millimetre.
distance in Rust
geo.point-in-polygon
Whether a latitude/longitude point lies inside a polygon (ray casting; the boundary counts as inside).
point_in_polygon in Rust
logistics.sscc
Build an 18-digit SSCC pallet label number from extension digit, GS1 company prefix and serial, with its check digit.
build_sscc in Rust
math.clamp
Clamp an integer to an inclusive range, refusing a range whose bounds are the wrong way round.
clamp in Rust
math.integer-sqrt
Exact integer square root: the largest whole number whose square does not exceed n.
integer_sqrt in Rust
math.pow
base to the power exponent from + - * / only, exact by squaring for whole exponents, identical in every language.
pow in Rust
math.round-div
Integer division with an explicit rounding mode, for money arithmetic that must not drift.
round_div in Rust
math.round-float
Round a float half away from zero to 0-12 decimal places, identically in TypeScript, Python and Rust.
round_float in Rust
monitor.series-window
The samples of a time series from one moment up to (not including) another, checking they are in time order.
series_window in Rust
subscriptions.trial-end
When a free trial ends and the first payment is due, from the trial's start date and length in days.
trial_end in Rust
text.initials
Initials from a personal name for avatars and signatures: "Jean-Paul Sartre" is "JPS".
initials in Rust
text.mask
Mask all but the last n characters of a card, account or phone number, optionally keeping separators.
mask in Rust
text.normalise-name
Tidy a personal name: trim, collapse whitespace and title-case, with Mc, Mac, O', hyphen and van/de rules.
normalise_name in Rust
time.countdown
Seconds left until a Unix time, whether it has passed, and a timer text like 4:05, for tokens or retry waits.
countdown in Rust
time.iso-to-unix
An RFC 3339 timestamp with a Z or offset, such as 2026-09-26T13:00:00+01:00, to Unix time in whole seconds.
iso_to_unix in Rust
validation.bic
Check the format of a SWIFT/BIC code (8 or 11 characters) and split it into its parts.
validate_bic in Rust
validation.gtin
Check an EAN-8, UPC-A, EAN-13 or GTIN-14 barcode number against the GS1 mod-10 check digit.
validate_gtin in Rust
validation.vin
Check a 17-character vehicle identification number and its check digit; enforced for North American VINs.
validate_vin in Rust
charts.contrast
WCAG 2.x contrast ratio between two colours, and which text colour reads best on a background.
A group of 2:
contrast_ratio, readable_text_color
crypto.sha256
The SHA-256 digest of a byte string (FIPS 180-4), in pure code that also runs in the browser.
sha256 in Rust
dates.add-months
Add calendar months to an ISO date, clamping to the month end: 31 Jan + 1 month is 28 or 29 Feb.
add_months in Rust
dates.day-of-week
The ISO 8601 day of the week for a date: 1 is Monday through 7 is Sunday.
day_of_week in Rust
encoding.base64
Bytes to base64 and base64url text and back (RFC 4648), with strict decoding, identically in every language.
A group of 4:
base64_encode, base64_decode, base64_url_encode, base64_url_decode
encoding.utf8
Text to UTF-8 bytes and strictly back (RFC 3629), so hashing and signing see the same bytes in every language.
A group of 2:
utf8_encode, utf8_decode
logistics.hs-code-validate
Check the format of a commodity code: 6-digit HS, 8-digit CN or 10-digit TARIC/UK code, with chapter and heading checks.
validate_hs_code in Rust
math.basis-points
Convert a rate between percent, basis points and a plain ratio exactly, as decimal text or integer basis points.
A group of 3:
convert_rate, to_basis_points, from_basis_points
math.big-integer
Exact integer arithmetic of any size, on decimal strings, for powers and products that overflow 64 bits.
calculate_big_integer in Rust
math.sin-cos
Sine and cosine of an angle in radians from + - * / only, so every language returns the same doubles.
sin_cos in Rust
monitor.alert-mute
Whether to hold an alert back: its component is under maintenance, or a related alert on it is already firing.
mute_alert in Rust
text.format-decimal
Format a float as plain decimal text with fixed or trimmed places and optional grouping, identically in every language.
format_decimal in Rust
text.integer-to-words
Spell out a whole number in British English words, with "and" the way a cheque writes it.
integer_to_words in Rust
validation.isbn
Check an ISBN-10 or ISBN-13 and convert between them; the normalised form is always the ISBN-13.
validate_isbn in Rust
validation.lei
Check a 20-character Legal Entity Identifier against its ISO 17442 / ISO 7064 MOD 97-10 check digits.
validate_lei in Rust
validation.uk-company-number
Check a Companies House company number's format and prefix (SC, NI, OC, LP...) and zero-pad it to eight characters.
validate_uk_company_number in Rust
money.currency-digits
How many decimal places a currency's minor unit has, from the ISO 4217 list.
currency_digits in Rust
monitor.cert-expiry
How long a TLS certificate has left before its notAfter, and whether that is ok, a warning, critical or expired.
cert_expiry in RustLevel 1 generic concept
subscriptions.mrr-arr
Monthly and annual recurring revenue from a list of subscriptions, normalising intervals and leaving out trials.
mrr_arr in Rust
charity.gift-aid-eligibility
Whether a UK donation qualifies for Gift Aid: declaration, enough tax paid, and the donor benefit limits.
gift_aid_eligibility in Rust
money.split-even
Split an amount into n near-equal parts that add back up to exactly the whole.
split_even in Rust
fleet.emissions
Vehicle greenhouse gas emissions (grams CO2e) from fuel used or distance, using UK government DESNZ conversion factors.
fleet_emissions in Rust
stats.moving-average
Simple or exponential moving average over a series, one value per full window, rounded to stated decimals.
moving_average in Rust
agri.field-area
Field area in square metres, hectares and acres from a boundary polygon of latitude/longitude points.
field_area in Rust
banking.faster-payments-limit
Whether a Faster Payment fits the scheme maximum, the bank's per-payment limit and what is left of its daily limit.
faster_payments_check in Rust
charts.palette
A categorical palette of n colour-blind-safe colours for chart series: Okabe-Ito or Paul Tol's bright scheme.
palette in Rust
charts.scale
Map data values onto screen positions and back: linear, log, time, band and point scales, and nice domains.
A group of 7:
linear_scale, invert_linear, nice_domain, log_scale, time_scale, band_scale, point_scale
collections.diff
Compare two lists of records by key: which were added, which removed, and which changed and in what fields.
diff_by_key in Rust
construction.brick-count
Bricks and mortar for a wall, openings subtracted, for UK standard 215 x 102.5 x 65 mm bricks with 10 mm joints.
brick_count in Rust
dates.age
Age in whole years on a given date, with 29 February birthdays ageing on 1 March in other years.
age in Rust
energy.meter-advance
Units consumed between two meter reads, counting the meter rolling over past all nines once.
meter_advance in Rust
finance.ledger.journal-validate
Check a double-entry journal: debits equal credits, no zero or two-sided lines, one currency, well-formed account codes.
validate_journal in Rust
fleet.ev-charging-cost
Cost of an electric vehicle charge from the energy added, charger efficiency and power, and time-of-use tariff windows.
ev_charging_cost in Rust
fleet.fuel-cost
Fuel cost of a trip from distance, fuel economy (UK or US mpg, or L/100km) and price per litre, exactly.
fuel_cost in Rust
form.date-parts
Check a date typed into day, month and year boxes, with GOV.UK's error messages and the boxes to mark in error.
validate_date_parts in Rust
hr.absence-bradford-factor
Bradford factor for a set of absence spells: spells squared times total days, which weights frequent short absences.
bradford_factor in Rust
http.retry-after
Seconds to wait from an HTTP Retry-After header (delay-seconds or an HTTP date), or null if missing or malformed.
retry_after_seconds in Rust
manufacturing.batch-size
Economic batch quantity: the EOQ for a batch made at a finite production rate, in whole units.
economic_batch_quantity in Rust
math.rational
Exact fraction arithmetic, always reduced, for rates and ratios that must not drift.
A group of 8:
calculate_rational, rational, add_rational, subtract_rational, multiply_rational, divide_rational, compare_rational, rational_to_integer
money.compare
Compare two amounts of one currency, refusing to compare across currencies; min, max and clamp too.
A group of 4:
compare_money, min_money, max_money, clamp_money
money.parse
Parse "£1,234.50" or "1.234,50 €" into integer minor units, strictly: no guessing, no rounding.
parse_money in Rust
monitor.rollup
Aggregate a metric series into fixed time buckets (count, min, max, avg, sum, last), empty buckets included.
rollup in Rust
net.ipv4
Parse, format and check dotted-quad IPv4 addresses, refusing leading zeros, octal, hex and short forms.
A group of 3:
parse_ipv4, format_ipv4, is_ipv4
net.ipv6
Parse IPv6 addresses and write them in RFC 5952 canonical form: lower-case, zeros compressed, IPv4 embedded.
A group of 3:
parse_ipv6, format_ipv6, is_ipv6
net.mac-address
Validate a MAC address in colon, hyphen, Cisco dot or bare form and normalise it, with multicast and local bits.
validate_mac_address in Rust
professional.utilisation
Billable utilisation and billing, collection and overall realisation rates, in basis points.
utilisation_rates in Rust
react.form.form-field React ^19 · TypeScript only
Wire a label, hint and error message to one form control by id, the accessible way (GOV.UK form group pattern).
Not available in Rust
react.form.styles React ^19 · TypeScript only
An optional stylesheet for the react.form elements' caps-* classes, themed by --caps-form-* custom properties.
Not available in Rust
validation.email
Is this a plausible email address? A documented, pragmatic subset of RFC 5322, not the full grammar.
is_email in Rust
agri.seed-rate
Seed rate in kg/ha from target plants per m², thousand-grain weight and expected establishment.
seed_rate in Rust
charity.donation-matching
Employer match on a donation: a ratio in basis points, limited by a per-donor cap and a programme budget.
donation_match in Rust
charity.regular-giving-schedule
Collection dates for a regular gift: monthly, quarterly or annual on a day, clamped to short months, after a lead time.
regular_giving_schedule in Rust
charts.downsample
Reduce a long series to a few points that keep its visual shape, by Largest-Triangle-Three-Buckets (LTTB).
downsample in Rust
charts.histogram-bins
Bin values into histogram bins on round edges, by Sturges' rule, Freedman-Diaconis, or a fixed width.
histogram_bins in Rust
collections.sort-by
Stably sort records by one key, ascending or descending, with a total order across mixed types.
sort_by in Rust
education.grade-boundaries
Grade for a mark from the caller's boundary table: inclusive lower bounds, ungraded below the lowest.
grade_for_mark in Rust
energy.carbon-emissions
kgCO2e from kWh or litres of a fuel, using the UK government GHG conversion factors for the year.
carbon_emissions in Rust
energy.degree-days
Heating and cooling degree days from daily mean temperatures and a base temperature, exact to 0.1.
degree_days in Rust
fleet.cost-per-mile
Whole-life cost per mile of a vehicle, in tenths of a penny, from depreciation, fuel, maintenance, insurance and tax.
cost_per_mile in Rust
hospitality.occupancy-adr-revpar
Hotel occupancy, average daily rate (ADR) and revenue per available room (RevPAR) for a period.
occupancy_adr_revpar in Rust
inventory.eoq
Economic order quantity (Harris/Wilson): the order size that minimises ordering plus holding cost, in whole units.
economic_order_quantity in Rust
inventory.reorder-point
Reorder point: demand over the supplier lead time, rounded up to whole units, plus safety stock.
reorder_point in Rust
money.allocate
Split an amount across ratios without losing or inventing a single minor unit.
allocate in Rust
money.sum
Total a list of monetary amounts, with an explicit currency for the empty case.
sum_money in Rust
monitor.burn-rate
How fast an SLO's error budget is burning: the error rate as a multiple of the rate the SLO allows, in thousandths.
burn_rate in Rust
monitor.error-budget
How much of an SLO's error budget is allowed, used and left, from good and bad event counts or seconds.
error_budget in Rust
monitor.uptime
Time-weighted uptime of a target over a window from its checks, with gaps longer than a limit counted as unknown.
uptime in Rust
net.cidr
CIDR blocks: network, broadcast, first and last host, host count, netmask and prefix, and membership.
A group of 5:
cidr_info, cidr_contains, is_cidr, prefix_to_netmask, netmask_to_prefix
net.port
Check a TCP/UDP port number and name the IANA service registered on it, with its system/user/dynamic range.
A group of 2:
is_port, port_service
net.port-list
Parse a port list such as 22,80,8000-8010 into port numbers, in order and without duplicates.
parse_port_list in Rust
react.form.button React ^19 · TypeScript only
A form button in primary, secondary or warning style that stays focusable while loading (GOV.UK button).
Not available in Rust
react.form.date-input React ^19 · TypeScript only
Day, month and year boxes under one legend, with hint, error message and the boxes in error marked (GOV.UK date input).
Not available in Rust
react.form.error-summary React ^19 · TypeScript only
A "There is a problem" box linking to each field in error, focused on arrival, built from a validator's fields (GOV.UK).
Not available in Rust
react.form.fieldset React ^19 · TypeScript only
Group related inputs under a legend, with a hint and error message described to the whole group (GOV.UK fieldset).
Not available in Rust
retail.coupon-validate
Check a coupon against a basket: dates, usage limits, eligible products and minimum spend, with reason codes.
validate_coupon in Rust
retail.gift-card-balance
Apply a payment from a gift card, redeeming part of the balance or all of it, and say what is still due.
redeem_gift_card in Rust
retail.volumetric-weight
Chargeable parcel weight: the greater of actual and volumetric (dimensional) weight, rounded up to a billing step.
chargeable_weight in Rust
units.convert
Convert length, mass, area, volume, temperature and energy between units, exactly, as decimal text.
convert_units in Rust
validation.uk-modulus-table
Parse Vocalink's VALACDOS.txt and SCSUBTAB.txt into the table UK sort code modulus checking needs.
parse_uk_modulus_table in Rust
agri.yield-per-hectare
Crop yield per hectare and per acre from harvested quantity and field area in any area unit, exactly, as decimal text.
yield_per_hectare in Rust
auth.jwt
Sign, verify and decode HS256 JSON Web Tokens (RFC 7519): signature, algorithm and exp/nbf/iat checked with leeway.
A group of 3:
sign_jwt, verify_jwt, decode_jwt
auth.normalise-email
Trim an email address and lower-case its domain for storage and lookup, or null if it is not a plausible address.
normalise_email in Rust
banking.savings-aer
AER (annual equivalent rate) from a gross nominal rate and how often interest is paid, to two decimal places.
savings_aer in Rust
charity.fundraising-ratio
Cost to raise £1 and charitable spend ratio for a charity, in exact basis points.
fundraising_ratios in Rust
charts.format
Axis and label text for charts: tick numbers, SI prefixes (1.2k, 3.4M), percentages, dates and money.
A group of 5:
format_tick, format_si, format_percent, format_date, format_money_tick
charts.interpolate-color
The colour at a point along a sequential or diverging ramp, mixed in OKLab so steps look even; hex in, hex out.
interpolate_color in Rust
charts.ticks
Axis ticks: a round step (1, 2 or 5 x 10^k), the ticks on it, and calendar ticks from days to years.
A group of 4:
tick_step, nice_ticks, time_tick_interval, time_ticks
collections.dedupe-by-key
Remove records that share a key value, keeping the first or the last of each, in input order.
dedupe_by_key in Rust
collections.group-by-key
Group records by the value at one key, preserving input order inside each group.
group_by_key in Rust
collections.paginate
Slice a list into a 1-based page and report the totals an API response needs.
paginate in Rust
construction.concrete-volume
Concrete for slabs, strip footings, pads and round columns: volume to the litre and an order rounded up to 0.1 m³.
concrete_volume in Rust
dates.bank-holidays
UK bank and public holidays for a region and year, as published by gov.uk, including one-off holidays.
bank_holidays in Rust
dates.business-days-between
Working days between two dates, excluding weekends and a caller-supplied holiday list.
business_days_between in Rust
education.attendance-rate
Pupil attendance and absence rates in basis points, with the DfE persistent and severe absence flags.
attendance_rate in Rust
finance.payment-terms-due-date
Invoice due date from payment terms: net N days, end of month, N days after month end, day N of next month.
payment_due_date in Rust
inventory.safety-stock
Safety stock in whole units, by service level and demand variability (z-score) or by max-minus-average.
safety_stock in Rust
manufacturing.yield-scrap
Whole units to start for a required good output at a process yield, and the scrap that allows for.
input_for_yield in Rust
math.fractional-power
Raise a positive decimal to a fractional power, (1.199)^(31/365), identically in every language.
fractional_power in RustLevel 2 domain function
construction.payment-notice-dates
Construction Act default dates: payment due, payment notice, final date for payment and pay-less notice.
payment_notice_dates in Rust
validation.uk-postcode
Validate a UK postcode and normalise it to canonical upper case with one space before the inward code.
validate_uk_postcode in Rust
charity.gift-aid
Gift Aid a UK charity can claim on a donation: basic rate tax grossed up, 25p per £1 at 20%.
gift_aid in Rust
energy.price-cap
Ofgem energy price cap unit rate and daily standing charge for a fuel and payment method on a date (GB average).
price_cap in Rust
finance.uk-bank-rate
Bank of England Bank Rate (base rate) in force on a date, from the Bank's official history since 2001.
uk_bank_rate in Rust
hospitality.bill-split
Split a restaurant bill evenly, by item or by share, exactly to the penny, with the service charge shared in proportion.
bill_split in Rust
logistics.freight-rate
Freight charge from a carrier's dated weight-break tariff for a zone, with the fuel surcharge in force on the ship date.
freight_rate in Rust
finance.proration
Split an amount into the part used and the part unused over a billing period, losing nothing.
prorate in Rust
agri.fertiliser-application
Fertiliser product rate (kg/ha and total) to meet N, P2O5 and K2O targets from its analysis, limiting nutrient first.
fertiliser_application in Rust
auth.access-token
Issue an API's HS256 access token, read one from an Authorization header, and refuse revoked or superseded ones.
A group of 3:
issue_access_token, read_access_token, confirm_access_token
banking.overdraft-interest
Overdraft interest for a statement period from daily balances, with an interest-free buffer.
overdraft_interest in Rust
charts.shape
SVG path strings for lines, areas, steps, monotone curves, bars, arcs and pie slices, identical in every language.
A group of 7:
line_path, area_path, step_path, monotone_curve, bar_rects, arc_path, pie_angles
charts.stack
Stack several series for stacked bars and areas: on zero, normalised to 100%, or diverging around zero.
stack in Rust
construction.retention
Retention held and released on a construction valuation: full rate, half at practical completion, none at the end.
retention in Rust
dates.uk-tax-year
The UK personal tax year containing a date: 6 April to 5 April, with HMRC's label.
uk_tax_year in Rust
finance.late-payment-interest
UK statutory late payment interest (8% over Bank Rate) and fixed compensation under the Late Payment Act 1998.
late_payment_interest in Rust
hospitality.recipe-cost
Cost a recipe and each portion from ingredient quantities, pack sizes and pack prices, allowing for trim and waste.
recipe_cost in Rust
logistics.route-distance
Total great-circle distance of an ordered list of stops, leg by leg, optionally back to the start, to the millimetre.
route_distance in Rust
money.convert
Convert an amount to another currency at a supplied exact rate, with an explicit rounding mode.
convert_money in Rust
monitor.burn-rate-alert
Multiwindow, multi-burn-rate SLO alerting: which rules fire, from event counts per window (Google SRE workbook).
burn_rate_alert in Rust
monitor.mttr
MTTR, MTBF, downtime and incident counts for a reporting window, from a list of incidents.
reliability_stats in Rust
retail.oss-vat
EU distance-selling VAT: which member state's standard rate applies under OSS and the EUR 10,000 threshold, and the VAT.
oss_vat in Rust
retail.shipping-rate
Delivery charge from a dated rate table by service, zone, chargeable weight and size, with a free-over threshold.
shipping_rate in Rust
todo.group-by-due
Split todos into Overdue, Today, Tomorrow, This week, Later, No date and Done sections, in that order.
A group of 2:
group_by_due, group_by_due_with_order
todo.item
The to-do item type (Todo, TodoDraft, Recurrence) and its validators, with a message per field.
A group of 2:
validate_draft, validate_todo
todo.parse-date-phrase
Read a typed due date like "tomorrow", "next friday", "in 2 weeks" or "2026-10-01" as a date, relative to today.
parse_date_phrase in Rust
todo.sort
Sort todos by manual order, due date, priority, creation time or title, stably, with sensible tie-breakers.
sort_todos in Rust
validation.iban
Check an IBAN against the ISO 13616 mod-97-10 checksum and the registered length for its country.
is_iban in Rust
agri.gross-margin
Enterprise gross margin (output less variable costs), in total and per hectare or per head, in exact money.
gross_margin in Rust
charity.gasds
Gift Aid Small Donations Scheme top-up for a tax year: the £8,000 limit, the matching rule and community buildings.
gasds in Rust
charity.higher-rate-relief
A Gift Aid donor's extra tax relief at higher, intermediate, additional and top rates, by extending the tax bands.
higher_rate_relief in Rust
charity.payroll-giving
UK Payroll Giving for one pay period: the donation comes off pay before PAYE, and the tax it saves the employee.
payroll_giving in Rust
construction.cis-deduction
Construction Industry Scheme deduction (0, 20 or 30%) on the labour part of a subcontractor payment.
cis_deduction in Rust
education.timetable-clash
Find timetable clashes: overlapping sessions that share a room, a teacher or a student group, in a fixed order.
timetable_clashes in Rust
energy.estimate-read
Estimate a meter read for a date from the average daily consumption between two earlier reads, with rollover.
estimate_read in Rust
energy.solar-generation
Estimated annual solar PV generation by the MCS method: kWp x Kk x shade factor, per array and in total.
solar_generation in Rust
energy.tariff-time-of-use
Cost half-hourly consumption against time-of-use rates: Economy 7 windows or Agile-style half-hourly prices.
time_of_use_cost in Rust
finance.compound-interest
Compound interest accrued period by period in minor units, the way a statement is built.
compound_interest in Rust
finance.fx-revaluation
Unrealised foreign exchange gain or loss on foreign-currency balances revalued at a period-end rate.
fx_revaluation in Rust
fleet.mileage-allowance
HMRC approved mileage allowance payments for an employee's own vehicle: tax-free amount, taxable excess or relief.
mileage_allowance in Rust
fleet.vehicle-depreciation
A vehicle's current value from its cost, age and mileage, on retention curves the caller supplies, exactly.
vehicle_depreciation in Rust
hospitality.gross-profit-menu
Menu gross profit (GP%) on the VAT-exclusive price, and the menu price that reaches a target GP.
A group of 2:
menu_gross_profit, menu_price_for_gp
inventory.abc-classification
ABC classes by annual consumption value (Pareto), with configurable cut-offs such as 80/15/5 and deterministic ties.
abc_classification in Rust
logistics.container-fit
How many identical cartons fit in a 20ft, 40ft or 40ft high-cube container or a 13.6 m trailer, by space and by weight.
container_fit in Rust
manufacturing.bom-cost
Rolled-up standard cost of one unit of a product from its BOM, bought-in costs, and labour and overhead rates.
bom_cost in Rust
manufacturing.bom-explode
Explode a multi-level bill of materials into exact total quantities per component, with scrap and cycle checks.
explode_bom in Rust
monitor.uptime-bars
One bar per UTC day for a status page's uptime history: seconds in each state, uptime and a colour state, oldest first.
uptime_bars in Rust
retail.loyalty-points
Loyalty points for a purchase: redeem in blocks, earn on what is paid, with tier multipliers.
loyalty_points in Rust
retail.promotion-apply
Apply BOGOF, 3-for-2, percent off, amount off and multibuy deals to a basket, best for the customer, allocated to lines.
apply_promotions in Rust
telecoms.call-rating
Rate a call from a rate deck: longest-prefix destination match, billing increments, connection fee and minimum charge.
rate_call in Rust
todo.due-label
The short English label shown next to a todo: "2 days overdue", "Due today", "Due tomorrow", "Due Fri 2 Oct".
due_label in Rust
todo.export-csv
Write todos as a CSV file (RFC 4180) with one column per field, for backups, spreadsheets and other apps.
export_csv in Rust
todo.parse-repeat
Read a Repeat box, "every 2 weeks" or "every monday on 2026-10-05", as a todo's recurrence, or null.
parse_repeat in Rust
validation.uk-vat-number
Check a UK VAT registration number against HMRC's mod-97 checksum, including the post-2010 9755 variant.
is_uk_vat_number in Rust
auth.login-throttle
Allow a login attempt or lock the account out, from its recent failed attempts, with the seconds until it may retry.
login_throttle in Rust
banking.fees-cap
Apply a monthly fee cap to a list of account charges: charge up to the cap, waive the rest.
apply_fee_cap in Rust
charts.axis
Axis geometry as data: tick positions, tick marks, label anchors and gridlines for number, time and category axes.
A group of 5:
axis_from_ticks, number_axis, time_axis, band_axis, grid_lines
construction.vat-reverse-charge
Whether the UK VAT domestic reverse charge applies to a construction supply, and the invoice wording.
domestic_reverse_charge in Rust
education.student-loan-repayment
A graduate's student or postgraduate loan repayment for a tax year, as Self Assessment works it out.
student_loan_repayment in Rust
energy.water-bill
Metered water and sewerage bill from two reads: volumetric charges, return to sewer, standing and surface water charges.
water_bill in Rust
hospitality.room-rate
Price a hotel stay night by night from the caller's seasonal, day-of-week rate table, less any length-of-stay discount.
room_rate in Rust
inventory.expiry-fefo
First-expiry-first-out pick list for a quantity across batches, skipping expired and short-dated stock.
fefo_pick in Rust
inventory.valuation-weighted-average
Perpetual weighted average cost: stock value and cost of sales from a movement ledger, rounding once per issue.
weighted_average_valuation in RustLevel 3 business operation
auth.validate-registration
Validate a sign-up form (email, password, name) in one call, with a message per field, in the browser and the API alike.
validate_registration in Rust
charity.reclaim-batch
Gift Aid claim totals for a period from donation records: donor lines, aggregated small gifts, tax due.
gift_aid_claim_batch in Rust
charts.bar-chart
Complete bar chart geometry as data, grouped or stacked: plot area, axes, gridlines, bar rectangles, colours, legend.
bar_chart in Rust
charts.line-chart
Complete line chart geometry as data: plot area, number or date axes, gridlines, series paths, colours, legend.
line_chart in Rust
finance.credit-note.calculate
Credit note against an original invoice, by units or by amount, with VAT at the original tax point's rates.
calculate_credit_note in Rust
subscriptions.invoice
A subscription renewal invoice: plan, add-ons and usage, coupon discounts by billing period, and VAT.
renewal_invoice in Rust
finance.invoice.calculate
Calculate a complete invoice: line nets, VAT per line, totals and a VAT summary grouped by rate.
calculate_invoice in Rust
retail.basket-total
Total a basket: line prices, promotions, a basket discount, VAT per line and delivery, into one checked total.
basket_total in Rust
auth.validate-password-change
Check a change-password form: current password given and correct, new one meeting the policy and different.
validate_password_change in Rust
energy.bill-calculate
Electricity or gas bill from two meter reads: energy, standing charge, Climate Change Levy and VAT.
calculate_energy_bill in Rust