Ders 04 / 10
Şirket İçi ile Karşılaştırma
Sabit yatırım ile değişken kiranın ölçüsü: aynı 36 aylık kullanım eğrisinde başabaş ayının açık hesapta 15, 19 ve 13, tam hesapta 36, 36'dan sonra ve 23 çıkması, kendi donanımında görünmeyen kalemlerin toplamın %64, %55 ve %48'ini, kiralamada %13'ünü tutması, çıkış ayı 12'den 36'ya kaydıkça kazananın düz eğride kiradan kendi donanımına, tepe yapan eğride yeniden kiraya dönmesi. Bedeller kurgudur ve kurgu birimle yazılır.
İçindekiler
Önceki ders üç dağıtım düzenini denetim, sabitlik ve esneklik cinsinden karşılaştırdı ve hiçbir yerde para geçmedi. Oysa “sabit ayrılmış kapasite %100” ile “%0” arasındaki fark asıl kendini bir ödeme biçiminde gösterir: biri önden ve bir kez, öteki sürekli ve kullanıma göre. Bu ders o iki ödeme biçimini aynı kullanım eğrisinde koşturur.
Karşılaştırmanın sonucu tek bir cümleye indirilemez, çünkü sonuç kullanım eğrisinin biçimine ve ne kadar kalınacağına bağlıdır. Ölçülen şey bu iki değişkendir: sabit yatırımın kümülatif harcamasının değişken kiranın altına indiği ay — başabaş noktası — ve o noktanın eğri değiştikçe nereye kaydığı.
Bu dersteki bütün bedeller kurgudur. Gerçek bir para birimi, gerçek bir fiyat listesi ya da
gerçek bir sağlayıcı yoktur; her şey kurgu bir birimle (kb) yazılır. Sayıların anlamı
büyüklüklerinde değil, birbirlerine oranlarındadır.
İki Ödeme Biçimi ve Altı Kalem
Örnek, kursun kurgu bölgesel ölçüm ağıdır: okuma toplayıcı, doğrulayıcı, faturalama ve iş emri servisleri, gecelik toplu iş, beş ekip. Ağ da servisler de kurgudur; aşağıdaki maliyet yapısı bir modeldir.
BK19: model 36 aylık bir pencere koşar; bütün bedeller kurgudur ve kb ile yazılır.
BK20: kendi donanımında kapasite birimi başına bir kez 110 kb ödenir, en küçük alım 4 birimdir
ve birim ömrü 36 aydır; kurulu birim başına ayda 3 kb işletim emeği ve düzen ayakta olduğu sürece
ayda 20 kb tesis bedeli doğar. BK21: kiralamada birim-ay 12 kb’dir; birim-ay başına 36.000
istek düşer ve her 1.000 istek 0,05 kb tutar, yani birim-ay başına 1,8 kb istek ücreti eklenir;
çıkışta bir kez 250 kb çıkış ücreti doğar. BK22: kapasite her ay talebi karşılar; kendi
donanımı dört birimlik bloklarla alır ve azaltmaz, kiralama her ay talep kadardır. BK23: açık
hesap yalnız iki görünür kalemi sayar — donanımın peşin bedeli ve birim-ay kirası; tam hesap altı
kalemin hepsini sayar. BK24: çıkışta kendi donanımının kalan defter değerinin %40’ı geri
gelir; kiralamada çıkış ücreti bir kez eklenir.
// bulut/maliyet.mjs — sabit yatirim ile degisken kirayi ayni kullanim egrisinde kosturan model. // Butun bedeller KURGUDUR ve kurgu bir birimle (kb) yazilir; gercek bir para birimi, gercek bir // fiyat listesi ya da gercek bir saglayici yoktur. Rastgelelik yok. export const AY = 36; export const F = { pesin: 110, // kendi donanimi: kapasite birimi basina bir kez (kurgu kb) blok: 4, // kendi donanimi: en kucuk alim omur: 36, // kendi donanimi: birim omru (ay) emek: 3, // kendi donanimi: kurulu birim basina ay (isletim emegi) tesis: 20, // kendi donanimi: ay basina sabit (guc, sogutma, yerlesim) kira: 12, // kiralama: birim-ay (istege bagli kapasite) istek: 1.8, // kiralama: birim-ay basina istek ucreti cikis: 250, // kiralama: cikista bir kez (veri tasima) geri: 0.4, // kendi donanimi: cikista kalan defter degerinin geri alinabilen orani }; // Maliyet kalemleri: taraf, gorunur mu (sozlesmede/faturada ilk bakista okunan), aciklama. export const KALEM = ` donanim-pesin kendi gorunur isletim-emegi kendi gorunmez tesis-guc-sogutma kendi gorunmez birim-ay-kirasi kira gorunur istek-basina-ucret kira gorunmez cikis-ucreti kira gorunmez` .trim().split("\n").map((r) => { const [ad, taraf, g] = r.trim().split(/\s+/); return { ad, taraf, gorunur: g === "gorunur" }; }); const TABAN = { duz: () => 5, tepe: (a) => (a >= 14 && a < 20 ? 16 : 5), buyuyen: (a) => 3 + 0.4 * a, }; export const egri = (ad) => Array.from({ length: AY }, (_, a) => Math.ceil(TABAN[ad](a))); // kip "acik": yalniz gorunur kalemler sayilir. kip "tam": butun kalemler sayilir. export function kos(egriAd, kip) { const T = egri(egriAd), g = (ad) => kip === "tam" || KALEM.find((k) => k.ad === ad).gorunur; const alim = []; // {ay, birim} kendi donanimi alimlari let kap = 0; const kendi = [], kira = []; let kk = 0, ki = 0; for (let a = 0; a < AY; a++) { while (kap < T[a]) { kap += F.blok; alim.push({ ay: a, birim: F.blok }); } if (g("donanim-pesin")) kk += alim.filter((x) => x.ay === a).length * F.blok * F.pesin; if (g("isletim-emegi")) kk += kap * F.emek; if (g("tesis-guc-sogutma")) kk += F.tesis; if (g("birim-ay-kirasi")) ki += T[a] * F.kira; if (g("istek-basina-ucret")) ki += T[a] * F.istek; kendi.push(kk); kira.push(ki); } return { T, alim, kap, kendi, kira }; } // Basabas: kendi donaniminin kumulatif harcamasinin kiranin altina indigi ilk ay (1 tabanli). export function basabas(r) { for (let a = 0; a < AY; a++) if (r.kendi[a] <= r.kira[a]) return a + 1; return null; } // Cikis: o ay ayrilirsa net bedel. Kendi donaniminda o ana kadar alinmis birimlerin kalan defter // degerinin bir orani geri gelir; kiralamada cikis ucreti bir kez eklenir. export function cikis(r, ay, kip) { const kalan = r.alim.filter((x) => x.ay < ay).reduce((s, x) => s + x.birim * F.pesin * Math.max(0, F.omur - (ay - x.ay)) / F.omur, 0) * F.geri; const ek = kip === "tam" ? F.cikis : 0; return { kendi: Math.round(r.kendi[ay - 1] - kalan), kira: Math.round(r.kira[ay - 1] + ek) }; }
// bulut/olc.mjs — basabas noktasi, kullanim egrisi degisince kaymasi ve gorunmeyen kalemler. import { kos, basabas, cikis, egri, KALEM, F, AY } from "./maliyet.mjs"; const yaz = (g, ...s) => console.log(s.map((v, i) => (g[i] < 0 ? String(v).padEnd(-g[i]) : String(v).padStart(g[i]))).join("")); const EGRI = ["duz", "tepe", "buyuyen"]; const R = Object.fromEntries(EGRI.flatMap((e) => ["acik", "tam"] .map((k) => [`${e}-${k}`, kos(e, k)]))); const ay = (b) => (b === null ? `>${AY}` : b); console.log(`${AY} aylik pencere; butun bedeller KURGU ve kurgu birimle (kb) yazili. ` + `kapasite birimi: pesin ${F.pesin}, kira ${F.kira}/ay`); const A = [-22, 9, 12, 34]; console.log("\n1. maliyet kalemleri (gorunur = sozlesmede ilk bakista okunan)"); yaz(A, "kalem", "taraf", "gorunur", "kurgu bedel"); const BEDEL = { "donanim-pesin": `${F.pesin} kb / birim, bir kez`, "isletim-emegi": `${F.emek} kb / kurulu birim-ay`, "tesis-guc-sogutma": `${F.tesis} kb / ay`, "birim-ay-kirasi": `${F.kira} kb / birim-ay`, "istek-basina-ucret": `${F.istek} kb / birim-ay`, "cikis-ucreti": `${F.cikis} kb, bir kez` }; for (const k of KALEM) yaz(A, k.ad, k.taraf, k.gorunur ? "evet" : "hayir", BEDEL[k.ad]); const B = [-10, 12, 12, 10, 12, 13]; console.log("\n2. basabas ayi: kendi donanimi kirayi ne zaman gecer"); yaz(B, "egri", "en dusuk", "en yuksek", "alim", "acik hesap", "tam hesap"); for (const e of EGRI) { const T = egri(e); yaz(B, e, Math.min(...T), Math.max(...T), R[`${e}-tam`].kap, ay(basabas(R[`${e}-acik`])), ay(basabas(R[`${e}-tam`]))); } const C = [-10, 12, 11, 13, 11, 10, 13]; console.log(`\n3. ${AY}. ayda kumulatif harcama (kb) ve gorunmeyenin payi`); yaz(C, "egri", "kendi acik", "kendi tam", "gorunmez (%)", "kira acik", "kira tam", "gorunmez (%)"); const pay = (a, t) => `${Math.round(t - a)} (${Math.round(((t - a) / t) * 100)})`; for (const e of EGRI) { const a = R[`${e}-acik`], t = R[`${e}-tam`], i = AY - 1; yaz(C, e, a.kendi[i], Math.round(t.kendi[i]), pay(a.kendi[i], t.kendi[i]), a.kira[i], Math.round(t.kira[i]), pay(a.kira[i], t.kira[i])); } const D = [-10, 10, 12, 12, 12, 12]; console.log(`\n4. tam hesapta cikis ayina gore net bedel (kb; kalan defter degerinin ` + `%${F.geri * 100}'i geri gelir)`); yaz(D, "egri", "cikis ayi", "kendi", "kira", "fark", "kazanan"); for (const e of EGRI) for (const m of [12, 24, 36]) { const c = cikis(R[`${e}-tam`], m, "tam"); yaz(D, e, m, c.kendi, c.kira, c.kendi - c.kira, c.kendi < c.kira ? "kendi" : "kira"); }
36 aylik pencere; butun bedeller KURGU ve kurgu birimle (kb) yazili. kapasite birimi: pesin 110, kira 12/ay 1. maliyet kalemleri (gorunur = sozlesmede ilk bakista okunan) kalem taraf gorunur kurgu bedel donanim-pesin kendi evet 110 kb / birim, bir kez isletim-emegi kendi hayir 3 kb / kurulu birim-ay tesis-guc-sogutma kendi hayir 20 kb / ay birim-ay-kirasi kira evet 12 kb / birim-ay istek-basina-ucret kira hayir 1.8 kb / birim-ay cikis-ucreti kira hayir 250 kb, bir kez 2. basabas ayi: kendi donanimi kirayi ne zaman gecer egri en dusuk en yuksek alim acik hesap tam hesap duz 5 5 8 15 36 tepe 5 16 16 19 >36 buyuyen 3 17 20 13 23 3. 36. ayda kumulatif harcama (kb) ve gorunmeyenin payi egri kendi acik kendi tam gorunmez (%) kira acik kira tam gorunmez (%) duz 880 2464 1584 (64) 2160 2484 324 (13) tepe 1760 3872 2112 (55) 2952 3395 443 (13) buyuyen 2200 4216 2016 (48) 4488 5161 673 (13) 4. tam hesapta cikis ayina gore net bedel (kb; kalan defter degerinin %40'i geri gelir) egri cikis ayi kendi kira fark kazanan duz 12 1173 1078 95 kira duz 24 1819 1906 -87 kendi duz 36 2464 2734 -270 kendi tepe 12 1173 1078 95 kira tepe 24 2684 2817 -133 kendi tepe 36 3735 3645 90 kira buyuyen 12 1123 1175 -52 kendi buyuyen 24 2499 2900 -401 kendi buyuyen 36 3864 5411 -1547 kendi
Sayılar ölçüm sınıfındadır; girdileri BK19–BK24’tür ve hepsi kurgu bedellerdir.
Başabaş Noktası
İkinci tablo aynı hesabı iki kez yapar. Açık hesap yalnız sözleşmede ilk bakışta okunan iki kalemi sayar: donanımın peşin bedeli ve birim-ay kirası. Bu hesapta düz eğride başabaş 15. ay, tepe yapan eğride 19., büyüyen eğride 13. aydır. Bu üç sayı, “iki yılda kendini amorti eder” biçimindeki cümlenin çıktığı yerdir.
Tam hesap altı kalemin hepsini sayar ve aynı üç eğride başabaş 36., 36’dan sonra ve 23. aya kayar. Düz eğride kayma 21 ay, tepe yapan eğride pencerenin dışına, büyüyen eğride 10 aydır. Başabaş noktası bir gerçek değil, hesaba hangi kalemlerin alındığının bir sonucudur; iki hesap arasındaki fark, tartışmadaki tarafların çoğu zaman aynı şeyi ölçmediğini gösterir.
Eğri Değişince Başabaş Nereye Kayar
Üç eğri aynı servisi üç farklı talep biçimiyle koşturur. Düz eğride talep 36 ay boyunca 5 birimdir; kendi donanımı dört birimlik blok yüzünden 8 birim alır ve fazlasını ömrü boyunca taşır. Tam hesapta başabaş tam pencerenin sonundadır — yani üç yıl boyunca kalınırsa ancak eşitlenir.
Tepe yapan eğride talep altı ay boyunca 5’ten 16 birime çıkar ve sonra geri iner. Kendi donanımı o tepeyi karşılamak için 16 birime çıkar ve tepe geçtikten sonra da 16 birimi elde tutar; kiralama tepe boyunca ödeyip sonra iner. Tam hesapta başabaş pencerenin dışındadır. Tek bir altı aylık tepe, üç yıllık bir yatırım kararını tersine çevirir.
Büyüyen eğride talep 3’ten 17 birime düzenli olarak çıkar. Burada kendi donanımı en erken başabaşı verir (23. ay), çünkü kiralama her ay biraz daha fazla öder ve toplam kira 36. ayda 5.161 kb’ye ulaşır — üç eğrinin en yükseği. Kiralamanın kaybettirdiği yer öngörülebilir biçimde büyüyen yüktür; orada esneklikten alınan hiçbir şey yoktur, çünkü kapasite zaten hiç geri inmemektedir.
Görünmeyen Kalemler
Üçüncü tablo iki hesabın farkını kalem olarak yazar. Kendi donanımında 36. ayda açık hesap düz eğride 880 kb, tam hesap 2.464 kb’dir: görünmeyen 1.584 kb, toplamın %64’ü. Tepe yapan eğride %55, büyüyen eğride %48’dir. Görünmeyen kalemlerin adı bellidir — kurulu birim başına işletim emeği ve aylık tesis bedeli — ve ikisi de bir satın alma kararında görünmez, çünkü ikisi de donanımın faturasında yazmaz.
Kiralamada aynı oran üç eğride de %13’tür ve tek kaynağı istek başına ücrettir. Oranın düşük ve sabit olması kiralamanın daha dürüst olduğu anlamına gelmez; kiralamanın görünmeyen en büyük kalemi bu tabloda hiç yoktur, çünkü o kalem yalnız çıkarken doğar.
Görünmeyen payın eğriden eğriye değişme yönü de bir şey söyler. Kendi donanımında oran düz eğride en yüksek (%64), büyüyen eğride en düşüktür (%48) — çünkü büyüyen eğride peşin donanım harcaması büyüdükçe görünen kalem payı da büyür. Yani düşük kullanımda hesabın görünmeyen kısmı en büyüktür: donanımın az kullanıldığı durumda peşin bedel küçük kalır, ama işletim emeği ve tesis bedeli ilk günden itibaren tam olarak işler. Kiralamada oranın eğriden bağımsız kalması, o tarafın görünmeyen kaleminin kullanımla orantılı olmasındandır.
Çıkış Ayı Kazananı Değiştirir
Dördüncü tablo aynı üç eğriyi üç farklı çıkış ayında keser ve çıkış kalemlerini de sayar: kendi donanımında kalan defter değerinin %40’ı geri gelir, kiralamada 250 kb çıkış ücreti eklenir.
Düz eğride 12. ayda kiralama 95 kb önde, 24. ayda kendi donanımı 87 kb önde, 36. ayda 270 kb öndedir. Tepe yapan eğride sıra iki kez döner: 12. ayda kiralama, 24. ayda kendi donanımı, 36. ayda yine kiralama kazanır (90 kb). Büyüyen eğride kendi donanımı üç kesitte de öndedir ve fark 36. ayda 1.547 kb’ye açılır.
Tepe yapan eğrinin iki kez yön değiştirmesi bu dersin ana bulgusudur. Kararın doğru cevabı yoktur; cevabı belirleyen şey ne kadar kalınacağıdır, ve o süre karar anında bilinmez. Kendi donanımının erken çıkışta kaybettiği şey kalan defter değerinin geri gelmeyen %60’ı, kiralamanın geç çıkışta kaybettiği şey biriken birim-ay kirasıdır. İki taraf da bir tür bağlanma satın alır: biri varlığa, öteki sözleşmeye.
Özet
- Başabaş ayı açık hesapta 15, 19 ve 13; tam hesapta 36, 36’dan sonra ve 23’tür. Kayma sırasıyla 21 ay, pencerenin dışı ve 10 aydır; başabaş bir gerçek değil, hesaba alınan kalemlerin sonucudur.
- Kendi donanımında görünmeyen kalemler 36. ayda toplamın %64, %55 ve %48’ini tutar; kiralamada aynı oran üç eğride de %13’tür ve tek kaynağı istek başına ücrettir.
- Tepe yapan eğride kendi donanımı 16 birime çıkar ve tepe geçtikten sonra da elde tutar; tek bir altı aylık tepe tam hesaptaki başabaşı 36 aylık pencerenin dışına atar.
- Kiralamanın kaybettirdiği yer öngörülebilir biçimde büyüyen yüktür: orada toplam kira 36. ayda 5.161 kb’ye çıkar ve başabaş 23. aya iner.
- Çıkış ayı kazananı değiştirir: düz eğride 12. ayda kiralama, 24. ve 36. ayda kendi donanımı; tepe yapan eğride sıra iki kez döner (12. ayda kiralama, 24. ayda kendi donanımı, 36. ayda yine kiralama).
- Görünmeyen kalemlerin adı bellidir — kendi donanımında işletim emeği ve tesis, kiralamada istek başına ücret ve çıkış ücreti; ikisi de kararın verildiği belgede yazmaz.
Sonraki Adım
Bu ders kiralamanın bedelini paraya çevirdi ve hesabın hangi kalemleri saydığına göre kazananın değiştiğini gösterdi. Ama bütün tablo boyunca bir kalem hiç sorulmadı: kiralanan hizmette bir şey ters gittiğinde kimin yapması gerekiyordu. İşletim emeği kalemi kendi donanımında bir sayıdır; kiralamada o emeğin bir kısmı sağlayıcıya geçer, ama tam olarak hangi kısmı? Sonraki ders bir sorumluluk matrisi kurar: kalem kalem hangi taraf, kaç kalem boşlukta kalıyor ve kaç kalem çakışıyor.
İlerlemeni kaydetmek ve not almak için Giriş yap
Notlarım
Not almak için giriş yapmalısın.