Learning Management Systems

How to buy an LMS: The big, big list of LMS requirements

More than 150 ideas of what to look for when buying an LMS

thought I’d share a (non-exhaustive) list of requirements that can be used as a starting point or inspiration when buying an LMS. Unfortunately, just copy-pasting this list to your project won’t work as you’ll need to respect the unique needs of your organisation. That said, these requirements are very concrete and probably a big help on the way to see if you’re missing something.

Note: This is part 2 of 3 on how to buy an LMS. Part 1 can be found here: How to buy an LMS: First steps and part 3 can be found here: How to buy an LMS: Selection and last steps.


First off, let’s agree on the definition of the vocabulary in the list below. When talking to your LMS-vendor, make sure to include a similar definition so that you agree on what is meant with each item. My definitions for this list are:

  • Module: 1 piece of content. E.g. a video, document or e-learning.
  • Course: A combination of modules
  • Learning path: Combination of courses and/or modules
  • Item: Any of the above 3
  • Role: A group a user belongs to, e.g. manager or HR
  • Department: A unit in a hierarchical organisation-setup
  • Company: A separate top-level entity in a hierarchical setup

With that out of the way, let’s get to the fun part!

Concrete requirement examples


  • Modules available as separate entities: Modules can exist outside courses and can be viewed without having to enrol in a course
  • Courses can contain several modules: A course can have several modules to be completed
  • Courses can be combined into learning paths: A learning path is several courses that need to be completed
  • Flexible learning paths: Content doesn’t have to be completed in order in a learning path
  • Dynamic learning paths: Content adapts to learner (e.g. if course A received low grade, then go to course B, otherwise go to course C)
  • Prerequisites: Courses and learning paths can have restrictions on what needs to be completed before access


  • Supports a tree structure of modules, courses and learning paths: Can the user browse content in a hierarchical way?
  • Supports tagging of modules, courses and learning paths: Is it possible to view content by tag, no matter where it is placed in a hierarchical structure?
  • Supports target audience of modules, courses and learning paths (e.g. role or department): Can an item have a recommended target audience? This might be a moot point if tagging is supported as audiences could then be used as tags instead.
  • Automated calculation of item lengths: System will automatically set module length to that of its content (if relevant, e.g. same as video length) and will automatically set course & learning path lengths to that of all its modules.


  • See tags without opening the item: Can the end user see an item’s tag without having to click it?
  • See target audience without opening item: Can the end user see for whom an item is targeted without having to click the item? This might be a moot point if tagging is supported as audiences could then be used as tags instead.
  • See item length without opening item: Can the end user see the length of items without having to click it?
  • See item rating without opening item: Can the end user see the peer rating of items without having to click it?
  • Compact list browsing of items in catalogue: Is it possible for the user to get an information-rich display with 1 row per item, with reduced white-space? I.e. lessen the need for scrolling to see content.
  • Comfortable browsing of items in the catalogue: Is it possible for the user to have a design-oriented browsing experience with images, previews and extended info displayed without the user having to click the item?
  • 2 clicks from dashboard to module is played: After login can access content with two mouse clicks: 1. Search 2. Launch

Item specific

  • Item visibility based on role: Is it possible to hide items from certain roles?
  • Item visibility based on department/company: Is it possible to hide items from users belonging to certain departments/companies?
  • Custom completion: Possible to decide when an item is completed (e.g. after percentage complete, after passing assessment, etc)
  • Grading: Possible to set item grades automatically (from assessments) and/or manually
  • Automatic learning goals: Learning goals (a combination of items) can be set per role or department
  • Manual learning goals: Learning goals (a combination of items) can be set per user


  • Free-text search of all meta-data: When using search, does the search return results found in for example an item’s description or tags?
  • Deep search of all content: When using search, does the search return results found inside modules? Is for example the contents of an uploaded PDF-documented indexed?
  • Recommendations based on role: Can items be set to be recommended for certain roles?
  • Recommendations based on department or company: Can items be set to be recommended for certain departments or companies?
  • Recommendations based on AI: Are there any automatic processes for recommending items? I.e. if many colleagues with the same role took course X and then Y, then recommend course Y once the user has completed X.
  • Deeplink to category or tag: Can any category or tag be opened directly with a shareable URL?
  • Deeplink to item: Can any item be opened directly with a shareable URL?


  • Self-enrolment: Learners can choose courses and learning paths to enrol in
  • Approved enrolment: Learners can self-enrol in courses and learning paths but the enrolment must be approved
  • Automatic enrolment: Learners are automatically enrolled in courses and learning paths based on role or department
  • Invitation enrolment: Courses and learning path can require invitation or set to manual add by admin only
  • Items can be set to mandatory: Any item can be set to be mandatory to complete
  • Mandatory items can have deadlines: Possible to set a due date for mandatory items
  • Capacity limits: Possible to set max number of learners per item
  • Waitlist: Possible to sign up for waitlist if max number is exceeded


  • Native assessment creation functionality: Quizzes, etc. can be created within the system
  • Multiple different assessment types: Supports for example quizzes with multiple question types (multiple answer, pair items, open-ended answers), exercise submission, trainer input, etc.
  • Advanced quiz creation: For example possibility to weigh answers in multiple choice questions, dynamic paths through questions, etc.
  • Question banks: Quiz questions can be randomly drawn from a database of assigned questions
  • Random order: Questions and answers can be shown in random order
  • Review for learner: Learner can review quiz and get feedback on answers
  • Timed assessments: There can be a time limit per question or quiz
  • Scheduled assessments: Assessments can be set to have to be retaken at set intervals
  • Offline assessments: Offline assessments can be set manually and/or uploaded
  • Peer reviews: Possible to have random peer in same item review submitted material or quiz
  • QTI: Questions can be imported/exported using the QTI-standard
  • Assessment-specific reports: Possible to get an overview of how users perform per question/assessment
  • Plagiarism-detection: Has native or integrated possibility to check for plagiarism


  • Comment section or discussion board per item: A place for users to discuss or comment the item
  • Items can be rated: The user can rate items on a scale
  • Ratings can be limited to after completion only: Possible to rate an item only after the item is completed
  • Rating scale can be customised: The scale used for ratings can be set to for example 1–5, percentage of users recommending, etc.


  • Points can be awarded for completion of item: Items can be set to give a custom number of points upon completion
  • Points can be awarded for certain actions: Users can be given points for taking a certain action (e.g. logging in X times, rating X items, etc.)
  • Completion badges: Users can be given badges for completing an item
  • Action badges: Users can be given badges for taking a certain action (e.g. logging in X times, rating X items, etc.)
  • Points badges: Users can be given badges for earning a certain number of points
  • Teams: Users can be assigned to teams that are shown on leaderboards
  • Points leaderboard: Users ranked by points can be shown to the user
  • Points leaderboard always showing me: Leaderboards always move to show me and X users just above/below me
  • Points leaderboards can be restricted: Possible for leaderboard to show certain department, company or role only


  • Videos: Possible to upload videos and view with internal player
  • Hosted videos can be sped up: Uploaded videos can be shown with for example 1.2x or 1.5x speed
  • External videos: Videos on major hosting sites (such as Youtube/Vimeo) can be embedded
  • SCORM: Can host Shareable Content Object Reference Model 1.2 and 2004 content
  • Tin Can: Can host Experience API (xAPI) content
  • Cmi5: Can host computer managed instruction 5 content
  • AICC: Can host AICC content
  • Common cartridge: Can work with CC/Thin CC
  • Files: Can host files for download
  • Other: Can host other content (e.g. H5P)
  • Offline: Content can be accessed offline either through download or pre-caching

Classroom (live training)

  • Item can be on-site: Supports handling of content that is learned at specific times
  • Sessions handling: On-site items can be multiplied (i.e. same content is given several times)
  • Resource handling: Resources such as trainers or classrooms can be reserved through the system to avoid double booking
  • Attendance: Trainer can report attendance
  • Calendar: Possible to see upcoming scheduled items in a calendar
  • Calendar events: Events registered to can be downloaded as .ics
  • Live-classroom: There is a native live-classroom functionality or integration with live-classroom provider


  • Languages: Interface is available in language X
  • Mobile app: An app that can be installed on Android and iOS. Has full functionality for either learners and/or admins
  • Responsive design: Website automatically adapts to device type. Has full functionality for either learners and/or admins
  • Dashboard: Users have a view showing automatically after login with for example required trainings, new activities, enrolled items, etc.
  • Customisable dashboard: Contents on dashboard can be customised by admin and/or user
  • Online users: Possible to see who is online right now
  • Help: Contextual or screen-specific help available for the user


  • Light customisation options: Can add for example logos and/or customise colour palette
  • Full customisation options: Can add/remove/edit ui-elements
  • Custom CSS: Access to define custom CSS-rules
  • Add/remove functionality: Possible to hide unused functionality (e.g. e-commerce)
  • Microsites: Separate sites with custom branding can be set up

Administration tools

  • Batch edit of users: Edit properties of several users at once (e.g. role)
  • Batch edit of items: Edit properties of several items at once (e.g. visibility)
  • Import/export: Bulk import/export of data (for example users) can be done ad-hoc by file upload/download
  • View as learner: Item admins can view item from learner point of view
  • Login-as-user: Admins can log in as a specific user to see the system from their point of view

Item creation

  • Has basic authoring tools: Can for example add subtitles to a video
  • Templates: Items can be created using templates containing for example pre-filled metadata

Unregistered users

  • Unregistered user can browse set parts of the catalogue: It is possible to view the catalogue even if you are not logged in. Viewable parts can be set depending on metadata such as category or tag.
  • Unregistered users can view content of modules: No need to login to view module content if module permission is set to allow
  • Unregistered users can view item comments or discussion board: If permissions are set to allow, user is allowed to see comments/discussions pertaining to an item
  • Unregistered users can register: It is possible to sign up on the site and automatically be assigned a role and department
  • Self-registered users need approval: Possible to set mandatory admin approval of new user accounts, per department


  • Learning transcripts: Possible to see all completed items per user and summarised per role/department
  • Time spent: Show time spent per item or in system per user and summarised per role/department
  • Completions: Show how many users have completed an item per role/department
  • Control report access: Possible to for example make a user’s learning transcript available only to the person’s direct and indirect managers.
  • Combined reports: All systems can be combined in one report (for example statistics about module view is available in the same report as learning path enrolments)
  • Report builder: Define own data fields to be shown in list or summarised views
  • Email: Reports can be sent via email automatically at set intervals
  • Audit log: Possible to see all actions that happened in system (one log file that says who did what when)
  • Search terms: Show most searched for terms
  • AI suggestions: Admins can get conclusions based on AI, such as “Your learners prefer to learn from videos and are most active on Thursdays”
  • Analytics: Show visitor analytics for system or per item


  • Items can be embedded: Possible to embed items on for example company intranet
  • Search can be integrated: Possible to show search results from LMS within other searches. For example, searching intranet will give results also from LMS.
  • User data can be imported: Integration with HR-system
  • Hierarchy can be imported: Company/departments can be imported
  • Export item completion: Items completed can be exported to for example HR-system
  • SSO: Single-sign on possible
  • 3rd-party login providers: Can log in through LinkedIn for example
  • Communication tools: Integrates with communication tools (e.g. Slack or Teams)
  • Plugins: 3rd-party developers can add functionality to LMS through plugins
  • LTI: Integrates with Learning Tools Interoperability platforms
  • Live-classroom: Integrates with live-classroom providers
  • Badges: Integrates with digital badge providers
  • Off-the-shelf: Can integrate with content libraries
  • API: Offers a REST API for integrations
  • Data exports: Data for BI-purposes can be exported automatically


  • TLS: Uses secure connections only
  • SaaS: Is hosted in the cloud
  • Own domain: Possible to use own domain instead of vendor domain
  • Privacy: System respects privacy laws/regulations in the countries it operates (e.g. GDPR)
  • Session timeout: Automatic logout of users who are inactive over a certain period of time
  • Backups: Data is backed up at regular intervals
  • Custom labels: It is possible to define different labels for imported data. For example, a department can have a different display name in the system than what comes with the imported data.
  • Turn-key solution: Possible for customer to register online and start working with their system straight away

Development, Support & Vendor

  • Changelog: A changelog is published to customers with each new release
  • Roadmap: A published roadmap exists for customers to see coming/proposed developments
  • Customer forum: There is a discussion board for customers to interact with each other and/or the supplier
  • Support: Support is available at least 5 days a week with incident response time of less than 8h
  • CSR: The vendor has published (or even better: been audited) for their corporate social responsibility, environmental impact and/or working conditions
  • Trustworthiness: Vendor is stable and not likely to go out of business during LMS lifetime within your organisation


  • Diplomas: Can issue downloadable/printable diplomas
  • Reminders: Can send reminders via email or other system when items are due
  • Triggers: Custom actions can be taken based on triggers, for example send an email if a user enrols in course X
  • User roles per item: A user can have several roles, e.g. admin in item X but learner in item Y
  • Multiple user roles: User can belong to several roles at ones (e.g. both sales person and analyst)
  • Accessibility features: System is compliant with WCAG version
  • Competence management: System can keep track of what user has what competence/skill (outside of item completions)
  • SEO: There are features for search engine optimisations


  • Cost for 3 years with 2000 active users, including implementation: I chose a relatively short time period (3 years instead of 5 or 10) for comparison in this example. If you expect a high implement cost then you’d likely want to add more years to your comparison, as the cost of change to another system will be higher. An active user in this example would mean a user that has logged in in the LMS within the last 30 days.

Next up is the selection phase, read about it in part 3 of 3 here: How to buy an LMS: Selection and last steps

Did you find this useful? What is missing? Let me know in the comments and I’ll keep this updated.

Images from https://ls.graphics/illustrations, thank you!

Loving leading learning. Find me on LinkedIn: https://www.linkedin.com/in/gustavgnosspelius/

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store