{
  "suites": [
    {
      "id": "accounting",
      "title": "Accounting and bookkeeping",
      "summary": "Books for a small business: invoices and credit notes, VAT, double-entry journals, payment terms and debtors, bank reconciliation and period-end.",
      "includes": [
        "money-basics",
        "dates-basics",
        "uk-tax",
        "validation-basics"
      ],
      "sections": 21,
      "members": 80,
      "core": 35,
      "gaps": 19,
      "url": "http://www.functionalweave.com/suites/accounting"
    },
    {
      "id": "agriculture",
      "title": "Agriculture and farm management",
      "summary": "Run a farm: field areas, seed, fertiliser and spray rates, yields, livestock stocking rates, feed rations, milk price, gross margins and growing degree days.",
      "includes": [
        "money-basics",
        "dates-basics"
      ],
      "sections": 14,
      "members": 49,
      "core": 24,
      "gaps": 10,
      "url": "http://www.functionalweave.com/suites/agriculture"
    },
    {
      "id": "auth",
      "title": "User accounts and authentication",
      "summary": "Sign-up and login forms, password policy and hashing, login lockout, and signed access tokens (JWT) read from the Authorization header.",
      "includes": [
        "validation-basics"
      ],
      "sections": 9,
      "members": 34,
      "core": 12,
      "gaps": 12,
      "url": "http://www.functionalweave.com/suites/auth"
    },
    {
      "id": "banking",
      "title": "Banking and payments",
      "summary": "Bank accounts and payments: overdraft interest, savings AER, monthly fee caps, Bacs dates, Faster Payments limits, payee checks and cheque wording.",
      "includes": [
        "money-basics",
        "dates-basics",
        "validation-basics"
      ],
      "sections": 16,
      "members": 64,
      "core": 26,
      "gaps": 14,
      "url": "http://www.functionalweave.com/suites/banking"
    },
    {
      "id": "charity",
      "title": "Charity and fundraising",
      "summary": "Donations for a UK charity: Gift Aid eligibility and claims, small donations, regular giving schedules, matched giving, payroll giving and restricted fund accounting.",
      "includes": [
        "money-basics",
        "dates-basics",
        "validation-basics"
      ],
      "sections": 18,
      "members": 62,
      "core": 26,
      "gaps": 13,
      "url": "http://www.functionalweave.com/suites/charity"
    },
    {
      "id": "construction",
      "title": "Construction and trades",
      "summary": "For builders, trades and contractors: quotes, materials take-offs, valuations with retention, CIS deductions, VAT reverse charge and Construction Act payment dates.",
      "includes": [
        "money-basics",
        "dates-basics",
        "uk-tax"
      ],
      "sections": 17,
      "members": 60,
      "core": 28,
      "gaps": 13,
      "url": "http://www.functionalweave.com/suites/construction"
    },
    {
      "id": "dashboards",
      "title": "Dashboards and charts",
      "summary": "Chart geometry as data in any language (scales, ticks, axes, lines, bars, pies, sparklines) plus the statistics and number formatting a dashboard shows.",
      "includes": [
        "dates-basics"
      ],
      "sections": 9,
      "members": 47,
      "core": 16,
      "gaps": 7,
      "url": "http://www.functionalweave.com/suites/dashboards"
    },
    {
      "id": "dates-basics",
      "title": "Dates basics",
      "summary": "Calendar arithmetic on ISO dates: add days and months, count days and working days, bank holidays, quarters, recurrence and durations.",
      "includes": [],
      "sections": 5,
      "members": 21,
      "core": 9,
      "gaps": 3,
      "url": "http://www.functionalweave.com/suites/dates-basics"
    },
    {
      "id": "ecommerce",
      "title": "Online shop and retail",
      "summary": "Sell goods online or over the counter: basket totals with promotions and VAT, coupons, delivery charges, gift cards, loyalty points, refunds and product codes.",
      "includes": [
        "money-basics",
        "uk-tax",
        "validation-basics"
      ],
      "sections": 19,
      "members": 57,
      "core": 24,
      "gaps": 17,
      "url": "http://www.functionalweave.com/suites/ecommerce"
    },
    {
      "id": "education",
      "title": "Education and training",
      "summary": "Schools, colleges and training: academic years and terms, year groups, attendance, grades and weighted marks, GPA and degree classes, timetable clashes, fees and CPD.",
      "includes": [
        "dates-basics"
      ],
      "sections": 11,
      "members": 34,
      "core": 15,
      "gaps": 8,
      "url": "http://www.functionalweave.com/suites/education"
    },
    {
      "id": "energy",
      "title": "Energy and utilities",
      "summary": "Energy and water billing from meter reads: kWh, tariffs and time-of-use, the price cap, standing charges, CCL and VAT, estimated reads, solar, degree days and carbon.",
      "includes": [
        "money-basics",
        "dates-basics",
        "uk-tax"
      ],
      "sections": 16,
      "members": 59,
      "core": 26,
      "gaps": 12,
      "url": "http://www.functionalweave.com/suites/energy"
    },
    {
      "id": "fleet",
      "title": "Fleet management",
      "summary": "Run a vehicle fleet: fuel and EV charging costs, mileage claims, company car tax, cost per mile and depreciation, servicing, emissions and drivers' hours.",
      "includes": [
        "money-basics",
        "dates-basics"
      ],
      "sections": 14,
      "members": 50,
      "core": 22,
      "gaps": 10,
      "url": "http://www.functionalweave.com/suites/fleet"
    },
    {
      "id": "forms-ui",
      "title": "Accessible React forms",
      "summary": "GOV.UK-pattern form components for React (text, select, radios, checkboxes, dates, passwords, error summary) and the pure form state and checks behind them.",
      "includes": [
        "validation-basics"
      ],
      "sections": 10,
      "members": 30,
      "core": 9,
      "gaps": 8,
      "url": "http://www.functionalweave.com/suites/forms-ui"
    },
    {
      "id": "health-clinic",
      "title": "Health clinic and practice management",
      "summary": "A clinic or practice: appointment slots, patient identifiers and ages, waiting times, and clinical calculators (BMI, BSA, eGFR, NEWS2, weight-based doses, gestational age).",
      "includes": [
        "dates-basics",
        "validation-basics"
      ],
      "sections": 13,
      "members": 49,
      "core": 18,
      "gaps": 12,
      "url": "http://www.functionalweave.com/suites/health-clinic"
    },
    {
      "id": "hospitality",
      "title": "Hospitality: restaurants, cafes, bars and hotels",
      "summary": "Front of house and kitchen for food service and hotels: bills and service charge, splitting the bill, tips, menu costing and allergens, room rates and occupancy.",
      "includes": [
        "money-basics",
        "dates-basics",
        "uk-tax"
      ],
      "sections": 18,
      "members": 58,
      "core": 30,
      "gaps": 15,
      "url": "http://www.functionalweave.com/suites/hospitality"
    },
    {
      "id": "insurance",
      "title": "Insurance",
      "summary": "General insurance from quote to claim: rating factors, IPT, instalments, mid-term changes, cancellations, no-claims discount, excess, underinsurance and reserves.",
      "includes": [
        "money-basics",
        "dates-basics",
        "validation-basics"
      ],
      "sections": 19,
      "members": 65,
      "core": 28,
      "gaps": 13,
      "url": "http://www.functionalweave.com/suites/insurance"
    },
    {
      "id": "inventory",
      "title": "Inventory and warehouse",
      "summary": "Stock control and warehousing: reorder points, safety stock and order quantities, FIFO or weighted average valuation, ABC classes, cycle counts, expiry picking and pallets.",
      "includes": [
        "money-basics",
        "dates-basics"
      ],
      "sections": 15,
      "members": 52,
      "core": 22,
      "gaps": 10,
      "url": "http://www.functionalweave.com/suites/inventory"
    },
    {
      "id": "investments",
      "title": "Investments and wealth",
      "summary": "Portfolios and wealth: returns (TWR, XIRR, CAGR), weights and rebalancing, fees, yields, bonds, drawdown, and UK ISA, pension and capital gains tax.",
      "includes": [
        "money-basics",
        "dates-basics",
        "uk-tax"
      ],
      "sections": 19,
      "members": 62,
      "core": 27,
      "gaps": 13,
      "url": "http://www.functionalweave.com/suites/investments"
    },
    {
      "id": "invoicing",
      "title": "Invoicing and billing",
      "summary": "Raise invoices and credit notes with VAT per rate, set due dates from payment terms, chase late payers and track who owes what.",
      "includes": [
        "money-basics",
        "dates-basics",
        "uk-tax",
        "validation-basics"
      ],
      "sections": 21,
      "members": 70,
      "core": 31,
      "gaps": 17,
      "url": "http://www.functionalweave.com/suites/invoicing"
    },
    {
      "id": "legal",
      "title": "Legal practice",
      "summary": "Practice software for a law firm in England and Wales: conflict checks, limitation and court deadlines, time billing, client account retainers, disbursements, court fees and statutory interest.",
      "includes": [
        "money-basics",
        "dates-basics",
        "uk-tax",
        "validation-basics"
      ],
      "sections": 23,
      "members": 71,
      "core": 34,
      "gaps": 15,
      "url": "http://www.functionalweave.com/suites/legal"
    },
    {
      "id": "lending",
      "title": "Lending and loans",
      "summary": "Loans from quote to redemption: level repayments, amortisation schedules, APR, daily interest, overpayments, early settlement, affordability and LTV.",
      "includes": [
        "money-basics",
        "dates-basics",
        "validation-basics"
      ],
      "sections": 19,
      "members": 64,
      "core": 27,
      "gaps": 13,
      "url": "http://www.functionalweave.com/suites/lending"
    },
    {
      "id": "logistics",
      "title": "Logistics, shipping and freight",
      "summary": "Ship goods: chargeable weight, freight and delivery rates, delivery dates, containers and pallets, labels, route distance, Incoterms, customs duty and demurrage.",
      "includes": [
        "money-basics",
        "dates-basics"
      ],
      "sections": 15,
      "members": 52,
      "core": 22,
      "gaps": 12,
      "url": "http://www.functionalweave.com/suites/logistics"
    },
    {
      "id": "manufacturing",
      "title": "Manufacturing and production",
      "summary": "Make things: explode and cost bills of materials, yield and scrap, batch sizes, takt time, capacity, OEE, standard cost variances, lot codes and tolerance checks.",
      "includes": [
        "inventory"
      ],
      "sections": 19,
      "members": 63,
      "core": 29,
      "gaps": 14,
      "url": "http://www.functionalweave.com/suites/manufacturing"
    },
    {
      "id": "money-basics",
      "title": "Money basics",
      "summary": "Amounts in integer minor units: add, total, apply rates, split without losing a penny, compare, format, parse and convert.",
      "includes": [],
      "sections": 5,
      "members": 16,
      "core": 8,
      "gaps": 2,
      "url": "http://www.functionalweave.com/suites/money-basics"
    },
    {
      "id": "monitoring",
      "title": "Uptime monitoring and status pages",
      "summary": "Turn probe results into up, degraded or down, incidents and uptime; drive a public status page; alert on thresholds, anomalies and SLO burn rates.",
      "includes": [
        "dashboards"
      ],
      "sections": 15,
      "members": 75,
      "core": 25,
      "gaps": 12,
      "url": "http://www.functionalweave.com/suites/monitoring"
    },
    {
      "id": "network-tools",
      "title": "Network tools and inventory",
      "summary": "Parse and classify IPv4 and IPv6 addresses, CIDR and subnet maths, ports, MAC addresses and host names, and a network inventory with device status.",
      "includes": [],
      "sections": 4,
      "members": 14,
      "core": 7,
      "gaps": 4,
      "url": "http://www.functionalweave.com/suites/network-tools"
    },
    {
      "id": "payroll",
      "title": "Payroll and HR",
      "summary": "UK payroll for a small employer: PAYE tax, National Insurance, pensions, student loans and statutory pay into a payslip, plus holiday, notice and absence rules.",
      "includes": [
        "money-basics",
        "dates-basics",
        "validation-basics"
      ],
      "sections": 22,
      "members": 76,
      "core": 34,
      "gaps": 14,
      "url": "http://www.functionalweave.com/suites/payroll"
    },
    {
      "id": "professional-services",
      "title": "Professional services and time billing",
      "summary": "Run a consultancy or agency on its time: record and round time, bill it at rate cards, value unbilled WIP, and report utilisation and realisation.",
      "includes": [
        "money-basics",
        "dates-basics",
        "uk-tax"
      ],
      "sections": 17,
      "members": 56,
      "core": 28,
      "gaps": 12,
      "url": "http://www.functionalweave.com/suites/professional-services"
    },
    {
      "id": "property",
      "title": "Property and lettings",
      "summary": "Lettings and property: rent proration and reviews, deposit caps, service charges, yields, stamp duty, council tax, mortgage affordability and completion statements.",
      "includes": [
        "money-basics",
        "dates-basics",
        "validation-basics"
      ],
      "sections": 17,
      "members": 64,
      "core": 27,
      "gaps": 13,
      "url": "http://www.functionalweave.com/suites/property"
    },
    {
      "id": "subscriptions",
      "title": "Subscriptions and SaaS billing",
      "summary": "Recurring billing for a SaaS or subscription business: trials, renewal dates, prorated plan changes, metered usage, renewal invoices with coupons, dunning and MRR, churn and LTV.",
      "includes": [
        "money-basics",
        "dates-basics",
        "uk-tax"
      ],
      "sections": 19,
      "members": 59,
      "core": 29,
      "gaps": 14,
      "url": "http://www.functionalweave.com/suites/subscriptions"
    },
    {
      "id": "telecoms",
      "title": "Telecoms billing",
      "summary": "Rating and billing for telecoms: calls from a rate deck, data allowances and overage, roaming, plus recurring plan billing and VAT.",
      "includes": [
        "money-basics",
        "dates-basics",
        "uk-tax"
      ],
      "sections": 15,
      "members": 55,
      "core": 27,
      "gaps": 11,
      "url": "http://www.functionalweave.com/suites/telecoms"
    },
    {
      "id": "todo",
      "title": "Todo and task lists",
      "summary": "A to-do list's logic as pure functions: the item type, a list reducer, quick-add parsing, due dates, repeats, tags, filters, sorting and CSV import/export.",
      "includes": [
        "dates-basics"
      ],
      "sections": 10,
      "members": 41,
      "core": 16,
      "gaps": 8,
      "url": "http://www.functionalweave.com/suites/todo"
    },
    {
      "id": "uk-tax",
      "title": "UK VAT and tax basics",
      "summary": "UK VAT by the rate in force on the date of supply: add, remove, the nine-box return and the flat rate scheme, plus the tax year and HMRC identifiers.",
      "includes": [],
      "sections": 3,
      "members": 9,
      "core": 5,
      "gaps": 3,
      "url": "http://www.functionalweave.com/suites/uk-tax"
    },
    {
      "id": "validation-basics",
      "title": "Validation basics",
      "summary": "Check and normalise what people type: email, phone, postcode, names, bank details and check-digit identifiers.",
      "includes": [],
      "sections": 4,
      "members": 14,
      "core": 4,
      "gaps": 3,
      "url": "http://www.functionalweave.com/suites/validation-basics"
    }
  ]
}
