Β Verified Air: Business Rules for Review
This document describes airline offer and order rules as a Lean model, for review by the Offer/Order team. There is one chapter per requirement. Requirements OO-001 to OO-003 are the pilot rules; requirements whose IDs start with ONE follow IATA's public ONE Order material. Every rule, guarantee, and example in them is drawn from the model and checked when the document is built.
Requirements
One chapter per requirement: the rule, how each acceptance criterion is checked, the guarantees Lean proves, examples, and a panel to try the rule where there is one.
ONE-001Creating an order from an offerAs an airline, I want each accepted offer item to become one order item with a service for every passenger and segment, so that each service can be delivered and accounted for on its own.5 provenONE-002Order item statusAs a revenue accountant, I want each order item's status worked out from its services, so that I know which items still hold value.3 proven1 openONE-003Order statusAs an airline, I want an order's status worked out from its items and services, so that an order is closed only when nothing in it holds value.3 proven1 openONE-101Moves between delivery statusesAs an airline, I want a service's delivery status to change only along the moves the standard describes, so that a service is delivered only once it is paid for and each status means the same to every party.3 proven1 by example1 openONE-102Services that end without deliveryAs a revenue accountant, I want each service that ends without delivery to record why, so that I know whether its value is held, refunded or earned.6 provenONE-103Final delivery statusesAs a revenue accountant, I want a service's final delivery status never to change, so that what accounting was told about the service stays true.3 proven1 openONE-104Suspending and resuming a serviceAs an airline, I want to suspend delivery of a service, for example on suspected fraud, and lift the suspension later, so that delivery stops without losing where the service was.5 provenONE-105Ending a service from another areaAs a revenue accountant, I want every area to move a service's delivery status by the same table, so that a final status I was told about never changes afterwards.3 provenONE-201Price differential of a changeAs a seller, I want every change or cancellation offer to state what the customer pays and what the airline returns, so that I can settle the change without working the amounts out myself.4 proven1 openONE-202Amounts due to and by the airlineAs a customer, I want a penalty to cost me the same whether it is deducted from what I get back or charged on its own, so that the way the airline collects it does not change what I pay.3 proven1 openONE-203Cancelling an orderAs a seller, I want an unpaid order cancelled at once and a paid order cancelled through an offer, so that every cancellation that returns money is priced first.3 proven2 openONE-204Changing an order itemAs an airline, I want a changed item's kept services to move to the new item under the same references, so that each service is delivered and accounted for once.4 proven1 openONE-205Money recorded on an orderAs a revenue accountant, I want every settled change recorded on the order, so that I can reconcile the order's items against its payments and refunds.2 proven1 openONE-301Paying with several methodsAs an airline, I want a payment made with several methods to succeed only when every method succeeds, so that I never treat an order item as paid when part of its money will not arrive.4 provenONE-302Paid order itemAs an airline, I want an order item counted as paid only when a payment for it has succeeded, so that I release nothing on money I may not collect.3 provenONE-303Payment status and its movesAs an airline, I want the outcome of each payment method's transaction recorded as it arrives, so that a payment's status follows what I know about its funds.2 proven1 openONE-304Accepting a paymentAs an airline, I want each payment checked against the items it pays for, so that items are paid in full and on time, and each method is charged its amount plus its surcharge.7 provenONE-305Applying a payment outcomeAs an airline, I want a successful payment to release the order items it paid for, so that their services can be delivered and are no longer at risk of removal.5 provenONE-306Unpaid item at its time limitAs an airline, I want unpaid order items removed when their payment time limit passes, so that seats and services are not held for customers who do not pay.4 proven2 openONE-401Selecting items from an offerAs a seller, I want to leave out the optional items of an offer, so that the customer pays only for what they chose.3 proven1 openONE-402Creating one order from several offersAs a customer, I want a trip I chose as a whole to be ordered as a whole, so that I never hold half of it.1 proven4 openONE-403Repeated create requestsAs a seller, I want a request I send again after a timeout to give me the order I already have, so that the customer is not booked twice.3 proven1 openONE-404Recording changes to an orderAs a seller, I want each version of an order to stand for one set of changes, so that I can rebuild any version from the order's history.4 proven1 openONE-405Change against a stale versionAs a seller, I want a change I make on an order I saw at an older version to be refused, so that I never overwrite a change I have not seen.2 proven1 openONE-406Order retentionAs a seller, I want an order to stay retrievable while the customer can still use it, so that I can service the trip and any value it holds.3 proven1 openONE-501Price guarantee at an instantAs an airline, I want an offer's guarantees to end when the offer expires, so that I never stand behind a price or a seat for an offer that can no longer be accepted.4 proven1 openONE-502Time limits of a new orderAs an airline, I want each new order item to start with the payment time limit and price guarantee its offer item promised, so that the customer gets the time to pay and the price the offer stated.3 proven3 openONE-503Restriction rule in forceAs a seller, I want to know which change or cancel rule applies at any moment of the journey, so that I can tell the customer what a change costs and what a cancellation returns.4 proven1 openONE-504Voluntary change under the rule in forceAs a customer, I want a change to cost what the rule in force says, so that I pay the fee and the fare difference and nothing else.4 provenONE-505Refund owed on voluntary cancellationAs a customer, I want a cancellation to return what the rule in force promised, so that I know what I get back before I cancel.4 proven1 openONE-506Totalling a price from its partsAs a seller, I want every price to add up from its parts, so that the total I show the customer is the total the airline charges.5 proven1 openONE-601Dependent service and its parentAs an airline, I want to know which bags, seats and meals depend on a flight, so that a change to the flight reaches every service it affects.3 proven1 openONE-602Adding services to an orderAs an airline, I want a bag or a seat sold only with the flight it is for, so that no customer pays for an ancillary on a flight they do not hold.3 proven1 openONE-603Cancelling a flight with ancillariesAs a seller, I want to know what happens to a customer's bag and seat when I cancel their flight, so that the customer neither keeps a service they cannot use nor loses one they were promised.3 proven3 openONE-604Dependents when a flight changesAs a customer whose flight changed, I want to be told what happens to my bag and my seat, so that I know what I still hold on the new flight.3 proven1 openONE-605Choosing seatsAs a passenger, I want the seat I chose to be mine alone, so that I do not find someone else in it.2 proven2 openONE-606Price of an a-la-carte selectionAs a seller, I want an extra bag priced the same way every time, so that I can quote the customer the right amount before they pay.4 proven1 openONE-607Value of one bundled serviceAs a customer who drops one passenger from a bundled trip, I want back the part of the price that passenger's services were worth, so that I pay only for what I keep.2 proven2 openONE-701Answering a change noticeAs a seller, I want each change notice to show whether it waits for me, what I answered, or what the airline did when I did not answer, so that I can tell the customer where their trip stands.4 proven1 openONE-702Consequence of a missed time limitAs a seller, I want to know what happens if I do not answer a change notice in time, so that the customer is not surprised by an outcome nobody chose.3 proven1 openONE-703Declining an airline changeAs a customer, I want to know what declining a change the airline made will cost me, so that I can choose between the changed trip, another trip and my money back.2 proven2 openONE-704Cancelling a flight without re-accommodationAs a customer whose flight the airline cancelled, I want the cancelled services marked and their value returned, so that I do not pay for a flight that will not operate.3 proven3 openONE-705Re-accommodation before the seller answersAs a customer whose flights the airline changed, I want the new flights in my order at no extra cost and the old ones kept until I accept, so that I can still choose what to do.3 proven2 openONE-801Commission on an itemAs a seller, I want every commission on an order item worked out the same way and added up, so that I know what the airline owes me for the sale.5 provenONE-802Net clearance amountAs a seller, I want each payment cleared with the ORA by one rule, so that I receive my commission once and the airline receives the rest.5 proven1 openONE-803Accepting a clearanceAs an airline, I want the Clearance Manager to accept each payment's clearance once, so that no payment is settled twice.3 proven1 openONE-804Clearance statusAs an airline, I want each clearance's status to say how much of it is settled, so that I can match every clearing to what I am owed.4 proven1 openONE-805Net position of a partyAs a Clearance Manager, I want each party's clearances netted into one amount per remittance date, so that each party makes or receives one transfer and the transfers balance.4 proven1 openONE-806Total of a clearingAs a settlement payee, I want each clearing's total to match the bank transfer I receive, so that I can reconcile the transfer clearance by clearance.2 proven1 openONE-807Allocating a short remittanceAs a settlement payee, I want a short remittance split by one known rule, so that I can tell which of my clearances were settled.4 proven2 openONE-808Billing by service providersAs an airline, I want providers to bill me only for what they have delivered, so that I never pay a provider for a service the customer did not receive.4 provenONE-809Accounting for paid servicesAs a revenue accountant, I want revenue recognized only when a service reaches a final status, and every payment accounted for, so that the books of each order balance.3 proven3 openOO-001Accepting an offerAs a customer, I want to accept an offer I was shown, so that I get an order for exactly those services at the offered price.2 proven3 by exampleOO-002Delivery transitionsAs an operations agent, I want a service's delivery state to change only along the allowed transitions, so that a delivered service is never cancelled and a service is never refunded before it is cancelled.1 proven4 by exampleOO-003Accepting a refundAs a customer service agent, I want each refund checked against the payment it is made against, so that a customer is never refunded more than they paid.1 open1 not checked
Reference
- Overview: How to read this document, where the material comes from, and what the build computes.
- Open Questions: What the pilot model could not settle, and the decision it needs from the team.
- Questions from the ONE Order rules: The open guarantees in the ONE Order rules, each with the example that breaks it.
- Objects: The offers, orders, payments and refunds the rules talk about.
- EARS requirements: Every requirement statement in one table.
Contents
- 1. Overview
- 2. Accepting an offer
- 3. Delivery transitions
- 4. Accepting a refund
- 5. Creating an order from an offer
- 6. Order item status
- 7. Order status
- 8. Moves between delivery statuses
- 9. Services that end without delivery
- 10. Final delivery statuses
- 11. Suspending and resuming a service
- 12. Ending a service from another area
- 13. Price differential of a change
- 14. Amounts due to and by the airline
- 15. Cancelling an order
- 16. Changing an order item
- 17. Money recorded on an order
- 18. Paying with several methods
- 19. Paid order item
- 20. Payment status and its moves
- 21. Accepting a payment
- 22. Applying a payment outcome
- 23. Unpaid item at its time limit
- 24. Selecting items from an offer
- 25. Creating one order from several offers
- 26. Repeated create requests
- 27. Recording changes to an order
- 28. Change against a stale version
- 29. Order retention
- 30. Price guarantee at an instant
- 31. Time limits of a new order
- 32. Restriction rule in force
- 33. Voluntary change under the rule in force
- 34. Refund owed on voluntary cancellation
- 35. Totalling a price from its parts
- 36. Dependent service and its parent
- 37. Adding services to an order
- 38. Cancelling a flight with ancillaries
- 39. Dependents when a flight changes
- 40. Choosing seats
- 41. Price of an a-la-carte selection
- 42. Value of one bundled service
- 43. Answering a change notice
- 44. Consequence of a missed time limit
- 45. Declining an airline change
- 46. Cancelling a flight without re-accommodation
- 47. Re-accommodation before the seller answers
- 48. Commission on an item
- 49. Net clearance amount
- 50. Accepting a clearance
- 51. Clearance status
- 52. Net position of a party
- 53. Total of a clearing
- 54. Allocating a short remittance
- 55. Billing by service providers
- 56. Accounting for paid services
- 57. Open Questions
- 58. Questions from the ONE Order rules
- 59. Objects
- 60. EARS requirements