Technology and Financial Reporting

Started by Waltzing, Jun 13, 2023, 10:53 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Waltzing

#30
In order to stablise the calling between compilers we create the Iextraterrestrial Class...

it a simple 5 variable class container with standard interfaces..

a giant cstring 1000 chars..

Int 
float

Topspeed compiler specific

Astring   , a version of the win32 ATOM ...


this giant fat data variable container can  cross compiler stack boundaries and come back alive...

The compilers out there in space all have different data passing inside the chips...

Some pass on the stack like MS and some pass in the registers for high speed like the top speed  compiler and then there is Unix land..

the simple fat class data container can pass anything like a ghost in the machine and survive...

https://www.youtube.com/watch?v=3Fs8hM4TYdM

Waltzing

Got 10 grand for a latop or more?

well we dont know that is what next gen stuff will cost but if you want AI power and you want to get rid of your Accountant then maybe in ten years time you wont even want to have a Tax Department as they wont be able to KEEP up with AI computing power...

You may only need an accountant as a consultant and accounting firms may be starting the process of down sizing or consolidating into consulting HUBs..

https://www.digitaltrends.com/computing/microsoft-surface-laptop-studio-2-launch/

Waltzing

The last 12 months we have faced the problems of multi language programming... and of course when the time comes to connection local AI models this stuff will come up again...

This is one of solution we came across and the other is making sure you dont assign  std:string  to *char in CPP,,,,

you may find the contents dont end up in the *char

https://gist.github.com/sancarn/940556cc1ff7806ca0e742a0c4117ab3

Waltzing

MICRO SOFT just got itself an AI Team...

if you have designed your software to be driven by people you might want to change that and its a bit late..

The trick here is to design the software to select, Set and Invoke with language commands that mean something and AI can learn.

Simple statements are best like....

OMC TRIAL BALANCE REPORT 2023

and AI does not just send it back to you in a format the software understands it actually runs the report for you!!!

Waltzing

#34
This is an example of processing an OMC account and multiple portfolios creating Trial balanced and ledgers into one reports for financial accounting.

The result is a cross column multi entity report format where multiple porfolios are reported on  ONE page for multiple entities.

The one page cross column report , similar to what you expect from public company reporting where multiple group companies are report cross column on the one page.

FINANCIALFOLDER.CREATEENTITY('ABCHLD','ABCHOLDING LTD','ABGROUP','2023', 'ABGROUP');
 FINANCIALFOLDER.OPEN('ABCHLD','ABC HOLDINGSLTD', 'ABGROUP','2023');
 
 TRIALBALANCE.LOAD();
 TRIALBALANCEWKS.LOAD();   
 TRIALBALANCEWKS.Free()
 TRIALBALANCEWKS.ADD('ABCIHLD','2023','650','Shares On Hand at Year End');
 TRIALBALANCEWKS.SETBAL('ABCIHLD','2023','650','OB','0');
 TRIALBALANCEWKS.TRANSFER();
 TRIALBALANCEWKS.Save();
   
  OMC.ACCOUNTTRANSFILES.LOAD(); 
         
 OMC.CONSOLIDATEDACCOUNT.BALANCE.SET('OB','0');   
     
 OMC.ACCOUNT.SETIMPORTDATE('ABC HOLDINGSLTD OMCCASH','01/04/2022','31/03/2023');   
 OMC.ACCOUNT.IMPORT('ABC HOLDINGSLTD OMCCASH','CASH','01/04/2022','31/03/2023','NODATEDISPLAY');
 OMC.ACCOUNT.PROCESS('ABC HOLDINGSLTD OMCCASH','CASH','01/04/2022','31/03/2023');
     
 OMC.ACCOUNT.SETIMPORTDATE('ABC HOLDINGSLTD OMCRETAILNZD','01/04/2022','31/03/2023');   
 OMC.ACCOUNT.IMPORT('ABC HOLDINGSLTD OMCRETAILNZD','RETAIL','01/04/2022','31/03/2024','NODATEDISPLAY');
 OMC.ACCOUNT.PROCESS('ABC HOLDINGSLTD OMCRETAILNZD','RETAIL','01/04/2022','31/03/2023');
 
 OMC.CONSOLIDATEDTB.BALANCE.SET('OB','0');
 OMC.CONSOLIDATEDTB.BALANCE.SET('CB','0');
 OMC.CONSOLIDATEDTB.BALANCE.SET('OPENING STOCK','0');
 OMC.CONSOLIDATEDTB.BALANCE.SET('CLOSING STOCK','0');
 OMC.CONSOLIDATEDTOTALS.SAVE();
 OMC.SHELLOPEN('CONSOLIDATED');
 OMC.SHELLOPEN('CONSOLIDATED JNL TOTALS');
 
 OMC.CONSOLIDATED.TRIALBALANCE('RESET')
 OMC.CONSOLIDATED.TRIALBALANCE('LOAD','AB','2023');
 OMC.CONSOLIDATED.TRIALBALANCE('LOAD','ABC LTD','2023');
 OMC.CONSOLIDATED.TRIALBALANCE('LOAD','ABCHOLDINGS LTD','2023');
 OMC.CONSOLIDATED.TRIALBALANCE('PRINT','TRIALBALANCE','EXCEL','2','2');
 OMC.CONSOLIDATED.TRIALBALANCE('PRINT','LEDGER','EXCEL','LASTROW','2');
 OMC.CONSOLIDATED.TRIALBALANCE('MSOFFICE','CLOSE');


Ferg

Interesting.....but when I see OMC all I can think of is this:
https://www.youtube.com/watch?v=C2cMG33mWVY

I haven't done anything on this in a while.  I have not looked at using AI...yet.  I am starting to think it might be easier and cheaper to hire someone online to tap the figures into an Excel model.  Maybe someone from the sub-continent or SE Asia where English proficiency is high .  I have used UpWork before for elements of an app.

https://www.upwork.com/ab/profiles/search/?q=excel%20data%20entry

Waltzing

#36
The script above is the difference between an accounting system for share transactions and NO SYSTEM.

Since platform take commands and processes them and has a standard data communications interface that can be HOOKED up to a large language model VIA CPP...

IE ... its AI friendly for the NEXT GENREATION of AI.....

the commands are consistent and AI friendly... The NEXT GENREATION of will not just generate statements you ask it to do but actually will be able to INVOKE the software and that means...

APP written for YOU to type in the info which no identification system and AI awareness are dead..

That platform above is AI READY and farther down the AI TRACK it could be PART of the AI.....

All our software is written that way for the last 5 years...forget APP driven by people... they are  the OLD WAY...

Note: That in New Zealand there are No transactions systems in the Banking or finance sector that provide Proof of Work for accounts or transactions.

IE: No digital certificates and a nation run on shoe box transactions. The country is negligent in its transaction processing standards of which there are none.  In this day and age where software will soon be hooked up to AI in a big way its not a good idea for AI not to understand transactions security...

Those statements are supported by a data interface bindable to a bigger platform and it can project over the internet and it can potentially be driven directly by AI without human help...

Dont think people realise whats coming and software that is not set up to standardise it data SetMemberobject, getmemberobject, selectmember object and Invokememberobject isnt going to survive...

Its a darwin moment coming people...

They need to redesign EXCEL from the ground up...

MS Azure power apps already has the LLM build into many little apps for reading types of documents....

AI is going LIVE people....


Waltzing

Local AI chips in a new generation of laptops for those who have continued to used MS office on and off line  for financial reporting may soon get some new toys....

If you for some reason saved all your data in XML locally as well as storing it in a Database can now send your XML tagged data to AI in the future for analysis in ways we cant yet imagine...

https://www.cnbc.com/2023/12/14/intel-unveils-gaudi3-ai-chip-to-compete-with-nvidia-and-amd.html

This local processing will be to reduce the loading on server farms and the huge amount of water they will need for cooling.

new laptops could be your first simple AI devices ...  I Robot one day?

Ferg

I have decided to use "man-draulic" power.  I have engaged someone from Venezuela who wants to earn USD to transcribe financial reports from pdf to Excel.  Hopefully much much cheaper in the long run.  Not a saleable solution but that's not my priority for now.  Will keep you posted.  How is your project going?

Waltzing

#39
 Multi Projects FRG..

thats like saying  in thunber birds ...

Thunder Birds are GO...

FAB!!


https://www.youtube.com/watch?v=JuhahPrF7gk




Waltzing

#40
 They tell me the update scripting CORE should be ready MID 2024 to hook up to MS office on Windows. The version supporting the NEW SQL LIGHT C API.. We need that for storing meta data in SQL formats and reading large XML files.

The Scripting CORE API PRODUCT not PROJECT is a linux based scripting emulator that you bind functionality to that emulates a language... not the author of that.

Plug in a different set of bindings and you create new services....

LOOKING forward to seeing what we can do once LLM run on laptops with the new generation of chips...

We already run a big document manager product for Windows we created a while back that can read and META seperate document parts from MS OFFICE...

Generating the tables from documents and populating them only needed a new set of classes that we finished testing recently for multi column reporting...


DocExtensions(  'EVAL' , 'INTERNAL','EVAL MACRO')
DocExtensions(  'SCRIPT2' , 'INTERNAL','CALC2 MACRO')
DocExtensions(  'SCRIPT3' , 'INTERNAL','UNI SCRIPT PROGRAM')
DocExtensions(  'EXCEL DOCS' ,'SHELL','MWINDOWVBA','EXCEL.EXE')
DocExtensions(  'WORD DOCS' , 'SHELL','MWINDOWVBA','WORD.EXE')
DocExtensions(  'NOTEPAD' , 'EXE','WINDOWAPP','NOTEPAD.EXE')
DocExtensions(  'POWERPOINT DOCS' , 'SHELL','MOFFICE VBA')
DocExtensions(  'POWERSHELL DOCS' , 'SHELL','MOFFICE VBA')
DocExtensions(  'OTHER' ,'EXE','OTHER PROGRAMS' )
DocExtensions(  'METB' ,'EXE','MULTI ENTITY DYNAMIC ACCOUNTING','DACTBMultiEntity.EXE','EVAL|SCRIPT2|SCRIPT3','C:\DAC 2.2 Data Open - 6 Feb 2023',1 )
DocExtensions(  'DBOMC' ,'EXE','Broking Transaction Portfolio ','DBOMCTrans.EXE','EVAL|SCRIPT2|SCRIPT3','C:\DAC 2.2 Data Open - 6 Feb 2023',1 )
DocExtensions(  'DOCMANAGER','EXE','Document Automation Manager','DocumentAutoManager.EXE','EVAL|SCRIPT2|SCRIPT3','',1)
DocExtensions(  'SCRIPT2EXE' ,'EXE','SCRIPT2 Program','SCRIPT2.EXE','SCRIPT2',1 )
DocExtensions(  'SCRIPT3EXE' ,'EXE','SCRIPT3 Program','UNISCRIPT3.EXE','SCRIPT3',1 )
DocExtensions(  'TEST' ,'EXE','TEST PROGRAM','RUNTEST.EXE','',1 )
DocsSave('DocExtensions')
   
  DocsLoad('DOCGROUPS')
  DocGroups('OFFICEDOCUMENTS','OFFICE Documents','DocumentYear(''DOCGROUPS'',''YEARS'',''STOREBYYEAR'')','DocumentOrder(''DOCGROUPS'',''TOP'')')

Here is a real world example of a multi entity model being printed by the new classes. You cant have a product untl your software can processing data and print it in many formats. 

Names are changed... These new classes are generic and can be  modified with a INVOKE interface for more complex command processing such as AI would spit out...

 
 OMC.CONSOLIDATED.TRIALBALANCE('ENTITY','GET',' An INVESTOR NAMED SIR B','2023');
 
 OMC.CONSOLIDATED.TRIALBALANCE('ENTITY','GET','SIR B FMMIFUND LTD','2023');
 
 OMC.CONSOLIDATED.TRIALBALANCE('ENTITY','GET','SIR B FMMIFUND  HOLDINGS LTD','2023');
 
 OMC.CONSOLIDATED.TRIALBALANCE('PRINT','TRIALBALANCE','EXCEL','2','2');
 OMC.CONSOLIDATED.TRIALBALANCE('PRINT','LEDGER','EXCEL','LASTROW','2');
 OMC.CONSOLIDATED.TRIALBALANCE('MSOFFICE','CLOSE');


Ferg

NZ$10 for 7 years financials: P&L, Balance Sheet, Cash Flow and selected notes all put into Excel.  Not bad ay?  Mr Venezuela is already starting his second job for me.

I have built the guts of an analyser, but now need to decide on the best data structure for the report data created by Mr Venezuela.  Either a totally flat file or multi column for each year....I might have to try both to see what works best.  I had him input the data into a multi-column model; I just transform that to whatever format works best for me.

Waltzing

#42
Multi Entity Multi Year Trial balance Data is handled by a very large class which populates balances into virtual memory files (queues / Lists ) , each can have up to 16 indexes (old C technology updated to the present day by a US company).

we have had multi entity multi year data processing working for a while now.  But when you have access to financial accounting software in Class form for as long as we have you get build blocks on top of blocks.... Data can be stored in any number of database formats and runtime defined formats due to some very special software we got out of eastern europe back in the early 2000's... after all CPP is CPP... C PLus PLUS ... 

The above example in script is very very powerful .... does not require a person to process anything if a data source is linked to the software... Being text is can use RE GEN technologies to create scripts... The CORE is something that AI in the future might be able to provide self generation and execution as it all standard data types are uniformly handled between different languages...

The Multi Entity Trial Balance handling class...

! Multi Entity Trial balance Class,
!  implementing Interfaces denoted by the Ascii I letter.

MultiEntityTrialBalanceYTD              Class(IclaObjects),TYPE|
                                        ,IMPLEMENTS(IMEEventFileGenerator)|
                                        ,IMPLEMENTS(IEnterpriseGroupEntity)|
                                        ,IMPLEMENTS(IMultiTrialBalances)|       
                                        ,IMPLEMENTS(IGroupEntitiesList)|         
                                        ,IMPLEMENTS(IGroupEntitiesTBS)|     
                                        ,IMPLEMENTS(IsetIEntityYear)|
                                        ,IMPLEMENTS(IsetIEntityFolder)|
                                        ,IMPLEMENTS(IMultiEntityYTDTB)|
                                        ,IMPLEMENTS(IMETrialBalancesList)|
                                        ,IMPLEMENTS(ITBNextColumnRows)|
                                        ,IMPLEMENTS(ITBRowColumns)| 
                                        ,IMPLEMENTS(ITBAccountEntityColumns)|   
                                        ,IMPLEMENTS(IMETBRowColumnIndexs)|   
                                        ,IMPLEMENTS(IMETBRangeRows)|
                                        ,IMPLEMENTS(IGetMETBColumnValue)|       
                                        ,IMPLEMENTS(IMultiEntityConsolidate)|       
                                        ,IMPLEMENTS(ITBIndexRowColumnValue)|   
                                        ,IMPLEMENTS(IMETBImport)|       
                                        ,IMPLEMENTS(ILoadMultiEntityTrialBalanceYTD)|
                                        ,IMPLEMENTS(ILoadMultiEntityTBColumns)|
                                        ,IMPLEMENTS(ISaveMultiEntityTrialBalanceYTD)|     
                                        ,IMPLEMENTS(ISaveMultiEntityTBColumns) |                                   
                                        ,IMPLEMENTS(ILoadSave)| 
                                        ,IMPLEMENTS(ILoadEntityTrialBalanceYTD)|
                                        ,IMPLEMENTS(ISaveEntityTrialBalanceYTD)|   
                                        ,IMPLEMENTS(ILoadEntitySmartChart)|
                                        ,IMPLEMENTS(ISaveEntitySmartChart)|
                                        ,IMPLEMENTS(IServicesEvent)|       
                                        ,IMPLEMENTS(IGuiMultiEntityTrialBalanceYTD)|     
                                        ,IMPLEMENTS(IGUITBIndexRowColumnValue)|         
                                        ,IMPLEMENTS(IGUIMultiEntityTBColumns)|
                                        ,IMPLEMENTS(IGuiDisplayGroupYear)|   
                                        ,IMPLEMENTS(IGuiDisplays)|
                                        ,IMPLEMENTS(ISetTBEBalances)|
                                        ,Module('MultiEntityTrialBalanceYTD.clw'),Link('MultiEntityTrialBalanceYTD.clw',1)


If Data is Tagged in XML meta files AI should be able to read those files and you could one day have a conversation on investing....

This conversation is probably something the big wall street investing forms like black rock have already got working....

Expect those firms to shed people soon maybe...

Throwing documents at AI in the end  will win out .... and be very surprised if you wont be able to buy a feed pretty soon and for not much..

Getting a feed of company data from all over the world means you will need a big data storage facility ....

We store through a single manager class that determines how and where the store the data.

Id say it may still be a few years before you can buy a data feed so your solution should be good for a few years yet..

Waltzing

#43
Of course you going to say what about multiple balance printing per entity with multi column and you would be asking the right question...

YES of course it handles multiple balances per entity and becuase it has a SMARTCHART it does not need to a person to tell it where to print what and in what order!!!!!

Maybe you want Tax Adjusted YTD and QTY's , no problem!!!

And thats what you get when youve spent a life time presenting multi dimensional ytd  models ....

Its always fun to see an Accountants mouth tremble when they realise they dont understand technology after all.... but they do understand a lot of other very important things...