İçeriğe geç
academia.sh

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.

Aramak için yazmaya başlayın.

↑↓ Esc gezin · aç · kapat