Page actions
instrument mechanism / verified-clean
SAFE/Convertible Note Conversion (Simple) mechanism
The inspectable method record for SAFE/Convertible Note Conversion (Simple), kept separate from implementation and qualification.
Model scope
The core arithmetic is standard only for a simplified lower-of-cap-price-or-discounted-round-price model. Before release, add fully_diluted_shares and an explicit ownership formula, define pre-money/post-money and capitalization treatment, specify discount encoding and validation bounds, define missing-cap or missing-discount behavior, and document share-rounding rules. The existing educational and not-investment/legal-advice label is appropriate but does not resolve these calculation ambiguities.
- The conversion-price formula is valid only under the explicit assumption that the lower of the valuation-cap price and discounted priced-round price governs conversion; actual SAFE and convertible-note terms may use different definitions and mechanics.
- The formula references fully_diluted_shares, but that input is missing from the declared input list.
- No formula is provided for the claimed resulting ownership % output. The illustrative formula shares/(fully_diluted_shares+shares) is not universally correct because capitalization, option pools, other convertibles, and pre-money versus post-money treatment may differ.
- The valuation-cap basis is ambiguous: cap/fully_diluted_shares requires the cap and fully_diluted_shares to be defined consistently, including whether the share count is pre-money, post-money, or includes an option-pool increase.
- The discount convention is ambiguous: discount% must be specified as a decimal fraction such as 0.20 or as a displayed percentage such as 20%, and the implementation must convert it consistently.
Units and conventions
- valuation cap and priced-round valuation use the same currency units as the SAFE amount and share price.
- fully_diluted_shares is a share count, not a currency amount, and includes exactly the securities intended by the instrument's capitalization definition.
- priced-round share price is currency per share.
- discount% is represented as a decimal fraction in [0,1], so 20% is entered as 0.20.
- For the illustrative ownership outputs below only, resulting ownership is assumed to be shares issued/(fully_diluted_shares+shares issued), with no other capitalization changes.
Inspectable vector
One of 4 source-bound review vectors:
{
"inputs": {
"safe_amount": 100000,
"valuation_cap": 5000000,
"discount": 0.2,
"priced_round_share_price": 8,
"fully_diluted_shares": 1000000
},
"expected_outputs": {
"conversion_price": 5,
"shares_issued": 20000,
"resulting_ownership_percent": 1.9607843137
},
"working": "Cap price = 5,000,000 / 1,000,000 = 5.00 per share. Discounted round price = 8.00 x (1 - 0.20) = 8.00 x 0.80 = 6.40. Conversion price = min(5.00, 6.40) = 5.00. Shares issued = 100,000 / 5.00 = 20,000. Ownership = 20,000 / (1,000,000 + 20,000) = 20,000 / 1,020,000 = 0.019607843137 = 1.9607843137%."
}Failure boundary
- Division by zero occurs if fully_diluted_shares is zero while a valuation cap is supplied.
- Division by zero occurs if both valuation-cap pricing and discounted-round pricing produce a conversion price of zero, including a zero priced-round share price or a 100% discount.
- Negative or otherwise invalid valuation caps, share counts, investment amounts, share prices, or discounts are not constrained by the specification.
- A discount below 0% or above 100% is not constrained; values above 100% can produce a negative conversion price.
- If either the valuation cap or discount is omitted, the behavior of min() is unspecified even though the input description says cap and/or discount.
- Fractional shares, rounding rules, and any minimum-share increment are unspecified.
- Using shares/(fully_diluted_shares+shares) for ownership can misstate ownership when the SAFE is post-money, when the option pool changes, or when other securities convert.
Other records
Sources and evidence
These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.
VERIFIED_LEDGER.jsonevidence-tranche5/tranche5-results.json