=head1 GUARANTEES
-To ensure price source prices are comprehensible and reproucible, some
+To ensure price source prices are comprehensible and reproducible, some
invariants are guaranteed:
=over 4
A possible solution is to either split price sources into simple and complex
ones (where the former do not require records).
-Another would be to have default values for the inpout normally taken from
+Another would be to have default values for the input normally taken from
records (like qty defaulting to 1).
A last one would be to provide an alternative input channel for needed
=item *
Discount sources were implemented as a copy of the prices with slightly
-different semantics. Need to do a real design. A requirement is, that a sinle
+different semantics. Need to do a real design. A requirement is, that a single
source can provide both prices and discounts (needed for price_rules).
=item *
=item *
-Composing price sources are disallowed for clarity, but all price sources need
-to be aware of units. This is madness.
+Composing price sources is disallowed for clarity, but all price sources need
+to be aware of units and price_factors. This is madness.
+
+=item *
+
+A common complaint is that prices from certain vendors are always negotiated
+and should use a default value but must be editable (like free prices) by
+default. This should be orthogonal for all prices.
+
+=item *
+
+The current implementation of lastcost is useless. Since it's one of the
+master_data prices it will always compete with listprice. But in real scenarios
+the listprice tends to go up, while lastcost stays the same, so lastcost
+usually wins. Lastcost could be lower priority, but a better design would be
+nice.
+
+=item *
+
+Guarantee 1 states that price sources will never change prices on their own.
+Further testing in the wild has shown that this is desirable within a record,
+but not when copying items from one record to another within a workflow.
+
+Specifically when changing from sales to purchase records prices don't make
+sense anymore. The guarantees should be updated to reflect this and
+transposition guidelines should be documented.
+
+=item *
+
+Prices were originally planned as a context element rather than a modal popup.
+It would be great to have this now with better framework.
=back